Elasticsearch-basic-concepts
Elasticsearch-基本概念
Elasticsearchは、Apache Luceneベースの検索サーバーです。 Shay Banonによって開発され、2010年に公開されました。 現在、Elasticsearch BVによって管理されています。 最新バージョンは7.0.0です。
Elasticsearchは、リアルタイムで分散されたオープンソースの全文検索および分析エンジンです。 RESTful Webサービスインターフェイスからアクセスでき、スキーマを含まないJSON(JavaScript Object Notation)ドキュメントを使用してデータを保存します。 Javaプログラミング言語で構築されているため、Elasticsearchはさまざまなプラットフォームで実行できます。 これにより、ユーザーは非常に大量のデータを非常に高速に探索できます。
一般的な機能
Elasticsearchの一般的な機能は次のとおりです-
- Elasticsearchは、最大数ペタバイトの構造化および非構造化データまで拡張可能です。
- Elasticsearchは、MongoDBやRavenDBなどのドキュメントストアの代替として使用できます。
- Elasticsearchは、非正規化を使用して検索パフォーマンスを改善します。
- Elasticsearchは人気のあるエンタープライズ検索エンジンの1つであり、現在、Wikipedia、The Guardian、StackOverflow、GitHubなどの多くの大きな組織で使用されています。
- Elasticsearchはオープンソースであり、Apacheライセンスバージョン2.0で利用できます。
キーコンセプト
Elasticsearchの重要な概念は次のとおりです-
Node
Elasticsearchの単一の実行中のインスタンスを指します。 単一の物理サーバーと仮想サーバーは、RAM、ストレージ、処理能力などの物理リソースの機能に応じて、複数のノードに対応します。
クラスタ
これは、1つ以上のノードのコレクションです。 クラスターは、データ全体のすべてのノードにわたる集合的なインデックス作成および検索機能を提供します。
索引
これは、さまざまな種類のドキュメントとそのプロパティのコレクションです。 インデックスは、パフォーマンスを向上させるためにシャードの概念も使用します。 たとえば、一連のドキュメントには、ソーシャルネットワーキングアプリケーションのデータが含まれています。
資料
これは、JSON形式で定義された特定の方法でのフィールドのコレクションです。 すべてのドキュメントはタイプに属し、インデックス内に存在します。 すべてのドキュメントは、UIDと呼ばれる一意の識別子に関連付けられています。
シャード
インデックスは水平方向に断片に細分化されます。 つまり、各シャードにはドキュメントのすべてのプロパティが含まれますが、含まれるJSONオブジェクトの数はインデックスよりも少なくなります。 水平分離により、シャードは独立したノードになり、任意のノードに保存できます。 プライマリシャードはインデックスの元の水平部分であり、これらのプライマリシャードはレプリカシャードに複製されます。
レプリカ
Elasticsearchを使用すると、ユーザーはインデックスとシャードのレプリカを作成できます。 レプリケーションは、障害が発生した場合にデータの可用性を高めるのに役立つだけでなく、これらのレプリカで並列検索操作を実行することで検索のパフォーマンスを向上させます。
利点
- ElasticsearchはJavaで開発されているため、ほぼすべてのプラットフォームで互換性があります。
- Elasticsearchはリアルタイムです。つまり、1秒後に、追加されたドキュメントがこのエンジンで検索可能になります。
- Elasticsearchは分散されているため、大規模な組織に簡単に拡張および統合できます。
- Elasticsearchに存在するゲートウェイの概念を使用すると、完全バックアップを簡単に作成できます。
- マルチテナントの処理は、Apache Solrと比較するとElasticsearchでは非常に簡単です。
- Elasticsearchは応答としてJSONオブジェクトを使用するため、多数の異なるプログラミング言語でElasticsearchサーバーを呼び出すことができます。
- Elasticsearchは、テキストレンダリングをサポートしていないドキュメントタイプを除く、ほぼすべてのドキュメントタイプをサポートしています。
デメリット
- Elasticsearchは、CSV、XML、およびJSON形式で可能なApache Solrとは異なり、要求および応答データ(JSONでのみ可能)の処理に関して多言語をサポートしていません。
- 時折、Elasticsearchにはスプリットブレインの状況の問題があります。
ElasticsearchとRDBMSの比較
Elasticsearchでは、インデックスはRDBMS(リレーションデータベース管理システム)のテーブルに似ています。 すべてのインデックスがElasticsearchのドキュメントのコレクションであるように、すべてのテーブルは行のコレクションです。
次の表は、これらの用語の直接比較を示しています。
Elasticsearch | RDBMS |
---|---|
Cluster | Database |
Shard | Shard |
Index | Table |
Field | Column |
Document | Row |