猫でもわかるWeb開発・プログラミング

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

LINE Developer Meetup in Tokyo #27 -Elastic- メモその3 What's new in Elastic Stack 6.x +α

もくじ

LINE Developer Meetup in Tokyo #27 -Elastic-

以下のイベントに参加してきました。

line.connpass.com

3つの発表が行われたのですが、今回はこのうち、最後の『What's new in Elastic Stack 6.x』を聞きながら書いた僕のメモを公開しつつ、最後に感想的なものをまとめたいと思います。

この発表はLINEの社員の方の発表ではなく、Elasticの大谷さんの発表となります。

発表資料

speakerdeck.com

今回のこの発表をしたElasticの大谷さんが書いた本もあります。Elasticの中の人が書いているということで、タイトルで気になった方は買ってみてはいかがでしょうか。

発表を聞いてのメモ

自己紹介

  • Jun Ohtani
  • データ分析基盤構築入門の本を出した

Elasticsearch

2系あたりのアップデートはつらい。 5系になって大分楽になった。次のバージョンで使えなくなるものについてはエラーが出たりDerication Logが出るようになった。

かつてメジャーバージョンバップの時はクラスタの停止&起動が必要だったが、6系では、1台ずつ切り離してアップグレードなどできるようになった。(Rolling Restart)

Elasticsearch 6のよさ

  • indexのサイズが小さくなる(最適化された)
    • 疎なデータ(空のカラムが多かったり)みたいなところのデータの持ち方が効率化された
  • データ挿入時のソートが効率化
  • リカバリの時間が短縮された
  • 破壊的変更も今後あるとおもうのでDeprecatedログなんかを見てもらえれば

6.0での変更点いくつか

  • index, type, document の中の type がなくなります。6でDeprecatedになって7で使えなくなる。今後新しくElasticsearchを使う場合はtypeは無いものと思ってもらえると...
  • index templateがindex patternという名前になる
  • HTTPリクエスト時の content-type が必須になる
  • _all っていう検索フィールドが6.0でなくなる
  • Java High Level REST Clientが使えるようになった
    • 今まではサーバーとクライアントバージョンが完全に一致していないとダメだったが、そういうことがなくなる。サーバーサイドだけアップデートみたいなことができるように。

6.1での変更点いくつか

  • Index Splitting
  • Similarity(類似度)の定義がJAVAだけで

Kibana

Logstash

ログを集めて送信できるツール

Beats

  • Goで書かれているログスタッシュ。Goで書かれているのでバイナリで、Javaとか入れる必要がない。
  • 6系でDockerとかkubernetesあたりをサポート
  • 取れるメトリクスも増えた(RabbitMQとか)
  • Elasticsearchに投げるだけじゃなくてKibanaの画面とかも作ってくれる

質問

type なくなるのどう対応したらいいのかなという

マルチタイプとか使っていると自分でindexingし直す。基本的にはtypeというフィールドを自分で持つのがいい。typeというのはDBでいう型みたいなのをイメージするとおもうが、内部的にはそういう実装にはなっておらず、そのあたりでおかしくなっていた事がなくなる。

LogstashとBeatsは今後どうなるの?

開発は両方やっていきます。用途が違うので。Beatsはログを送ることしかしていない。Logstashはログの加工みたいなこともしている。

感想

「検索」といったら一昔前は Apache Solr を使っているところが多いと思いますが、やはり最近ではElasticでしょう。今回の発表で、Elastic 5系からいろいろ良くなったという印象を受けましたし、5系を導入しているところは多い気がします。Elastic 6系でtypeがなくなるという話があったので、今から新しく導入するなら6系かなという印象でした。

僕もElasticは触ったことないので触ってみたいなと思いました。まあ触るにはデータが必要なんですけど、適当に収集するか、あるいはログを溜め込むとかでもいいのかなと思いました。

あとは、kibanaであったりだとかkafkaであったりだとか、今回の発表で出た他のサービスも触ってみたいなと思いました(小並感)。

ということで、家に眠らせているサーバーを引っ張り出してきてなんかやりますかね。まずはDocker当たりの勉強をやりたい。