Alibaba Cloud Elasticsearch を使用すると、HBase に保存されたデータを検索および分析できます。DataWorks の Data Integration 機能を使用して、HBase から Alibaba Cloud Elasticsearch インスタンスへのオフライン同期を実行します。
背景情報
DataWorks は、ビッグデータエンジン上に構築されたエンドツーエンドのビッグデータ開発・ガバナンスプラットフォームです。データ開発、タスクスケジューリング、データ管理などの機能を統合しています。DataWorks の同期タスクを使用して、さまざまなデータソースから Alibaba Cloud Elasticsearch へ迅速にデータを同期できます。
-
サポートされるデータソースには以下が含まれます。
-
Alibaba Cloud データベース (MySQL、PostgreSQL、SQL Server、MongoDB、HBase)
-
Alibaba Cloud PolarDB-X (DRDS からのスペックアップ版)
-
Alibaba Cloud MaxCompute
-
Alibaba Cloud OSS
-
Alibaba Cloud Tablestore
-
セルフマネージド版の HDFS、Oracle、FTP、DB2 およびその他のサポート対象データベースタイプ
-
-
利用シーン:
-
Alibaba Cloud Elasticsearch へのビッグデータのオフライン同期。データベース全体または特定のテーブル内のすべてのデータを同期できます。詳細については、「MySQL データベース全体の Elasticsearch へのオフライン同期」をご参照ください。
-
Alibaba Cloud Elasticsearch へのビッグデータのリアルタイム同期。フル同期と増分同期の両方をサポートします。詳細については、「MySQL データベース全体の Elasticsearch へのリアルタイム同期」をご参照ください。
-
前提条件
-
HBase インスタンスが作成済みであること。詳細については、「インスタンスの作成」をご参照ください。
-
Alibaba Cloud Elasticsearch インスタンスが作成済みであり、Auto Indexing 機能が有効化されていること。詳細については、「Alibaba Cloud Elasticsearch インスタンスの作成」および「YML パラメーターの構成」をご参照ください。
-
DataWorks ワークスペースが作成済みであること。詳細については、「ワークスペースの作成」をご参照ください。
-
データの同期先は Alibaba Cloud Elasticsearch のみで、セルフマネージド Elasticsearch はサポートされていません。
-
HBase インスタンス、Alibaba Cloud Elasticsearch インスタンス、および DataWorks ワークスペースは、同一リージョン内にある必要があります。
-
HBase インスタンス、Alibaba Cloud Elasticsearch インスタンス、および DataWorks ワークスペースは、同一タイムゾーン内にある必要があります。そうでない場合、時刻関連データを同期する際に、ソースと送信先のデータ間にタイムゾーンの差異が生じる可能性があります。
課金
-
Alibaba Cloud Elasticsearch インスタンスの料金に関する情報は、「Elasticsearch 課金項目」をご参照ください。
-
Data Integration リソースグループの料金に関する情報は、「リソースグループ料金」をご参照ください。
操作手順
ステップ 1:ソースデータの準備
この例では、以下のテーブル作成文およびテストデータを使用します。HBase インスタンスへのデータインポート方法の詳細については、「HBase Shell を使用したアクセス」をご参照ください。
-
テーブル作成文
create 'student', {NAME => 'name'}, {NAME => 'ID'}, {NAME => 'gender'} -
テストデータ
putコマンドを実行して、テーブルにデータを挿入します。例:put 'student', 'row1', 'name:a', 'xiaoming'。scanコマンドを実行して、テーブル内のデータを表示します。例:scan 'student'。
ステップ 2:排他的リソースグループの購入と構成
Data Integration の排他的リソースグループを購入し、VPC およびワークスペースをアタッチします。排他的リソースグループにより、高速かつ安定したデータ転送が保証されます。
-
DataWorks コンソールにログインします。
-
上部ナビゲーションバーでリージョンを選択し、左側ナビゲーションウィンドウで リソースグループ をクリックします。
-
専用リソースグループ タブで、 をクリックします。
-
DataWorks 排他的リソース (サブスクリプション) ページで、リソースタイプ を Data Integration 専用リソースグループ に設定し、リソースグループ名を入力して、今すぐ購入 をクリックして排他的リソースグループを購入します。
詳細については、「ステップ 1:リソースグループの購入」をご参照ください。
-
作成した排他的リソースグループの Actions 列で、ネットワーク設定 をクリックして、VPC をアタッチ します。
説明このプロシージャでは、Data Integration 専用リソースグループを使用して VPC 経由でデータを同期します。詳細については、「IP アドレスホワイトリストの構成」をご参照ください。
データを同期するには、排他的リソースグループが HBase および Alibaba Cloud Elasticsearch インスタンスの両方の VPC に接続されている必要があります。リソースグループを両方のインスタンスの Virtual Private Cloud (VPC)、Zone、および vSwitch にアタッチします。Alibaba Cloud Elasticsearch インスタンスの VPC 情報を確認するには、「Elasticsearch インスタンスの基本情報の確認」をご参照ください。
重要VPC をアタッチ後、VPC の vSwitch CIDR ブロック を HBase および Alibaba Cloud Elasticsearch インスタンスの非公開 IP アドレスホワイトリストに追加する必要があります。詳細については、「Elasticsearch インスタンスの公開または非公開 IP アドレスホワイトリストの構成」をご参照ください。
-
左上隅の戻るアイコンをクリックして、Resource List ページに戻ります。
-
排他的リソースグループの Actions 列で、ワークスペースのアタッチ をクリックして、送信先ワークスペースをアタッチします。
詳細については、「ステップ 2: ワークスペースを関連付ける」をご参照ください。
ステップ 3:データソースの追加
DataWorks の Data Integration に HBase および Elasticsearch のデータソースを追加します。
-
Data Integration ページに移動します。
-
DataWorks コンソールにログインします。
-
左側ナビゲーションウィンドウで ワークスペース をクリックします。
-
対象ワークスペースの Actions 列で、 を選択します。
-
-
左側ナビゲーションウィンドウで データソース をクリックします。
-
HBase データソースを追加します。
-
ソースインスタンス ページで、ソースインスタンスの追加 をクリックします。
-
ソースインスタンスの追加 ダイアログボックスで、HBase を検索して選択します。
-
HBase データソースの追加 ダイアログボックスで、基本情報 セクションのパラメーターを構成します。
詳細については、「HBase データソースの構成」をご参照ください。
-
接続設定 セクションで、接続テスト をクリックします。到達可能 のステータスが表示されれば、接続成功です。
-
OK をクリックします。
-
-
Elasticsearch データソースも同様に追加します。詳細については、「Elasticsearch データソースの構成」をご参照ください。
ステップ 4:オフライン同期タスクの構成と実行
排他的リソースグループ上でオフライン同期タスクを構成および実行します。
-
以下の手順はコードレス UI を使用しています。コードエディターの使用方法については、「コードエディターを使用したバッチ同期タスクの構成」および「Elasticsearch Writer」をご参照ください。
-
以下の手順は レガシ Data Development (DataStudio) ページで実行されます。
-
Data Development ページに移動します。
-
DataWorks コンソールにログインします。
-
左側ナビゲーションウィンドウで ワークスペース をクリックします。
-
送信先ワークスペースの Actions 列で、 を選択します。
-
-
オフライン同期ノードを作成します。
-
Data Development (
) タブで、 を選択します。 -
作成したワークフローを右クリックし、 を選択します。
-
ノードの作成 ダイアログボックスで、ノード名を入力し、OK をクリックします。
-
-
ネットワークとリソースを構成します。
-
データソース セクションで、データソース ドロップダウンリストから HBase を選択し、ソースインスタンス名 ドロップダウンリストからソースデータソースの名前を選択します。
-
リソースグループ セクションで、排他的リソースグループを選択します。
-
データ宛先 セクションで、データ宛先 ドロップダウンリストから Elasticsearch を選択し、ソースインスタンス名 ドロップダウンリストから送信先データソースの名前を選択します。
-
-
次へ をクリックします。
-
タスクを構成します。
-
データソース セクションで、同期するテーブルを選択します。
-
データ宛先 セクションで、パラメーターを構成します。
-
フィールドマッピング セクションで、ソースフィールド を ターゲットフィールド にマッピングします。詳細については、「コードレス UI を使用したオフライン同期タスクの構成」をご参照ください。
-
チャンネル制御 セクションで、チャンネルパラメーターを構成します。
詳細については、「コードレス UI を使用したオフライン同期タスクの構成」をご参照ください。
-
-
タスクを実行します。
-
(任意)ページ右側で スケジューリング設定 をクリックして、スケジューリングパラメーターを構成します。詳細については、「スケジューリング構成」をご参照ください。
-
上部ツールバーで保存アイコンをクリックして、タスクを保存します。
-
上部ツールバーで送信アイコンをクリックして、タスクを送信します。
スケジューリングプロパティを構成した場合、タスクは定期的に実行されます。また、ノードエディターの右上隅にある実行アイコンをクリックして、タスクを即時実行することもできます。
実行ログに
Shell run successfully!というメッセージが表示されれば、タスクは正常に実行されています。
-
ステップ 5:同期データの検証
ご利用の Elasticsearch クラスターの Kibana コンソールにログイン し、Kibana ホームページに移動します。
左側ナビゲーションメニューで Dev tools をクリックします。
-
コンソール タブで、次のコマンドを実行して同期データを表示します。
POST /student_info/_search?pretty { "query": { "match_all": {}} }説明student_infoは、オフライン同期タスクで構成された送信先インデックス名です。