HBase のデータを検索および分析する場合、DataWorks のデータ統合サービスを使用して、データを Alibaba Cloud Elasticsearch に同期できます。このトピックでは、データ統合サービスを使用して HBase から Alibaba Cloud Elasticsearch にデータを迅速に同期する方法について説明します。
背景情報
DataWorks は、ビッグデータ コンピューティング エンジンに基づくエンドツーエンドのビッグデータ開発およびガバナンス プラットフォームです。DataWorks は、データ開発、タスクスケジューリング、データ管理などの機能を提供します。DataWorks で同期タスクを作成して、さまざまなデータソースから Alibaba Cloud Elasticsearch にデータを迅速に同期できます。
次のタイプのデータソースがサポートされています。
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)
Alibaba Cloud MaxCompute
Alibaba Cloud Object Storage Service (OSS)
Alibaba Cloud Tablestore
セルフマネージド データベース: HDFS、Oracle、FTP、Db2、MySQL、PostgreSQL、SQL Server、MongoDB、HBase
次の同期シナリオがサポートされています。
データベースまたはテーブルから Alibaba Cloud Elasticsearch にビッグデータをオフラインモードで同期します。詳細については、「バッチ同期タスクを作成してデータベース内のすべてのデータを Elasticsearch に同期する」をご参照ください。
完全および増分ビッグデータをリアルタイムで Alibaba Cloud Elasticsearch に同期します。詳細については、「リアルタイム同期タスクを作成してデータを Elasticsearch に同期する」をご参照ください。
前提条件
ApsaraDB for HBase クラスタが作成されていること。詳細については、「クラスタを購入する」をご参照ください。
Alibaba Cloud Elasticsearch クラスタが作成され、クラスタで自動インデックス作成機能が有効になっていること。詳細については、「Alibaba Cloud Elasticsearch クラスタを作成する」および「YML ファイルを設定する」をご参照ください。
DataWorks ワークスペースが作成されていること。詳細については、「ワークスペースを作成する」をご参照ください。
Alibaba Cloud Elasticsearch にのみデータを同期できます。セルフマネージド Elasticsearch はサポートされていません。
ApsaraDB for HBase クラスタ、Elasticsearch クラスタ、および DataWorks ワークスペースは、同じリージョンに存在する必要があります。
ApsaraDB for HBase クラスタ、Elasticsearch クラスタ、および DataWorks ワークスペースは、同じタイムゾーンにある必要があります。そうでない場合、時間関連のデータを同期すると、ソースのデータと同期後の宛先のデータにタイムゾーンの差が生じる可能性があります。
課金
Alibaba Cloud Elasticsearch クラスタの課金については、「Elasticsearch 課金対象項目」をご参照ください。
データ統合の専用リソースグループの課金については、「データ統合の専用リソースグループの課金 (サブスクリプション)」をご参照ください。
手順
ステップ 1: ソースデータを準備する
この例では、次のテーブル作成ステートメントとテストデータを使用します。ApsaraDB for HBase クラスタにデータをインポートする方法については、「HBase Shell を使用して ApsaraDB for HBase Standard Edition インスタンスにアクセスする」をご参照ください。
テーブル作成ステートメント
create 'student', {NAME => 'name'}, {NAME => 'ID'}, {NAME => 'xingbie'}
テストデータ
PUT メソッドを使用して、作成されたテーブルにデータを挿入します (例:
put 'student', 'row1', 'name:a', 'xiaoming'
)。SCAN メソッドを使用して、テーブル内のデータを表示します (例:
scan 'student'
)。
ステップ 2: データ統合の専用リソースグループを作成および設定する
データ統合の専用リソースグループを作成し、リソースグループを仮想プライベートクラウド (VPC) および作成されたワークスペースに関連付けます。専用リソースグループは、高速で安定したデータ転送を保証します。
DataWorks コンソール にログインします。
上部のナビゲーションバーで、リージョンを選択します。左側のナビゲーションペインで、[リソースグループ] をクリックします。
[専用リソースグループ] タブの [リソースグループ] ページで、[旧バージョンのデータ統合のリソースグループを作成] をクリックします。
[dataworks 専用リソース] ページで、[タイプ] を [データ統合の専用リソースグループ] に設定し、[リソースグループ名] を設定して、[今すぐ購入] をクリックします。表示されるページで、[支払う] をクリックします。
詳細については、「データ統合の専用リソースグループを作成する」をご参照ください。
[専用リソースグループ] タブで、作成されたリソースグループを見つけ、[アクション] 列の [ネットワーク設定] をクリックして、リソースグループを VPC に関連付けます。詳細については、「データ統合の専用リソースグループを VPC に関連付ける」をご参照ください。
説明この例では、データ統合の専用リソースグループを使用して、VPC 経由でデータを同期します。データ統合の専用リソースグループを使用してインターネット経由でデータを同期する方法については、「IP アドレスホワイトリストを設定する」をご参照ください。
専用リソースグループは、ApsaraDB for HBase クラスタが存在する VPC と Elasticsearch クラスタが存在する VPC に接続されている必要があります。これにより、専用リソースグループに基づいてデータを同期できます。したがって、専用リソースグループを ApsaraDB for HBase クラスタの [VPC]、[ゾーン]、[vSwitch] と Elasticsearch クラスタの [VPC]、[ゾーン]、[vswitch] に関連付ける必要があります。Elasticsearch クラスタが存在する VPC を表示する方法については、「クラスタの基本情報を表示する」をご参照ください。
重要専用リソースグループを VPC に関連付けた後、ApsaraDB for HBase クラスタと Elasticsearch クラスタが属する [vswitch の CIDR ブロック] を ApsaraDB for HBase クラスタと Elasticsearch クラスタのプライベート IP アドレスホワイトリストに追加する必要があります。詳細については、「Elasticsearch クラスタのパブリックまたはプライベート IP アドレスホワイトリストを設定する」をご参照ください。
ページの左上隅にある戻るアイコンをクリックして、[リソースグループ] ページに戻ります。
[専用リソースグループ] タブで、リソースグループを見つけ、[アクション] 列の [ワークスペースの関連付け] をクリックして、リソースグループを作成されたワークスペースに関連付けます。
詳細については、「データ統合の専用リソースグループをワークスペースに関連付ける」をご参照ください。
ステップ 3: データソースを追加する
ApsaraDB for HBase クラスタと Elasticsearch クラスタをデータソースとしてデータ統合に追加します。
[データ統合] ページに移動します。
DataWorks コンソール にログインします。
左側のナビゲーションペインで、[ワークスペース] をクリックします。
ワークスペースを見つけ、
[アクション] 列で を選択します。
[データ統合] ページの左側のナビゲーションペインで、[データソース] をクリックします。
ApsaraDB for HBase データソースを追加します。
[データソース] ページで、[データソースを追加] をクリックします。
[データソースを追加] ダイアログボックスで、[hbase] を検索して選択します。
[hbase データソースを追加] ダイアログボックスで、[基本情報] セクションのパラメータを設定します。
詳細については、「HBase データソースを追加する」をご参照ください。
[接続設定] セクションでリソースグループを見つけ、[ネットワーク接続をテスト] をクリックします。[接続済み] と表示された場合、リソースグループはデータソースに接続されています。
[完了] をクリックします。
同じ方法で Elasticsearch データソースを追加します。詳細については、「Elasticsearch データソースを追加する」をご参照ください。
ステップ 4: バッチ同期タスクを設定して実行する
専用リソースグループを使用して、バッチ同期タスクを実行します。リソースグループはソースからデータを取得し、Elasticsearch クラスタにデータを書き込みます。
コードレス UI またはコードエディターを使用して、バッチ同期タスクを設定できます。この例では、コードレス UI を使用します。コードエディターを使用してバッチ同期タスクを設定する方法については、「コードエディターを使用してバッチ同期タスクを設定する」および「Elasticsearch Writer」をご参照ください。
DataWorks の [datastudio] ページに移動します。
DataWorks コンソール にログインします。
左側のナビゲーションペインで、[ワークスペース] をクリックします。
ワークスペースを見つけ、
[アクション] 列で を選択します。
バッチ同期タスクを作成します。
左側のナビゲーションペインで、
を選択して、ワークフローを作成します。新しく作成されたワークフローの名前を右クリックし、
を選択します。[ノードの作成] ダイアログボックスで、[名前] パラメータを設定し、[確認] をクリックします。
ネットワークとリソースを設定します。
[ソース] 部分で、[ソース] を HBase に設定し、[データソース名] を追加された ApsaraDB for HBase データソースの名前に設定します。
[リソースグループ] 部分で、作成された専用リソースグループを選択します。
[宛先] 部分で、[宛先] を Elasticsearch に設定し、[データソース名] を追加された Elasticsearch データソースの名前に設定します。
[次へ] をクリックします。
タスクを設定します。
[ソース] セクションで、データを同期するテーブルを選択します。
[宛先] セクションで、パラメータを設定します。
[フィールドマッピング] セクションで、[ソースフィールド] と [宛先フィールド] の間のマッピングを設定します。
[チャネル制御] セクションで、パラメータを設定します。
詳細については、「コードレス UI を使用してバッチ同期タスクを構成する」をご参照ください。
タスクを実行します。
(オプション) タスクのスケジューリングプロパティを設定します。右側のナビゲーションペインで、[プロパティ] をクリックします。[プロパティ] タブで、ビジネス要件に基づいてパラメータを設定します。パラメータの詳細については、「スケジューリング設定」をご参照ください。
左上隅にある保存アイコンをクリックして、タスクを保存します。
左上隅にある送信アイコンをクリックして、タスクを送信します。
タスクのスケジューリングプロパティを設定すると、タスクは定期的に自動的に実行されます。左上隅にある実行アイコンをクリックして、タスクをすぐに実行することもできます。
操作ログに
Shell run successfully!
と表示された場合、タスクは正常に実行されています。
ステップ 5: データ同期の結果を確認する
Elasticsearch クラスタの Kibana コンソールにログインし、指示に従って Kibana コンソールのホームページに移動します。
Kibana コンソールにログインする方法の詳細については、「Kibana コンソールにログインする」をご参照ください。
説明この例では、Elasticsearch V7.10.0 クラスタを使用しています。他のバージョンのクラスタでの操作は異なる場合があります。コンソールでの実際の操作が優先されます。
表示されるページの右上隅にある [dev Tools] をクリックします。
[コンソール] タブで、次のコマンドを実行して同期されたデータを表示します。
POST /student_info/_search?pretty { "query": { "match_all": {}} }
説明student_info
は、バッチ同期タスクを設定するときに指定するインデックス名です。