ブログ

Airbyte経由でElasticsearchにデータを取り込む方法

Airbyte を使用して Elasticsearch にデータを取り込みます。前提条件、Airbyte の構成、段階的な統合について説明します。

Airbyte は、さまざまなソースからさまざまな宛先に情報を自動的かつスケーラブルに移動できるデータ統合ツールです。API、データベース、その他のシステムからデータを抽出し、高度な検索と効率的な分析を提供する Elasticsearch などのプラットフォームにロードできるようになります。

この記事では、主要な概念、前提条件、段階的な統合について説明しながら、Airbyte を構成して Elasticsearch にデータを取り込む方法について説明します。

Airbyte を設定してデータを Elasticsearch に取り込む

Airbyteの基本概念

Airbyte には、使用にあたっていくつかの重要な概念があります。以下に主なものを紹介します。

  • ソース: 抽出されるデータのソースを定義します。

  • 送信先: データが送信され、保存される場所を定義します。

  • 接続: 同期頻度など、ソースと宛先間の関係を構成します。

AirbyteとElasticsearchの統合

このデモでは、S3 バケットに保存されているデータを Elasticsearch インデックスに移行する統合を実行します。Airbyte でソース (S3) と宛先 (Elasticsearch) を設定する方法を説明します。

要件

このデモンストレーションを実行するには、次の前提条件を満たしている必要があります。

  1. データを含む JSON ファイルが保存されるバケットを AWS に作成します。

  2. Docker を使用してAirbyte をローカルにインストールします

  3. 取り込んだデータを保存するには、Elastic Cloud に Elasticsearch クラスターを作成します。

以下では、これらの各ステップについて詳しく説明します。

Airbyteのインストール

Airbyte は Docker を使用してローカルで実行することも、使用状況に応じてコストがかかるクラウドで実行することもできます。このデモでは、Docker を使用したローカル バージョンを使用します。

インストールには数分かかる場合があります。インストール手順に従うと、Airbyte は http://localhost:8000 で利用できるようになります。

Airbyteのインストール

ログイン後、統合の設定を開始できます。

バケットの作成

このステップでは、S3 バケットを作成するために AWS アカウントが必要になります。さらに、バケットへのアクセスを許可するポリシーと IAM ユーザーを作成して、正しい権限を設定することが重要です。

バケットには、さまざまなログ レコードを含む JSON ファイルをアップロードし、後で Elasticsearch に移行します。ファイル ログの内容は次のとおりです。

{
   "timestamp": "2025-02-15T14:00:12Z",
   "level": "INFO",
   "service": "data_pipeline",
   "message": "Pipeline execution started",
   "details": {
       "pipeline_id": "abc123",
       "source": "MySQL",
       "destination": "Elasticsearch"
   }
}

以下はバケットにロードされたファイルです。

Airbyteのバケットにロードされたファイル

Elastic Cloud の構成

デモンストレーションを簡単にするために、Elastic Cloud を使用します。まだアカウントをお持ちでない場合は、 Elastic Cloud 登録から無料トライアル アカウントを作成できます。

Elastic Cloud でデプロイメントを構成した後、以下を取得する必要があります。

  • Elasticsearch サーバーの URL。

  • Elasticsearch にアクセスするユーザー。

URL を取得するには、「デプロイメント」>「マイデプロイメント」に移動し、アプリケーションで Elasticsearch を見つけて、「エンドポイントをコピー」をクリックします。

Elastic Cloud の構成

ユーザーを作成するには、次の手順に従います。

  1. Kibana > スタック管理 > ユーザーにアクセスします。

  2. スーパーユーザーの役割を持つ新しいユーザーを作成します。

  3. フィールドに入力してユーザーを作成します。

Elastic Cloudでユーザーを作成する

すべての設定が完了したので、Airbyte でコネクタの構成を開始できます。

ソースコネクタの構成

このステップでは、S3 のソース コネクタを作成します。これを行うには、Airbyte インターフェイスにアクセスし、メニューの [ソース] オプションを選択します。次に、S3 コネクタを検索します。以下に、コネクタを構成するために必要な手順を詳しく説明します。

  1. Airbyte にアクセスし、[ソース] メニューに移動します。

  2. S3 コネクタを検索して選択します。

  3. 次のパラメータを設定します。

    1. ソース名: データ ソースの名前を定義します。

    2. 配信方法: 「レコードの複製」を選択します (構造化データに推奨)。

    3. データ形式: JSON 形式を選択します。

    4. ストリーム名: Elasticsearch のインデックスの名前を定義します。

    5. バケット名: AWS のバケットの名前を入力します。

    6. AWS アクセスキーと AWS シークレットキー: アクセス資格情報を入力します。

ソースの設定をクリックし、検証を待ちます。

AirbyteとElasticsearchのデータ取り込みの検証を待つ

構成宛先コネクタ

このステップでは、宛先コネクタとして Elasticsearch を設定します。これを行うには、メニューにアクセスして [宛先] オプションを選択します。次に、Elasticsearch を検索し、返された結果をクリックします。次に、この接続の構成に進みます。

  1. Airbyte にアクセスし、[Destinations] メニューに移動します。

  2. Elasticsearch コネクタを検索して選択します。

  3. 次のパラメータを設定します。

    1. 認証方法: ユーザー名/パスワードを選択します。

    2. ユーザー名とパスワード: Kibana で作成された資格情報を使用します。

    3. サーバーエンドポイント: Elastic Cloud からコピーした URL を貼り付けます。

「宛先の設定」をクリックし、検証を待ちます。

Airbyteデータ取り込み用の宛先をElastic Cloudに作成する

ソースと宛先の接続の作成

ソースと宛先が作成されると、それらの間の接続が作成され、統合の作成が完了します。

接続を作成する手順は次のとおりです。

1.メニューで「接続」に移動し、「最初の接続の作成」をクリックします。

2. 次の画面で、既存のソースを選択するか、新しいソースを作成することができます。すでにソースが作成されているので、ソース S3 を選択します。

Airbyteで既存のソースを選択するか、新しいソースを作成します

3. 次のステップでは、宛先を選択します。Elasticsearch コネクタはすでに作成されているため、これを選択して構成を完了します。

Airbyteで目的地を選択する

次のステップでは、同期モードと使用するスキーマを定義する必要があります。ログ スキーマのみが作成されたため、選択できるオプションはログ スキーマのみになります。

Airbyteで同期モードを定義する

4. 「接続の構成」手順に進みます。ここで、接続の名前と統合実行の頻度を定義できます。周波数は次の 3 つの方法で設定できます。

  • Cron : ユーザー定義の cron 式に基づいて同期を実行します (例: 0 0 15 * * ?、毎日 15:00)。

  • スケジュール: 指定された時間間隔で同期を実行します(例:24時間ごと、2時間ごと);

  • 手動: 同期を手動で実行します。

このデモでは、「手動」オプションを選択します。

最後に、 「接続の設定」をクリックすると、ソースと宛先間の接続が確立されます。

Airbyteで接続の設定をクリックする

S3からElasticsearchへのデータの同期

「接続」画面に戻ると、作成された接続を確認できます。プロセスを実行するには、「同期」をクリックするだけです。その瞬間から、S3 から Elasticsearch へのデータの移行が始まります。

Airbyte で S3 から Elasticsearch にデータを同期する

すべてがスムーズに進むと、同期されたステータスになります。

Airbyte の S3 から Elasticsearch への同期ステータス

Kibanaでデータを視覚化する

ここで、Kibana に移動してデータを分析し、正しくインデックスが作成されたかどうかを確認します。Kibana の Discovery セクションで、logs というデータ ビューを作成します。これにより、同期後に作成されたログ インデックスにのみ存在するデータを探索できるようになります。

Kibanaでデータを可視化する: AirbyteとElastic

これで、インデックス化されたデータを視覚化し、分析を実行できるようになりました。このようにして、Airbyte を使用して移行フロー全体を検証し、バケット内に存在するデータをロードして Elasticsearch でインデックスを作成しました。

AirbyteとElastic: インデックスされたデータを視覚化し、Kibanaで分析を実行する

結論: AirbyteとElasticsearchの統合

Airbyte はデータ統合のための効率的なツールであることが証明され、複数のソースと送信先を自動的に接続できるようになりました。このチュートリアルでは、プロセスの主な手順に焦点を当てながら、S3 バケットから Elasticsearch インデックスにデータを取り込む方法を説明しました。

このアプローチにより、大量のデータの取り込みが容易になり、複雑な検索、集計、データの視覚化などの Elasticsearch 内での分析が可能になります。

参照資料

クイックスタート Airbyte:

https://docs.airbyte.com/using-airbyte/getting-started/oss-quickstart#part-1-install-abctl

コアコンセプト:

https://docs.airbyte.com/using-airbyte/core-concepts/

よくあるご質問

Airbyte とは何ですか?

Airbyte は、さまざまなソースからさまざまな宛先に情報を自動的かつスケーラブルに移動できるデータ統合ツールです。

関連記事

Elasticsearchインデックスのフィールドを表示する

Kofi Bartlett

Kafka 経由で Elasticsearch にデータを取り込む方法

Andre Luiz

LogstashでのRubyスクリプト

Dai Sugimori

Elasticsearch のインデックステンプレート: 構成可能なテンプレートの使い方

Kofi Bartlett

Elasticsearchインデックスのフィールドを表示する方法

JD Armada

最先端の検索体験を構築する準備はできましたか?

十分に高度な検索は 1 人の努力だけでは実現できません。Elasticsearch は、データ サイエンティスト、ML オペレーター、エンジニアなど、あなたと同じように検索に情熱を傾ける多くの人々によって支えられています。ぜひつながり、協力して、希望する結果が得られる魔法の検索エクスペリエンスを構築しましょう。

はじめましょう