Elasticsearch のリアルタイム書き込み機能を使用して、リアルタイム データウェアハウスを構築できます。
前提条件
リーダーノードまたは変換ノードが構成されています。リアルタイム同期をサポートするデータソースの詳細については、「リアルタイム同期をサポートするデータソースの種類」をご参照ください。
制限事項
DataWorks では、Alibaba Cloud Elasticsearch V5.X、V6.X、および V7.X クラスタをデータソースとして追加できます。セルフマネージド Elasticsearch クラスタはサポートされていません。
手順
DataStudio ページに移動します。
DataWorks コンソール にログオンします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。
アイコンにマウスポインタを合わせて、 をクリックします。または、ビジネスフローを展開し、ターゲットのビジネスフローを右クリックして、 を選択します。
[ノードの作成] ダイアログボックスで、[同期方法] を [単一テーブル(トピック)から単一テーブル(トピック)への ETL] として選択し、[名前] を入力し、[パス] を選択します。
[確認] をクリックします。
リアルタイム同期ノードの構成タブで、[elasticsearch] を [出力] セクションから右側のキャンバスにドラッグし、Elasticsearch ノードをキャンバス内で構成済みのリーダーノードまたは変換ノードに接続します。
[elasticsearch] ノードをクリックします。表示されるパネルで、パラメータを構成します。

パラメータ
説明
データソース
DataWorks に追加した Elasticsearch データソースの名前。Elasticsearch データソースのみを選択できます。
Elasticsearch データソースがない場合は、右側の [新しいデータソース] をクリックして、[管理センター] の [データソース] ページに移動し、Elasticsearch データソースを追加します。詳細については、「Elasticsearch データソースを追加する」をご参照ください。
インデックス
データを書き込むインデックスの名前。
右側の [インデックスの作成] をクリックして、インデックスを作成できます。デフォルトのインデックス情報をそのまま使用してインデックスを作成できます。または、インデックス名、インデックスタイプ、動的マッピングステータス、プライマリシャードの数、レプリカシャードの数、およびインデックス作成ステートメントを変更して、インデックスを作成できます。
インデックスタイプ: このパラメータは、Elasticsearch V6.X、V5.X 以前でのみ使用できます。
動的マッピングステータス: このパラメータは、dynamic パラメータの値を指定するために使用されます。 dynamic パラメータは、Elasticsearch Writer が新しいフィールドをインデックスのマッピングに動的に書き込むかどうかを決定します。
バージョンが V7.10 より前の Elasticsearch クラスタを使用する場合、このパラメータの有効な値は、true、false、および strict です。
バージョンが V7.10 以降の Elasticsearch クラスタを使用する場合、このパラメータの有効な値は、true、false、strict、および runtime です。
ここで:
true: Elasticsearch Writer が新しいフィールドをインデックスのマッピングに書き込み、フィールドを検索できることを示します。
false: Elasticsearch Writer が新しいフィールドをインデックスのマッピングに書き込みますが、フィールドを検索できないことを示します。
strict: Elasticsearch Writer が新しいフィールドを検出した場合、エラーメッセージを返し、フィールドをインデックスのマッピングに書き込まないことを示します。
runtime: Elasticsearch Writer が新しいフィールドをランタイムフィールドとしてインデックスのマッピングに書き込みますが、フィールドを検索できないことを示します。
詳細については、オープンソース Elasticsearch の dynamic パラメータを参照してください。
シャード: プライマリシャードの数。1 つのインデックスを複数のプライマリシャードに分割できます。プライマリシャードは、分散検索をサポートするために異なるノードに分散できます。インデックスを作成するときは、インデックスのプライマリシャードの数を指定する必要があります。インデックスの作成後、この数は変更できません。詳細については、「用語」をご参照ください。
レプリカ: 各プライマリシャードのレプリカシャードの数。レプリカシャードは、フォールトトレランスと、クラスタの読み取りリクエスト ワークロードの処理に使用できます。クラスタの容量が不足している場合、各プライマリシャードに 1 つのバックアップのみが必要な場合、またはクラスタの書き込みパフォーマンスにボトルネックが発生している場合は、[レプリカ] を 1 に設定します。
インデックス作成ステートメント: フィールド構成は properties で構成されます。フィールドのタイプを変更できます。
Elasticsearch インデックスのパーティション化を有効にする
ルーティングメカニズムを有効にするかどうかを指定します。 routing パラメータの値をカスタマイズできます。 routing のデフォルト値はドキュメントの ID です。ハッシュ関数は、routing の値を変換して数値を取得するために使用されます。この数値は、プライマリシャードの数を割って剰余を取得するために使用されます。剰余は、プライマリシャードにおけるドキュメントの位置を示します。
プライマリキーの設定 (by_id)
データ同期の際に Elasticsearch インデックスの ID に値を割り当てるために使用されるメソッド。有効な値:
プライマリキー: ソーステーブルの列の 1 つをプライマリキーとして使用します。
複合プライマリキー: ソーステーブルの複数の列を組み合わせてプライマリキーを形成します。
説明このパラメータを [プライマリキー] に設定したがソースにプライマリキーがない場合、またはこのパラメータを [複合プライマリキー] に設定したがソースにプライマリキー列がない場合、このパラメータは有効になりません。この場合、ランダムな値が自動的に生成され、Elasticsearch インデックスの ID に割り当てられます。これにより、データの重複が発生する可能性があります。
マッピング
ソースとデスティネーション間のフィールドマッピング。同期ノードは、フィールドマッピングに基づいてデータを同期します。
リアルタイム同期ノードの構成タブの上部ツールバーにある
アイコンをクリックして、ノードを保存します。