DataWorks の Hologres メタデータマッピング機能により、データをインポートすることなく、MaxCompute から直接 Hologres のデータをクエリできます。DataWorks は、Hologres のテーブルまたはスキーマに対応する MaxCompute の外部テーブルまたは外部スキーマを作成するため、Hologres のデータに対して MaxCompute SQL を実行しながら、ストレージコストを抑えてデータ重複を回避できます。
以下のケースで本機能をご利用ください:
-
MaxCompute から Hologres のデータに対してアドホックまたは探索的なクエリを実行する必要がある場合
-
両システム間で ETL パイプラインやデータ重複を回避したい場合
-
Hologres に格納されているデータに対して、MaxCompute のガバナンス機能およびコンピューティング機能を活用したい場合
マッピングには、以下の 2 つのレベルがあります:
-
スキーマレベルのマッピング:Hologres の全スキーマを MaxCompute の外部スキーマにマッピングします。この機能は MaxCompute の外部スキーマ機能に基づきます。
-
テーブルレベルのマッピング:単一の Hologres テーブルを MaxCompute の外部テーブルにマッピングします。この機能は MaxCompute の外部テーブル機能に基づきます。
前提条件
インスタンスおよびデータカタログ
開始する前に、以下の条件を満たしていることを確認してください。
-
MaxCompute プロジェクトが有効化されていること。詳細については、「MaxCompute プロジェクトの作成」をご参照ください。
-
Hologres インスタンスが購入済みであること。詳細については、「Hologres インスタンスの購入」をご参照ください。
-
Hologres インスタンスが DataWorks Data Studio の [DATA CATALOG] ペインに追加済みであること。詳細については、「データカタログ」をご参照ください。
スキーマレベルのマッピングのみに必要な条件
-
MaxCompute に Hologres 型の外部サーバーが作成済みであること。詳細については、「ステップ 1:Hologres 外部サーバーの作成」をご参照ください。
重要外部サーバーを作成する際は、以下の制約に従ってください。 - [ホスト] をクラシックネットワークホスト名に設定します。 Virtual Private Cloud (VPC) ホスト名はサポートされていません。 - [認証方法] を [RAMRole] に設定します。 ExecuteWithUserAuth はサポートされていません。 - [DBNAME] を、マップする Hologres データベースの名前に設定します。
ロールおよび権限
-
アクセス ID が MaxCompute プロジェクトに追加済みであること。
-
アクセス ID が MaxCompute 外部テーブルに対する読み取り権限を有していること。
-
本番環境に追加されたデータソースを選択できるのは、O&M(運用・保守)ロールまたは ワークスペース管理者 ロールが割り当てられたユーザーのみです。
制限事項
-
MaxCompute にマッピングできるのは、Hologres の 内部 データベース内のデータのみです。
-
Hologres 外部サーバーには、クラシックネットワーク のホスト名を使用する必要があります。VPC のホスト名はサポートされていません。
-
外部サーバーの[認証方法]は、[RAMRole]である必要があります。ExecuteWithUserAuth はサポートされていません。
-
MaxCompute と Hologres では、サポートされるデータ型が異なります。未対応のデータ型マッピングは自動的にスキップされます。マッピングを実行する前に、MaxCompute と Hologres 間のデータ型マッピングを確認し、ご利用のデータ型がサポートされていることをご確認ください。
-
MaxCompute における Hologres 外部テーブルのその他の制限事項については、「Hologres 外部テーブル」をご参照ください。
アクセス制御
DataWorks は、MaxCompute プロジェクトの追加方法に基づいてアクセス ID を決定します。
| MaxCompute プロジェクトのソース | アクセス ID | 必要な Hologres 権限 |
|---|---|---|
| DataWorks にデータソースとして追加済み | 当該データソースで指定された ID。本番環境のプロジェクトに Hologres メタデータをマッピングするには、お使いのアカウントに O&M または ワークスペース管理者 ロールが付与されている必要があります。 | デュアル署名モードを使用する場合:Hologres テーブルに対する読み取りおよび書き込み権限。STS モードを使用する場合:RAM ロールが Hologres テーブルに対する読み取りおよび書き込み権限を有している必要があります。 |
| 直接アクセス権限を持つプロジェクト | 現在の Alibaba Cloud アカウント | 上記と同じ。 |
メタデータマッピング構成を開く
-
DataWorks コンソールでワークスペースページに移動します。上部のナビゲーションバーでリージョンを選択します。対象のワークスペースを見つけ、[ショートカット] > [Data Studio] を[操作]列で選択します。
-
Data Studio ページの左側ナビゲーションウィンドウで、
アイコンをクリックして [DATA CATALOG] ペインを開きます。 -
[Hologres] ディレクトリ内で、マッピング対象のスキーマまたはテーブルを見つけ、その名前を右クリックして [MaxCompute へのメタデータマッピング] を選択します。
スキーマのマッピング
スキーマレベルのマッピングでは、Hologres スキーマ内のすべてのテーブルを反映した MaxCompute の外部スキーマが作成されます。この外部スキーマは、Hologres 外部サーバーからメタデータを同期します。
マッピングを実行する前に、「Data Lakehouse Solution 2.0 ユーザーガイド」を参照し、MaxCompute の外部サーバーおよび外部スキーマについて理解してください。対象の MaxCompute プロジェクトは、[スキーマ機能] が有効化された 内部 プロジェクトである必要があります。
[構成の概要]:外部サーバーの準備 → マッピングパラメーターの設定 → 実行
ステップ 1:MaxCompute における Hologres 外部サーバーの準備
スキーマレベルのマッピングは、MaxCompute プロジェクト内に外部スキーマを作成し、その外部スキーマが外部サーバー経由で Hologres のメタデータを同期する仕組みです。DataWorks で、対象の Hologres データベースを指す MaxCompute 外部データソースを追加し、それを MaxCompute プロジェクトにマウントすることで、外部スキーマと Hologres データベースを連携させます。
設定手順については、「Hologres フェデレーションの作成と使用」をご参照ください。
[Host] にはクラシックネットワークのホスト名(VPC は非対応)を指定し、[DBNAME] にはマッピングに使用する Hologres データベース名を指定します。
ステップ 2:スキーマレベルのマッピングの設定
-
[メタデータマッピング構成の開く] を実行します。
-
[Hologres] ディレクトリ内で、対象のスキーマを右クリックし、[MaxCompute へのメタデータマッピング] を選択します。
-
「[MaxCompute へのメタデータのマッピング]」タブで、パラメーターを設定します。
Hologres(ソース)
パラメーター 説明 ソース オブジェクトタイプ 固定値: Hologres Schema。[ソースオブジェクト名] <Hologres データベース>.<Hologres スキーマ>形式の Hologres スキーマ名。選択したスキーマに基づき、値が事前に入力されています。この値に含まれる Hologres データベース名は、外部サーバー作成時に設定した [DBNAME] と一致している必要があります。MaxCompute(宛先)
パラメーター 説明 インスタンスの検索方法 対象の MaxCompute プロジェクトを選択する方法です。[DataWorks のデータソースから]:ワークスペースに関連付けられた MaxCompute データソースから選択します。[私は承認済み]:Alibaba Cloud アカウントでアクセス可能な MaxCompute プロジェクトから選択します。 [データソース] ([インスタンス検索方法] が [DataWorks のデータソースから] の場合に必須)使用する MaxCompute データソース。 [プロジェクト名] ([インスタンス検索方法] が [私は承認済み] の場合に必須)使用する MaxCompute プロジェクト。 外部スキーマ名 作成する MaxCompute 外部スキーマの名前。 [外部データソース] Hologres データベースに接続された外部サーバー。詳細については、「ステップ 1:Hologres 外部サーバーの作成」をご参照ください。[Host:port]、[Auth]、[Database] の各フィールドは、選択したサーバーに基づき自動的に入力されます。 -
上部ツールバーの [実行] をクリックして、マッピングを完了します。
テーブルのマッピング
テーブルレベルのマッピングでは、特定の Hologres テーブルに対応する単一の MaxCompute 外部テーブルが作成されます。スキーマレベルのマッピングとは異なり、この外部テーブルはワンタイムのスナップショットであり、メタデータは自動的にリフレッシュされません。マッピングを更新するには、既存の外部テーブルを削除して新しいマッピングを作成してください。
[構成の概要]:ソースとなる Hologres テーブルの選択 → 対象の外部テーブルパラメーターの設定 → 実行
テーブルレベルのマッピングの設定
-
[メタデータマッピング構成の開く] を実行します。
-
[Hologres] ディレクトリ内で、対象のテーブルを右クリックし、[MaxCompute へのメタデータマッピング] を選択します。
-
[Metadata Mapping To MaxCompute] タブで、パラメーターを設定します。
Hologres(ソース)
パラメーター 説明 ソースオブジェクトタイプ Hologres テーブルとして修正されました。[ソースオブジェクト名] マッピング対象の Hologres テーブル。選択したテーブルに基づき、値が事前に入力されています。 MaxCompute(宛先)
パラメーター 説明 [インスタンス検索方法] 対象の MaxCompute プロジェクトを選択する方法です。[DataWorks のデータソースから]:ワークスペースに関連付けられた MaxCompute データソースから選択します。また、[データソース] および [外部テーブル] も設定してください。データソースの ID は、Hologres テーブルおよび MaxCompute プロジェクトの両方に対して読み取りおよび書き込み権限を有している必要があります。[私は承認済み]:Alibaba Cloud アカウントでアクセス可能な MaxCompute プロジェクトから選択します。また、[外部テーブル] も設定してください。お使いのアカウントは、Hologres テーブルおよび MaxCompute プロジェクトの両方に対して読み取りおよび書き込み権限を有している必要があります。 [データソース] ([インスタンス検索方法] が [DataWorks のデータソースから] の場合に必須)使用する MaxCompute データソース。 [プロジェクト名] ([インスタンス検索方法] が [私は承認済み] の場合に必須)使用する MaxCompute プロジェクト。 スキーマ 外部テーブルを作成する MaxCompute 外部スキーマ。 外部テーブル 作成する外部テーブルの名前。Hologres テーブルのメタデータがこのテーブルにマッピングされます。 [MaxCompute 外部テーブルへのアクセス権限] マッピング後に外部テーブルにアクセスするための認証方式です。[デュアル署名]:MaxCompute および Hologres が共同開発した共同認証プロトコルです。両システムで同一のアカウントを使用すれば、追加の設定なしで外部テーブルにアクセスできます。詳細については、「デュアル署名認証」をご参照ください。[RamRole]:セキュリティトークンサービス(STS)を使用した認証です。詳細については、「RamRole 認証」をご参照ください。 [RoleARN] ([MaxCompute 外部テーブルへのアクセス権限] が [RamRole] の場合に必須)使用する RAM ロールの ARN。事前に RAM ロールを作成してください。詳細については、「Hologres 外部テーブルの作成(STS モード)」をご参照ください。 場所 Hologres テーブルと MaxCompute テーブル間のマッピングアドレス。自動生成されるため、変更しないでください。 ライフサイクル MaxCompute 外部テーブルのライフサイクル設定。 フィールド 本マッピングにおける MaxCompute テーブルのフィールドおよびそのデータ型。要件に応じて調整してください。未対応のデータ型マッピングはスキップされます。詳細については、「MaxCompute と Hologres 間のデータ型マッピング」をご参照ください。 -
上部ツールバーの [実行] をクリックして、マッピングを完了します。
次のステップ
マッピング完了後:
-
[データカタログ] ペインの [MaxCompute] ディレクトリで、Hologres メタデータがマップされている外部スキーマまたは外部テーブルを表示します。
-
[MaxCompute SQL] ノードを [Data Studio] に作成し、Hologres 外部テーブルのデータをクエリするために使用します。