Alibaba Cloud Elasticsearch を使用して、RDS SQL Server のデータを検索および分析できます。このトピックでは、DataWorks のデータ統合サービスを使用して、Alibaba Cloud ES インスタンスにデータをオフラインで同期する方法について説明します。
背景情報
DataWorks は、データ開発、タスクスケジューリング、データ管理などの機能を統合した、ビッグデータ開発とガバナンスのための包括的なプラットフォームです。DataWorks の同期タスクを使用して、さまざまなデータソースから Alibaba Cloud ES にデータを迅速に移動できます。
次のデータソースがサポートされています:
Alibaba Cloud データベース: ApsaraDB for RDS (MySQL、PostgreSQL、SQL Server)、ApsaraDB for MongoDB、および ApsaraDB for HBase
Alibaba Cloud PolarDB-X (DRDS からアップグレード)
Alibaba Cloud MaxCompute
Alibaba Cloud Object Storage Service (OSS)
Alibaba Cloud Tablestore
HDFS、Oracle、FTP、DB2 などの自己ホスト型データソース。
シナリオ:
データベースまたはテーブルから Alibaba Cloud Elasticsearch にオフラインモードでビッグデータを同期します。詳細については、「バッチ同期タスクを作成してデータベース内のすべてのデータを Elasticsearch に同期する」をご参照ください。
完全なビッグデータと増分ビッグデータをリアルタイムで Alibaba Cloud Elasticsearch に同期します。詳細については、「MySQL データベース全体をリアルタイムで Elasticsearch に同期する」をご参照ください。
前提条件
ApsaraDB RDS for SQL Server インスタンスが作成されていること。このトピックでは、ApsaraDB RDS for SQL Server 2019 Standard Edition インスタンスを例として使用します。詳細については、「ApsaraDB RDS for SQL Server インスタンスをすばやく作成して使用する」をご参照ください。
Alibaba Cloud ES インスタンスが作成され、インスタンスの自動インデックス作成機能が有効になっていること。詳細については、「Alibaba Cloud Elasticsearch インスタンスの作成」および「YML パラメーターの設定」をご参照ください。
DataWorks ワークスペースが作成されていること。詳細については、「ワークスペースの作成」をご参照ください。
データは Alibaba Cloud ES にのみ同期できます。セルフマネージド Elasticsearch インスタンスはサポートされていません。
ApsaraDB RDS for SQL Server インスタンス、ES インスタンス、および DataWorks ワークスペースは、同じリージョンにある必要があります。
ApsaraDB RDS for SQL Server インスタンス、ES インスタンス、および DataWorks ワークスペースは、同じタイムゾーンにある必要があります。そうでない場合、時間関連のデータを同期するときにタイムゾーンの差が生じる可能性があります。
課金
ES インスタンス料金の詳細については、「ES の課金項目」をご参照ください。
データ統合専用リソースグループの課金の詳細については、「データ統合専用リソースグループの課金 (サブスクリプション)」をご参照ください。
手順
ステップ 1: ソースデータの準備
ApsaraDB RDS for SQL Server インスタンスでは、次のテストデータが使用されます。
このトピックのデータはテスト専用です。本番環境では使用しないでください。

CREATE TABLE 文
CREATE TABLE students( id INT, name VARCHAR(20), age INT )INSERT 文
INSERT INTO [students]( [id] , [name] , [age] )values('1', 'Xiaoming','21');
ステップ 2: 専用リソースグループの購入と設定
データ統合専用リソースグループを購入し、VPC とワークスペースをリソースグループにアタッチします。専用リソースグループは、高速で安定したデータ転送を保証します。
DataWorks コンソールにログインします。
トップメニューバーでリージョンを選択します。左のナビゲーションウィンドウで、[リソースグループ] をクリックします。
[専用リソースグループ] タブで、 をクリックします。
[DataWorks 専用リソース (サブスクリプション)] 購入ページで、[専用] [リソースタイプ] を [データ統合専用リソース] に設定し、リソースグループの名前を入力して、[今すぐ購入] をクリックします。
設定の詳細については、「ステップ 1: リソースグループの購入」をご参照ください。
専用リソースグループに VPC をアタッチするには、[操作] 列の [ネットワーク設定] をクリックします。詳細については、「VPC のアタッチ」をご参照ください。
説明このトピックでは、データ統合専用リソースグループを使用して VPC 内部ネットワーク経由でデータを同期する例を使用します。詳細については、「ホワイトリストの追加」をご参照ください。
専用リソースグループは、データを同期するために RDS SQL Server および Elasticsearch インスタンスの VPC に接続する必要があります。この接続を確立するには、RDS SQL Server および Elasticsearch インスタンスが存在する [VPC]、[ゾーン]、および [VSwitch] をアタッチします。インスタンスの VPC 情報を表示するには、「ApsaraDB RDS for SQL Server インスタンスの vSwitch の切り替え」および「Elasticsearch インスタンスの基本情報の表示」をご参照ください。
重要VPC をアタッチした後、[VSwitch CIDR ブロック] を RDS SQL Server および Elasticsearch インスタンスの内部向けホワイトリストに追加する必要があります。詳細については、「ApsaraDB RDS for SQL Server インスタンスのホワイトリストの設定」および「Elasticsearch インスタンスのパブリックまたは内部向けホワイトリストの設定」をご参照ください。
ページの左上隅にある戻るアイコンをクリックして、[リソースグループリスト] ページに戻ります。
専用リソースグループの [操作] 列で、[ワークスペースのアタッチ] をクリックしてターゲットワークスペースをアタッチします。
詳細については、「ステップ 2: ワークスペースのアタッチ」をご参照ください。
ステップ 3: データソースの追加
ApsaraDB RDS for SQL Server と Elasticsearch のデータソースを DataWorks のデータ統合サービスに追加します。
DataWorks で、[データ統合] ページに移動します。
DataWorks コンソールにログインします。
左のナビゲーションウィンドウで、[ワークスペース] をクリックします。
ターゲットワークスペースの [操作] 列で、 を選択します。
ナビゲーションウィンドウで、[データソース] をクリックします。
ApsaraDB RDS for SQL Server データソースを追加します。
[データソースリスト] ページで、[データソースの追加] をクリックします。
[データソースの追加] ページで、[SQL Server] データソースを検索して選択します。
[SQL Server データソースの追加] ダイアログボックスで、[基本情報] エリアのパラメーターを設定します。
詳細については、「SQL Server データソースの設定」をご参照ください。
[接続設定] エリアで、[接続テスト] をクリックします。[接続済み] のステータスは、接続が成功したことを示します。
[完了] をクリックします。
同様の方法で Elasticsearch データソースを追加します。詳細については、「Elasticsearch データソースの設定」をご参照ください。
ステップ 4: オフラインデータ同期タスクの設定と実行
オフライン同期タスクは、専用リソースグループを使用して実行されます。専用リソースグループは、データ統合のデータソースからデータを取得し、Elasticsearch にデータを書き込みます。
オフライン同期タスクは 2 つの方法で設定できます。このトピックでは、コードレス UI を例として使用します。コードエディタを使用することもできます。詳細については、「コードエディタを使用したオフライン同期タスクの設定」および「Elasticsearch Writer」をご参照ください。
DataWorks の [データ開発] ページに移動します。
DataWorks コンソールにログインします。
左のナビゲーションウィンドウで、[ワークスペース] をクリックします。
ターゲットワークスペースの [操作] 列で、 を選択します。
オフライン同期タスクを作成します。
左側のナビゲーションウィンドウで、
アイコンをクリックし、 を選択します。新しいビジネスフローを右クリックし、 を選択します。
[新規ノード] ダイアログボックスで、ノード名を入力し、[確認] をクリックします。
ネットワークとリソースを設定します。
[データソース] エリアで、[データソース] を SQL Server に設定し、[データソース名] のデータソースを選択します。
[マイリソースグループ] エリアで、専用リソースグループを選択します。
[データ宛先] エリアで、[データ宛先] を Elasticsearch に設定し、[データソース名] のデータソースを選択します。
次へ をクリックします。
タスクを設定します。
[データソース] エリアで、同期するテーブルを選択します。
[データ宛先] エリアでパラメーターを設定します。
[フィールドマッピング] エリアで、[ソースフィールド] と [宛先フィールド] の間のマッピングを設定します。詳細については、「コードレス UI を使用したオフライン同期タスクの設定」をご参照ください。
[チャネルコントロール] エリアで、チャネルパラメーターを設定できます。
設定の詳細については、「コードレス UI を使用したオフライン同期タスクの設定」をご参照ください。
タスクを実行します。
(オプション) 右側のペインで、[スケジューリング設定] をクリックしてタスクのスケジューリングパラメーターを設定します。各パラメーターの詳細については、「スケジューリング設定」をご参照ください。
ノード設定タブの右上隅にある保存アイコンをクリックして、タスクを保存します。
ノード設定タブの右上隅にある送信アイコンをクリックして、タスクを送信します。
スケジューリングプロパティを設定した場合、タスクは指定された間隔で自動的に実行されます。ノード設定タブの右上隅にある実行アイコンをクリックして、タスクをすぐに実行することもできます。
ログにメッセージ
Shell run successfully!が含まれている場合、タスクは正常に実行されています。
ステップ 5: データ同期結果の確認
宛先の Alibaba Cloud ES インスタンスの Kibana コンソールにログインします。詳細については、「Kibana コンソールへのログイン」をご参照ください。
Kibana ページの左上隅にあるアイコンをクリックし、[Dev Tools] を選択します。
[コンソール] で、次のコマンドを実行して同期されたデータを表示できます。
POST /dbo.students/_search?pretty { "query": { "match_all": {}} }説明dbo.students を、DataWorks でデータ同期を設定したときに index パラメーターに指定した値に置き換えます。
期待される結果は次の図に示されています。
