Elasticsearchにデータを追加する
Elasticsearchにデータを取り込む方法はいくつかあります。選択するオプションは、タイムスタンプ付きデータを扱っているか、タイムスタンプなしデータを扱っているか、データの出所、複雑さなどによって異なります。
Kibanaを使用して、サンプルデータをElasticsearchクラスターにロードし、すぐに始めることができます。
一般的なコンテンツ
一般的なコンテンツは、タイムスタンプを持たないデータです。これは、ベクトル埋め込み、ウェブサイトのコンテンツ、製品カタログなどのデータを含む可能性があります。一般的なコンテンツの場合、Elasticsearchインデックスにデータを追加するためのオプションは次のとおりです:
- API:ElasticsearchのドキュメントAPIを使用して、Dev ToolsのコンソールやcURLを使用してドキュメントを直接インデックスします。
ウェブサイトやアプリを構築している場合は、選択したプログラミング言語でElasticsearchクライアントを使用してElasticsearch APIを呼び出すことができます。Pythonクライアントを使用する場合は、さまざまなサンプルノートブックのためにelasticsearch-labs
リポジトリをチェックしてください。 - ファイルアップロード:Kibanaファイルアップローダーを使用して、単一のファイルをインデックスし、一回限りのテストと探索を行います。GUIはインデックスとフィールドマッピングの設定をガイドします。
- ウェブクローラー:ウェブページのコンテンツを抽出してElasticsearchドキュメントにインデックスします。
- コネクタ:さまざまなサードパーティデータソースからデータを同期して、Elasticsearchに検索可能な読み取り専用のレプリカを作成します。
タイムスタンプ付きデータ
Elasticsearchのタイムスタンプ付きデータは、タイムスタンプフィールドを含むデータセットを指します。Elastic Common Schema (ECS)を使用する場合、このフィールドは@timestamp
と呼ばれます。これは、ログ、メトリクス、トレースなどのデータを含む可能性があります。
タイムスタンプ付きデータの場合、Elasticsearchデータストリームにデータを追加するためのオプションは次のとおりです:
- Elastic AgentとFleet:タイムスタンプ付きデータをインデックスするための推奨方法です。各Elastic Agentベースの統合には、デフォルトの取り込みルール、ダッシュボード、視覚化が含まれており、すぐにデータを分析し始めることができます。KibanaのFleet UIを使用して、Elastic Agentsとそのポリシーを中央管理できます。
- Beats:データソースがElastic Agentによってサポートされていない場合は、Beatsを使用してデータを収集し、Elasticsearchに送信します。収集するデータの種類ごとに別々のBeatをインストールします。
- Logstash:Logstashは、リアルタイムのパイプライン機能を持つオープンソースのデータ収集エンジンで、さまざまなデータソースをサポートしています。このオプションを使用する理由は、Elastic AgentやBeatsがデータソースをサポートしていないためです。また、Logstashを使用して受信データを永続化したり、データを複数の宛先に送信する必要がある場合にも使用できます。
- 言語クライアント:リンクされたチュートリアルでは、アプリケーションからデータを取り込むためにElasticsearchプログラミング言語クライアントを使用する方法を示しています。これらの例では、ElasticsearchはElastic Cloud上で実行されていますが、同じ原則が任意のElasticsearchデプロイメントに適用されます。
タイムスタンプ付きデータのデータ取り込みパイプラインに興味がある場合は、Elastic Cloudドキュメントの意思決定ツリーを使用してオプションを理解してください。