このトピックでは、DataWorks (DW) のデータ同期機能を使用して、Alibaba Cloud Elasticsearch (ES) クラスターから MaxCompute (MC) へデータを移行する方法について説明します。
前提条件
MaxCompute がアクティブ化されていること。
詳細については、「MC のアクティブ化」をご参照ください。
DataWorks がアクティブ化されていること。
詳細については、「購入」をご参照ください。
MC データソースが追加されていること。詳細については、「MC 計算リソースのアタッチ」をご参照ください。
DW でビジネスフローが作成されていること。
この例では、DW の基本モードを使用します。詳細については、「ビジネスフローの作成」をご参照ください。
ES クラスターが作成されていること。
データを移行する前に、ご利用の ES クラスターが正常に稼働していることを確認してください。ES クラスターの作成方法の詳細については、「初心者ガイド: インスタンス作成からデータ取得まで」をご参照ください。
この例で使用する ES クラスターの構成は次のとおりです。
リージョン: 中国 (上海)
ゾーン: 上海ゾーンB
バージョン: 5.5.3 with Commercial Feature
背景情報
Elasticsearch は Lucene をベースとした検索サーバーです。分散型マルチテナント全文検索エンジンを提供します。Elasticsearch は Apache License に準拠したオープンソースプロダクトであり、主要なエンタープライズ検索エンジンです。
Alibaba Cloud Elasticsearch は、Elasticsearch 5.5.3 with Commercial Feature、6.3.2 with Commercial Feature、6.7.0 with Commercial Feature、および商用 X-Pack プラグインを提供します。データ分析やデータ検索などのシナリオ向けに設計されています。ES は、オープンソースの Elasticsearch を基盤として、権限管理、セキュリティ監視とアラート、自動レポート生成などのエンタープライズレベルの機能を提供します。
操作手順
Elasticsearch にソーステーブルを作成します。詳細については、「DW を使用した MC から ES へのデータ同期」をご参照ください。
MC にターゲットテーブルを作成します。
DW コンソールにログインします。上部のナビゲーションバーで目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に進む] をクリックします。
作成したビジネスフローを右クリックし、 を選択します。
「テーブルの作成」ダイアログボックスで、[名前] を入力し、[作成] をクリックします。
説明Data Studio で複数の MC 計算リソースがアタッチされている場合は、必要に応じて [MaxCompute Engine インスタンス] を選択します。
テーブル編集ページで、[DDLモード] をクリックします。
[DDL] ダイアログボックスで、テーブルを作成するための次の文を入力し、[テーブルスキーマの生成] をクリックします。
create table elastic2mc_bankdata ( age string, job string, marital string, education string, default string, housing string, loan string, contact string, month string, day of week string );[本番環境へ送信] をクリックします。
データを同期します。
データ分析ページに移動します。指定したワークフローを右クリックし、 を選択します。
「ノードの作成」ダイアログボックスで、「名前」を入力し、「確認」をクリックします。
上部のナビゲーションバーで、
アイコンを選択します。スクリプトモードで、
アイコンをクリックします。[テンプレートのインポート] ダイアログボックスで、[ソースタイプ]、[データソース]、[ターゲットタイプ]、および [データソース] を指定し、[確認] をクリックします。
スクリプトを構成します。
次のコードは例を示しています。パラメーターの詳細については、「Elasticsearch Reader」をご参照ください。
{ "type": "job", "steps": [ { "stepType": "elasticsearch", "parameter": { "retryCount": 3, "column": [ "age", "job", "marital", "education", "default", "housing", "loan", "contact", "month", "day_of_week", "duration", "campaign", "pdays", "previous", "poutcome", "emp_var_rate", "cons_price_idx", "cons_conf_idx", "euribor3m", "nr_employed", "y" ], "scroll": "1m", "index": "es_index", "pageSize": 1, "sort": { "age": "asc" }, "type": "elasticsearch", "connTimeOut": 1000, "retrySleepTime": 1000, "endpoint": "http://es-cn-xxxx.xxxx.xxxx.xxxx.com:9200", "password": "xxxx", "search": { "match_all": {} }, "readTimeOut": 5000, "username": "xxxx" }, "name": "Reader", "category": "reader" }, { "stepType": "odps", "parameter": { "partition": "", "truncate": true, "compress": false, "datasource": "odps_source",// The name of the MaxCompute data source "column": [ "age", "job", "marital", "education", "default", "housing", "loan", "contact", "month", "day_of_week", "duration", "campaign", "pdays", "previous", "poutcome", "emp_var_rate", "cons_price_idx", "cons_conf_idx", "euribor3m", "nr_employed", "y" ], "emptyAsNull": false, "table": "elastic2mc_bankdata" }, "name": "Writer", "category": "writer" } ], "version": "2.0", "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] }, "setting": { "errorLimit": { "record": "0" }, "speed": { "throttle": false, "concurrent": 1, "dmu": 1 } } }説明ご利用の ES クラスターの [基本情報] ページで、パブリックエンドポイント と パブリックポート を表示できます。
アイコンをクリックしてコードを実行します。[操作ログ]で結果を確認できます。
結果を表示します。
ワークフローを右クリックし、 を選択します。
[ノードの作成] ダイアログボックスで、[ノード名] を入力し、[送信] をクリックします。
ODPS SQL ノード編集ページで、次のステートメントを入力します。
SELECT * FROM elastic2mc_bankdata;
アイコンをクリックしてコードを実行します。結果は[操作ログ]で確認できます。