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
前提条件
開始する前に、次のものがあることを確認してください。
-
ApsaraDB for HBase クラスター。 セットアップ手順については、「クラスターの購入」をご参照ください。
-
自動インデックス作成が有効になっている Alibaba Cloud ES クラスター。 クラスターを作成するには、「Alibaba Cloud Elasticsearch クラスターの作成」をご参照ください。 自動インデックス作成を有効にするには、「YML ファイルの設定」をご参照ください。
-
DataWorks ワークスペース。 「ワークスペースの作成」をご参照ください。
制限事項:
-
同期先としてサポートされているのは Alibaba Cloud ES のみです。 自己管理型 Elasticsearch インスタンスはサポートされていません。
-
HBase クラスター、ES クラスター、および DataWorks ワークスペースは、同じリージョンと同じタイムゾーンにある必要があります。 タイムゾーンが一致しない場合、同期された時間関連データのタイムスタンプが不正確になります。
課金
-
Elasticsearch クラスターの料金については、「Elasticsearch 課金項目」をご参照ください。
-
専用リソースグループの料金については、「Data Integration の専用リソースグループの課金 (サブスクリプション)」をご参照ください。
ステップ1:ソースデータの準備
このチュートリアルでは、student という名前のテーブルを使用します。このテーブルには、name、ID、gender の 3 つのカラムファミリーがあります。
HBase Shell でテーブルを作成します。
create 'student', {NAME => 'name'}, {NAME => 'ID'}, {NAME => 'gender'}
put コマンドを使用してテストデータを挿入します。 例:
put 'student', 'row1', 'name:a', 'xiaoming'
scan 'student' でデータを確認します。
データのロードの詳細については、「HBase Shell を使用したアクセス」をご参照ください。
ステップ2:排他的リソースグループの購入と設定
排他的リソースグループは、HBase クラスター、ES クラスター、および DataWorks 間のデータ転送を処理します。 両方のクラスターの VPC に接続する必要があります。
-
DataWorks コンソールにログインします。
-
上部のナビゲーションバーでリージョンを選択します。 左側のナビゲーションウィンドウで、[リソースグループ] をクリックします。
-
[排他的リソースグループ] タブで、[レガシーリソースグループの作成] > [データ統合リソースグループ] をクリックします。
-
[DataWorks 排他的リソース (サブスクリプション)] ページで、[リソースタイプ] を [データ統合専用リソースグループ] に設定し、名前を入力して、[今すぐ購入] をクリックします。 詳細については、「ステップ1:データ統合専用リソースグループの作成」をご参照ください。
-
新しいリソースグループの [操作] 列で、[ネットワーク設定] をクリックして VPC をアタッチします。 排他的リソースグループは、HBase クラスターと ES クラスターの両方の VPC に接続する必要があります。 リソースグループを両方のクラスターの [VPC]、[ゾーン]、および [vSwitch] にアタッチします。 ES クラスターの VPC の詳細を確認するには、「Elasticsearch インスタンスの基本情報の表示」をご参照ください。
重要VPC をアタッチした後、[vSwitch CIDR ブロック] を HBase クラスターと ES クラスター両方のプライベート IP アドレスホワイトリストに追加します。 ES クラスターについては、「Elasticsearch クラスターのパブリックまたはプライベート IP アドレスホワイトリストの設定」をご参照ください。 排他的リソースグループについては、「IP アドレスホワイトリストの設定」をご参照ください。
-
戻るアイコンをクリックして、[リソースグループリスト] ページに戻ります。
-
[操作] 列で、[ワークスペースのアタッチ] をクリックして、リソースグループをワークスペースに関連付けます。 詳細については、「ステップ2:データ統合専用リソースグループとワークスペースの関連付け」をご参照ください。
ステップ3:データソースの追加
HBase と ES の両方を Data Integration のデータソースとして登録します。
-
Data Integration を開きます。
-
DataWorks コンソールにログインします。
-
左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。
-
ワークスペースの [操作] 列で、[ショートカット] > [データ統合] を選択します。
-
-
左側のナビゲーションウィンドウで、[データソース] をクリックします。
-
HBase データソースを追加します。
-
[データソースリスト] ページで、[データソースの追加] をクリックします。
-
[データソースの追加] ダイアログボックスで、[HBase] を検索して選択します。
-
[HBase データソースの追加] ダイアログボックスで、[基本情報] セクションのパラメーターを設定します。 パラメーターの説明については、「HBase データソースの設定」をご参照ください。
-
[接続設定] セクションで、[接続テスト] をクリックします。 [接続済み] ステータスは、接続が成功したことを示します。
-
[完了] をクリックします。
-
-
同じ手順で ES データソースを追加します。 詳細については、「Elasticsearch データソースの追加」をご参照ください。
ステップ4:オフライン同期タスクの設定と実行
このチュートリアルでは、以前のデータ開発 (DataStudio) ページのコードレス UI を使用します。 代わりにコードエディタを使用するには、「コードエディタを使用したバッチ同期タスクの設定」をご参照ください。 ES 固有の Writer 設定については、「Elasticsearch Writer」をご参照ください。
-
オープンデータ開発。
-
DataWorks コンソールにログインします。
-
左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。
-
ワークスペースの [アクション] 列で、[ショートカット] > [データ開発] を選択します。
-
-
オフライン同期タスクを作成します。
-
ナビゲーションウィンドウのデータ開発 (
) タブで、[作成] > [ワークフローの作成] を選択し、プロンプトに従います。 -
ワークフローを右クリックし、[ノードの作成] > [Data Integration] > [オフライン同期] を選択します。
-
[ノードの作成] ダイアログボックスで、ノード名を入力し、[確認] をクリックします。
-
-
ネットワークとリソースを設定します。
-
「ソース」セクションで、[ソース] を [ソース] から [HBase] に設定し、[データソース名] をご使用の HBase データソースに設定します。
-
[リソースグループ] には、作成した排他的リソースグループを選択します。
-
[送信先] セクションで、[送信先] を [Elasticsearch] に、[データソース名] をご使用の ES データソースに設定します。
-
-
[次へ] をクリックします。
-
タスク詳細を設定します。
-
[ソース] セクションで、同期するテーブルを選択します。
-
[送信先] セクションのパラメーターを設定します。
-
[フィールドマッピング] セクションで、[ソースフィールド] を [送信先フィールド] にマッピングします。 詳細については、「コードレス UI を使用したバッチ同期タスクの設定」をご参照ください。
-
[チャネル制御] セクションでチャネルパラメーターを設定します。
-
-
タスクを保存して実行します。 スケジュールを設定した場合、タスクは定期的に実行されます。 タスクをすぐに実行するには、ノードエディターの右上隅にある [実行] アイコンをクリックします。 運用ログに
Shell run successfully!と表示されたら、タスクは完了です。-
(オプション) 右側のパネルで [スケジューリング設定] をクリックして、定期スケジュールを設定します。 「スケジューリング設定」をご参照ください。
-
ノードエディターの上にある [保存] アイコンをクリックします。
-
[送信] アイコンをクリックしてタスクを送信します。
-
ステップ5:データ同期結果の検証
-
Kibana コンソールにログオンします。手順については、「Kibana コンソールにログオンする」をご参照ください。
説明このチュートリアルでは、Elasticsearch V7.10.0 クラスターを使用します。 他のバージョンでは手順が異なる場合があります。 コンソールでの実際の操作が優先されます。
-
右上隅にある [開発ツール] をクリックします。
-
[コンソール] タブで、次のクエリを実行して同期されたデータを表示します。
POST /student_info/_search?pretty { "query": { "match_all": {}} }説明student_infoは、オフライン同期タスクで送信先に設定したインデックス名です。