すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:DataWorks を使用した HBase から Alibaba Cloud ES へのデータ同期

最終更新日:Mar 27, 2026

DataWorks の Data Integration を使用してオフライン同期タスクを実行し、ApsaraDB for HBase のデータを Alibaba Cloud Elasticsearch (ES) にロードして検索と分析を行います。

このチュートリアルを完了すると、次のものが得られます。

  • HBase クラスターと ES クラスター両方の VPC に接続された排他的リソースグループ

  • Data Integration にデータソースとして登録された HBase と ES

  • HBase データを Elasticsearch インデックスに書き込む、実行中のオフライン同期タスク

仕組み

DataWorks は、ビッグデータコンピュートエンジンをベースにした、データ開発、タスクスケジューリング、データ管理を特徴とするエンドツーエンドのビッグデータ開発およびガバナンスプラットフォームです。 Data Integration は、排他的リソースグループを介して HBase ソースからデータを取得し、ES クラスターに書き込みます。 排他的リソースグループは、両方のクラスターにそれぞれの VPC を介して接続し、安定した安全なデータ転送を保証します。

同期は、オフライン(バッチ)モードで実行されます。リアルタイム同期については、「Elasticsearch へのデータ同期のためのリアルタイム同期タスクを作成する」をご参照ください。

DataWorks の Data Integration では、次のデータソースがサポートされています。

  • Alibaba Cloud データベース: ApsaraDB RDS for MySQL、ApsaraDB RDS for PostgreSQL、ApsaraDB RDS for SQL Server、ApsaraDB for MongoDB、ApsaraDB for HBase

  • Alibaba Cloud サービス: PolarDB for Xscale (PolarDB-X) (旧 DRDS)、MaxCompute、Object Storage Service (OSS)、Tablestore

  • 自己管理型データベース: HDFS、Oracle、FTP、Db2、MySQL、PostgreSQL、SQL Server、MongoDB、HBase

前提条件

開始する前に、次のものがあることを確認してください。

制限事項:

  • 同期先としてサポートされているのは Alibaba Cloud ES のみです。 自己管理型 Elasticsearch インスタンスはサポートされていません。

  • HBase クラスター、ES クラスター、および DataWorks ワークスペースは、同じリージョンと同じタイムゾーンにある必要があります。 タイムゾーンが一致しない場合、同期された時間関連データのタイムスタンプが不正確になります。

課金

ステップ1:ソースデータの準備

このチュートリアルでは、student という名前のテーブルを使用します。このテーブルには、nameIDgender の 3 つのカラムファミリーがあります。

HBase Shell でテーブルを作成します。

create 'student', {NAME => 'name'}, {NAME => 'ID'}, {NAME => 'gender'}

put コマンドを使用してテストデータを挿入します。 例:

put 'student', 'row1', 'name:a', 'xiaoming'

scan 'student' でデータを確認します。

HBase test data

データのロードの詳細については、「HBase Shell を使用したアクセス」をご参照ください。

ステップ2:排他的リソースグループの購入と設定

排他的リソースグループは、HBase クラスター、ES クラスター、および DataWorks 間のデータ転送を処理します。 両方のクラスターの VPC に接続する必要があります。

  1. DataWorks コンソールにログインします。

  2. 上部のナビゲーションバーでリージョンを選択します。 左側のナビゲーションウィンドウで、[リソースグループ] をクリックします。

  3. [排他的リソースグループ] タブで、[レガシーリソースグループの作成] > [データ統合リソースグループ] をクリックします。

  4. [DataWorks 排他的リソース (サブスクリプション)] ページで、[リソースタイプ][データ統合専用リソースグループ] に設定し、名前を入力して、[今すぐ購入] をクリックします。 詳細については、「ステップ1:データ統合専用リソースグループの作成」をご参照ください。

  5. 新しいリソースグループの [操作] 列で、[ネットワーク設定] をクリックして VPC をアタッチします。 排他的リソースグループは、HBase クラスターと ES クラスターの両方の VPC に接続する必要があります。 リソースグループを両方のクラスターの [VPC][ゾーン]、および [vSwitch] にアタッチします。 ES クラスターの VPC の詳細を確認するには、「Elasticsearch インスタンスの基本情報の表示」をご参照ください。

    重要

    VPC をアタッチした後、[vSwitch CIDR ブロック] を HBase クラスターと ES クラスター両方のプライベート IP アドレスホワイトリストに追加します。 ES クラスターについては、「Elasticsearch クラスターのパブリックまたはプライベート IP アドレスホワイトリストの設定」をご参照ください。 排他的リソースグループについては、「IP アドレスホワイトリストの設定」をご参照ください。

  6. 戻るアイコンをクリックして、[リソースグループリスト] ページに戻ります。

  7. [操作] 列で、[ワークスペースのアタッチ] をクリックして、リソースグループをワークスペースに関連付けます。 詳細については、「ステップ2:データ統合専用リソースグループとワークスペースの関連付け」をご参照ください。

ステップ3:データソースの追加

HBase と ES の両方を Data Integration のデータソースとして登録します。

  1. Data Integration を開きます。

    1. DataWorks コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。

    3. ワークスペースの [操作] 列で、[ショートカット][データ統合] を選択します。

  2. 左側のナビゲーションウィンドウで、[データソース] をクリックします。

  3. HBase データソースを追加します。

    1. [データソースリスト] ページで、[データソースの追加] をクリックします。

    2. [データソースの追加] ダイアログボックスで、[HBase] を検索して選択します。

    3. [HBase データソースの追加] ダイアログボックスで、[基本情報] セクションのパラメーターを設定します。 パラメーターの説明については、「HBase データソースの設定」をご参照ください。

    4. [接続設定] セクションで、[接続テスト] をクリックします。 [接続済み] ステータスは、接続が成功したことを示します。

    5. [完了] をクリックします。

  4. 同じ手順で ES データソースを追加します。 詳細については、「Elasticsearch データソースの追加」をご参照ください。

ステップ4:オフライン同期タスクの設定と実行

このチュートリアルでは、以前のデータ開発 (DataStudio) ページのコードレス UI を使用します。 代わりにコードエディタを使用するには、「コードエディタを使用したバッチ同期タスクの設定」をご参照ください。 ES 固有の Writer 設定については、「Elasticsearch Writer」をご参照ください。

  1. オープンデータ開発。

    1. DataWorks コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。

    3. ワークスペースの [アクション] 列で、[ショートカット] > [データ開発] を選択します。

  2. オフライン同期タスクを作成します。

    1. ナビゲーションウィンドウのデータ開発 (image) タブで、[作成] > [ワークフローの作成] を選択し、プロンプトに従います。

    2. ワークフローを右クリックし、[ノードの作成] > [Data Integration] > [オフライン同期] を選択します。

    3. [ノードの作成] ダイアログボックスで、ノード名を入力し、[確認] をクリックします。

  3. ネットワークとリソースを設定します。

    1. 「ソース」セクションで、[ソース][ソース] から [HBase] に設定し、[データソース名] をご使用の HBase データソースに設定します。

    2. [リソースグループ] には、作成した排他的リソースグループを選択します。

    3. [送信先] セクションで、[送信先][Elasticsearch] に、[データソース名] をご使用の ES データソースに設定します。

  4. [次へ] をクリックします。

  5. タスク詳細を設定します。

    1. [ソース] セクションで、同期するテーブルを選択します。

    2. [送信先] セクションのパラメーターを設定します。

    3. [フィールドマッピング] セクションで、[ソースフィールド][送信先フィールド] にマッピングします。 詳細については、「コードレス UI を使用したバッチ同期タスクの設定」をご参照ください。

    4. [チャネル制御] セクションでチャネルパラメーターを設定します。

  6. タスクを保存して実行します。 スケジュールを設定した場合、タスクは定期的に実行されます。 タスクをすぐに実行するには、ノードエディターの右上隅にある [実行] アイコンをクリックします。 運用ログに Shell run successfully! と表示されたら、タスクは完了です。

    1. (オプション) 右側のパネルで [スケジューリング設定] をクリックして、定期スケジュールを設定します。 「スケジューリング設定」をご参照ください。

    2. ノードエディターの上にある [保存] アイコンをクリックします。

    3. [送信] アイコンをクリックしてタスクを送信します。

ステップ5:データ同期結果の検証

  1. Kibana コンソールにログオンします。手順については、「Kibana コンソールにログオンする」をご参照ください。

    説明

    このチュートリアルでは、Elasticsearch V7.10.0 クラスターを使用します。 他のバージョンでは手順が異なる場合があります。 コンソールでの実際の操作が優先されます。

  2. 右上隅にある [開発ツール] をクリックします。

  3. [コンソール] タブで、次のクエリを実行して同期されたデータを表示します。

    POST /student_info/_search?pretty
    {
       "query": { "match_all": {}}
    }
    説明

    student_info は、オフライン同期タスクで送信先に設定したインデックス名です。

次のステップ