BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Elasticsearch 1.0.0リリース

Elasticsearch 1.0.0リリース

原文(投稿日:2014/02/14)へのリンク

オープンソースアナリティクスツールであるElasticsearchのバージョン1.0.0がリリースされた。Elasticsearchはビッグデータ環境でのリアルタイム分析を実現する分散検索エンジンだ。Apache Luceneを利用し、ReST APIを公開することで実現している。HTTP経由で直接アクセスできる以外に、Java、JavaScript、Pythonなどの言語向けのライブラリからもアクセスできる。また、Apache Hadoopとも統合できる。Elasticsearchはすでに大規模データを扱っている企業で採用されている。GitHub、Foursquare、SoundCloudといった企業だ。

Elasticsearchは拡張性、高可用性、リアルタイム分析の3つに注力している。データはすぐにインデックスされ、クラスタ内で複製され、分析できる状態になる。

  • 拡張性: Elasticsearchはクラスタ環境で動作するよう設計されている。ノードがスタートするとすぐに、ノットワーク上の他のノードを探して接続する。インデックスはシャード内に作成され、クラスタ上に分散されるので、インデックスの検索は分散処理になり、並列で行われる。性能が必要な場合はノードをさらに追加するだけで自動的にシャードが再構成される。
  • 可用性: データベースシャードは水平的なスケーリングだけでなく、可用性のためにも使われている。各シャードは異なるクラスタに保存されているので、ノードが落ちても、データは失われない。動作不良になったノードはElasticsearchが検知してクラスタから除外する。除外した後、シャードは弾力性と拡張性を考慮して再構成される。
    全クラスタの再起動をサポートするため、Elasticsearchに必要なすべてのメタデータはさまざまなストレージ上に保存されている。データはゲートウェイと呼ばれる仕組みを使って保存される。ゲートウェイは現時点ではローカルのストレージか共有ファイルシステムをサポートする。
  • リアルタイム: Elasticsearchはスキーマにとらわれない。任意のJSONドキュメントを保存できる。ドキュメントの構造は分析される。タイムスタンプのようなデータ型ですら自動的に検知される。既定では、ドキュメントに含まれるすべてのフィールドがインデックスされ検索可能になる。単純な全文検索、ファセットがインデックスに適用される。ファセットとは分析関数でバケッティング(データの幅、距離、ヒストグラムなど)とメトリクス(合計、平均、統計値など)を提供する。

 

Elasticsearch 1.0.0の新しい機能

バージョン1.0.0はさまざまな関数の強化とAPIの変更が行われており、Elasticsearchがより直感的に使えるようになっている。また、インデックスのバックアップ、復元、データの分析、Elasticsearchの弾力性の強化などの機能が搭載されている。

  • スナップショット/リストア: 新しいバージョンでは、クラスタ全体のスナップショットを取り、バックアップを作成できる、シンプルなAPIがある。メタデータとインデックスを含む、Elasticsearchのクラスタ全体をスナップショットリポジトリに保存できる。組み込みのフェイルオーバシステムが正常に動作しない場合、クラスタをスナップショットから復元できる。
  • アグリゲーション: アグリゲーションによって、バージョン1.0.0以前のファセットよりも強力なデータ分析ができる。ファセットは分析関数の結果だけを提供するが(例えば、ある距離に含まれている店舗の数)、アグリゲーションは特定の問い合わせでどのドキュメントが見つかったかを保持し、新しい問い合わせのインプットにそれらのドキュメントを利用できる(例えば、ある距離に含まれている店舗の四半期の平均売り上げ)。
  • サーキットブレーカー: サーキットブレーカーは検索インデックスに致命的な被害を与える処理エラーや実行エラーを回避するために追加された。Elasticsearch1.0.0に追加された最初のセーフガードはフリーメモリを監視し、検索と分析に必要なメモリ量を見積もる仕組みだった。検索や分析に必要なメモリが利用できるメモリを上回るとき、処理をブロックしてOutOfMemory例外が発生しないようにする。将来のリリースではより多くの種類のサーキットブレーカーが追加される予定。

 

Elasticsearchはメジャーバージョンを変え、既存のAPIをきれいに整理した。後方互換性は維持されていない。バージョン1.0.0にアップグレードする前に、ユーザは破壊的な変更一覧にあるすべてのデータをバックアップする必要がある。

またElasticsearchはデータのキャプチャと分析に使えるツールも提供している。LogstashKibanaを使うと、ElasticsearchはELK-stackとして使え、ログファイルを解析し、分析しさまざまな方法で視覚化できる。
また、商用ブランチ経由でサポートを購入することもできる。

この記事に星をつける

おすすめ度
スタイル

BT