CData SSIS Components を使用して SQL Server から Elasticsearch レコードを新規挿入または既存を更新

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
CData SSIS Components を使用して SQL Server データを Elasticsearch に簡単にプッシュできます。この例では、SSIS ワークフローを使用して、SQL Server データベースのデータで Elasticsearch に新しいレコードを挿入するか、既存のレコードを更新します。

SQL Server データベースは、エンタープライズレコードの保存に広く使用されています。このデータを他の場所に移動する必要がある場合がよくあります。CData SSIS Components for Elasticsearch を使用すると、SQL Server から Elasticsearch にデータを簡単に転送できます。

この記事では、CData SSIS Components for Elasticsearch を SQL Server Integration Services ワークフロー内で使用して、SQL Server から Elasticsearch にデータをエクスポートする方法を説明します。ルックアップコンポーネントを活用して、既存のレコードを検索・更新するか、新しいレコードを挿入します。

Elasticsearch データ連携について

CData を使用すれば、Elasticsearch のライブデータへのアクセスと統合がこれまでになく簡単になります。お客様は CData の接続機能を以下の目的で利用しています:

  • SQL エンドポイントと REST エンドポイントの両方にアクセスでき、接続を最適化し、Elasticsearch データの読み書きに関してより多くのオプションを提供します。
  • v2.2 以降およびオープンソース Elasticsearch サブスクリプションを含む、ほぼすべての Elasticsearch インスタンスに接続できます。
  • SCORE() 関数を明示的に要求することなく、常にクエリ結果の関連性スコアを受け取ることができます。これにより、サードパーティツールからのアクセスが簡素化され、クエリ結果のテキスト関連性のランキングを簡単に確認できます。
  • 複数のインデックスを検索でき、クライアントマシンではなく Elasticsearch がクエリと結果の管理・処理を担当します。

ユーザーは、Crystal Reports、Power BI、Excel などの分析ツールと Elasticsearch データを統合し、当社のツールを活用して、Elasticsearch を含むすべてのデータソースへの単一のフェデレートアクセスレイヤーを実現しています。

CData の Elasticsearch ソリューションの詳細については、ナレッジベース記事をご覧ください:CData Elasticsearch Driver Features & Differentiators


はじめに


コンポーネントの追加

まず、新しい OLE DB ソース、CData Elasticsearch ルックアップ、および 2 つの CData Elasticsearch デスティネーション(ルックアップで一致した場合と一致しなかった場合をそれぞれ処理)を新しい Data Flow Task に追加します。

OLE DB ソースの設定

以下の手順に従って、SQL Server インスタンスへの接続に必要なプロパティを指定します。

  1. OLE DB Source を開き、新しい接続を追加します。ここでサーバーとデータベースの情報を入力します。
  2. Data access mode メニューで「Table or view」を選択し、Elasticsearch にエクスポートするテーブルまたはビューを選択します。
  3. OLE DB Source ウィザードを閉じ、CData Elasticsearch Destination に接続します。

Elasticsearch 用の新しい Connection Manager を作成

以下の手順に従って、Connection Manager に接続プロパティを保存します。

  1. 新しい Connection Manager を作成します:Connection Manager ウィンドウで右クリックし、New Connection をクリックします。Add SSIS Connection Manager ダイアログが表示されます。
  2. Connection Manager type メニューで CData Elasticsearch Connection Manager を選択します。
  3. 接続プロパティを設定します。通常、Elasticsearch 接続には以下が必要です:
    • User
    • Password
    • AccessToken

Elasticsearch ルックアップの設定

ルックアップコンポーネントの Transform Editor で、SQL Server ソーステーブルから Elasticsearch ルックアップテーブルへのマッピングを定義します。

  1. Elasticsearch ルックアップをダブルクリックして、ルックアップコンポーネントエディタを開きます。
  2. Connection タブで、先ほど作成した Connection Manager を選択します。
  3. Connection タブで、Connection Manager を指定(または新規作成)し、データがアップサートされるテーブルを指定します。この例では、Account レコードを転送します。
  4. Columns タブで、入力カラムの主キーからルックアップカラムの主キーへのマッピングを設定します。

Elasticsearch デスティネーションの設定

ルックアップコンポーネントを使用すると、データソースのどのエントリが Elasticsearch に既に存在し、どのエントリが新規であるかがわかります。一致が見つかった場合と見つからなかった場合を処理する 2 つの Elasticsearch コンポーネントを設定します。

ルックアップ一致デスティネーション

ルックアップコンポーネントが一致を返した場合、Elasticsearch の既存レコードを更新します。

  1. Lookup Match Output を Elasticsearch デスティネーションコンポーネントにマップします。
  2. Elasticsearch デスティネーションをダブルクリックして、デスティネーションコンポーネントエディタを開きます。
  3. Connection Manager タブで、先ほど作成した Connection Manager を選択します。
  4. 更新するテーブルを指定し、Action を「Update」に設定します。
  5. Column Mappings タブで、入力カラムからデスティネーションカラムへのマッピングを設定します(SQL Server の主キーカラムを Elasticsearch の主キーカラムにマップすることを忘れずに)。

ルックアップ不一致デスティネーション

ルックアップコンポーネントが一致を返さなかった場合、Elasticsearch に新しいレコードを追加します。

  1. Lookup No Match Output を Elasticsearch デスティネーションコンポーネントにマップします。
  2. Elasticsearch デスティネーションをダブルクリックして、デスティネーションコンポーネントエディタを開きます。
  3. Connection Manager タブで、先ほど作成した Connection Manager を選択します。
  4. 新しいレコードを挿入するテーブルを指定し、Action を「Insert」に設定します。
  5. Column Mappings タブで、入力カラムからデスティネーションカラムへのマッピングを設定します。

プロジェクトの実行

これでプロジェクトを実行できます。 SSIS Task の実行が完了すると、SQL テーブルのデータが選択したテーブルにエクスポートされます。

はじめる準備はできましたか?

Elasticsearch SSIS Component の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

Elasticsearch Icon Elasticsearch SSIS Components お問い合わせ

SSIS ソース元 & 接続先コンポーネントは、SQL Server SSIS のワークフロー内で簡単にElasticsearch ドキュメントデータベースにリアルタイム接続できるパワフルなツールです。

データフロー内のElasticsearch コンポーネントを使ってElasticsearch データを同期できます。データ同期、ローカルバックアップ、ワークフローの自動化などに最適!