Important
この機能は ベータ版です。 使用するには、ワークスペース管理者がプレビューページからWorkdayデータ接続コネクタを有効にする必要があります。 Manage Azure Databricks プレビューを参照してください。
Workday Data Connectのカタログフェデレーションを使って、Cloudストレージから直接Workdayのデータ接続テーブルを読み取り、Unity Catalogに外部テーブルとして追加できます。 クエリは完全にAzure Databricksのコンピュート上で動作するため、データチームはETLパイプラインを構築せずにAzure Databricksからこれらのテーブルを発見、管理、クエリできます。 データ アクセスは読み取り専用です。
Azure Databricks は、秘密鍵を使用した OAuth を通じて、ユーザーがプリンシパルとして登録した Workday Integration System User (ISU) として、Workday Data Connect カタログへの認証を行います。
Workdayはこの製品をWorkday Data Lakeと呼んでいます。 このページを含むパートナーのドキュメントでは、これをWorkday Data Connectと呼んでいます。
カタログフェデレーションについて詳しく知りたい方は、「 カタログフェデレーションとは何か?」をご覧ください。
Note
このコネクターはAzure Databricksにデータを取り込んだりコピーしたりせず、Workday用のLakeflow Connectインジェスションコネクタとは関係ありません。 WorkdayデータをAzure Databricksに取り込むには、Workday ReportsコネクターまたはWorkday HCMコネクターを参照してください。
Requirements
Workdayデータコネクトのカタログフェデレーションを設定する前に、以下の要件を確認してください。
ワークスペースの要件:
- ワークスペースが Unity Catalog に対して有効にされている必要があります。 Unity カタログについて始めに知っておくべきことを参照してください
コンピューティング要件:
- Azure DatabricksのコンピュートはDatabricks Runtime 19.8以上と標準アクセスモードを使用しなければなりません。 専用アクセス モードはサポートされていません。
ネットワーク要件:
- Azure Databricks からお客様の Workday Data Connect カタログ エンドポイント
https://<workday-host>/api/catalogへのネットワーク接続。 WorkdayでAzure DatabricksのIPアドレスを許可リストに登録する必要はありません。
必要なアクセス許可:
- 接続を作成するには、メタストア管理者であるか、ワークスペースにアタッチされている Unity Catalog メタストアに対する
CREATE CONNECTION特権を持つユーザーである必要があります。 - 外部カタログを作成するには、メタストアに対する
CREATE CATALOG権限を持ち、接続の所有者であるか、接続に対するCREATE FOREIGN CATALOG特権を持っている必要があります。
勤務日の要件:
- Workdayのテナント向けにWorkday Data Connectを有効にし、クエリしたいテーブルはIceberg RESTカタログを通じて共有されます。 Workday Data Lake 入門を参照してください。
- Workdayデータコネクトカタログにプリンシパルとして登録されたWorkday統合システムユーザー(ISU)、共有テーブルへの読み取り権限を与えるISUのプリンシパルロール、そしてそのプリンシパルのRSAキーペア。 APIクライアントを登録するには、「Data Lake (JWT Bearer Grant)のAPI Client 登録」を参照してください。
ステップ1:つながりを作る
接続は、Azure DatabricksがWorkdayのデータ接続カタログと通信するために使用するエンドポイントと認証情報を指定します。
接続を作成するには、Catalog Explorerまたは CREATE CONNECTION SQLコマンドを使用します。
カタログ エクスプローラー
接続を作成するには、次の手順に従います。
- Azure Databricks ワークスペースで、
Catalog をクリックします。
-
[カタログ] ウィンドウの上部にある
をクリックし、メニューから [接続の作成] を選択します。 - 接続 の基本 ページに接続 名を入力してください。
- Workdayデータコネクションの接続タイプを選択します。
- 次へをクリックします。
-
接続詳細ページで、以下の値を入力してください:
-
ホスト:Workday Data Connectエンドポイントのホスト名、例えば
mycompany.myworkday.com。 - テナント:あなたのWorkdayテナントです。
- クライアントID:WorkdayのAPIクライアントのクライアントID。
- 秘密鍵:PEM形式のRSA秘密鍵です。
- プリンシパル名: カタログ プリンシパルとして登録した ISU の名前。
-
プリンシパルロール:Workdayのプリンシパルロールで、共有テーブルへの読み取りアクセスをスコープします。 既定値は
ALLです。 アクセスの範囲を絞り込むには、例えばall-reads-roleのような特定の役割を設定してください。
-
ホスト:Workday Data Connectエンドポイントのホスト名、例えば
SQL
ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。
CREATE CONNECTION <connection-name> TYPE WORKDAY_DATA_CONNECT
OPTIONS (
host '<workday-host>',
tenant '<workday-tenant>',
client_id '<client-id>',
private_key secret('<secret-scope>','<secret-key>'),
principal_name '<isu-name>',
principal_role '<principal-role>'
);
-
host例えば、Workday Data Connectエンドポイントのホスト名mycompany.myworkday.com。 -
tenantあなたのWorkdayの入居者です。 -
client_id:Workday APIクライアントのクライアントID。 -
private_key:PEM形式のRSA秘密鍵です。 Databricksはシークレットとして保存することを推奨しています。 -
principal_name: カタログ プリンシパルとして登録したISUの名前です。 -
principal_role: 共有テーブルへの読み取りアクセスの範囲を制御する Workday のプリンシパルロール。 既定値はALLです。 アクセスの範囲を絞り込むには、例えばall-reads-roleのような特定の役割を設定してください。
Databricksは秘密鍵のような敏感な数値に対して、平文文字列ではなくシークレットを使うことを推奨しています。 シークレット作成に関する情報については、 シークレット管理を参照してください。
ステップ2:海外カタログの作成
外国カタログはUnityカタログ内のWorkday Data Connectカタログをミラーリングするため、Unity Catalogを使ってWorkdayテーブルへのアクセス管理やAzure Databricksのコンピュートからのクエリを管理できます。
外国カタログを作成するには、カタログエクスプローラーやノートブックの CREATE FOREIGN CATALOG SQLコマンド、またはDatabricksのSQLクエリエディタを使用できます。
カタログ エクスプローラー
- Azure Databricks ワークスペースで、
Catalog をクリックします。
- [ カタログ ] ウィンドウの上部にある
をクリックし、メニューから [ カタログの作成 ] を選択します。 - 「 新しいカタログを作成する 」ダイアログで、カタログの名前を入力します。
- 外国の種類を選択します。
- ステップ1で作成した 接続 を選択します。
- ストレージの位置については、Azure Databricksがフェデレーテッドテーブルのメタデータを保存するクラウドストレージパスを入力します。
- Create をクリックしてください。
SQL
ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。 角かっこ内の項目は省略可能です。
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name>
USING CONNECTION <connection-name>
OPTIONS (storage_root '<storage-root-path>');
-
storage_root:必須。 Azure Databricksが書き込み可能な外部ロケーションパス。 Azure Databricksはこの場所を使ってフェデレーテッドテーブルのメタデータを保存しています。 Workdayのテーブルデータはこの場所にコピーされません。
外国カタログは常に、認証情報がアクセスを許可するWorkdayのデータ接続カタログ全体をミラーリングします。 見える範囲を絞り込むには、接続を作成する際に読み込みたいテーブルだけに読み込みアクセスできる principal_role を設定します。
ステップ3:許可を付与し、カタログを照会する
外部カタログを作成した後、ユーザーはフェデレーテッドテーブルにアクセスするために適切なUnity Catalog権限が必要です:
- すべてのユーザーには、カタログとスキーマに対する
USE CATALOGとUSE SCHEMAのアクセス許可が必要です。 - フェデレーテッドテーブルから読み込むには、ユーザーが
SELECT権限を必要とします。
Unity カタログの権限とその付与方法の詳細については、 Unity カタログでの権限の管理に関するページを参照してください。
例えば、ノートブックやDatabricksのSQLクエリエディタで以下のコマンドを実行します。
GRANT USE CATALOG ON CATALOG <catalog-name> TO `<principal>`;
GRANT USE SCHEMA ON SCHEMA <catalog-name>.<schema-name> TO `<principal>`;
GRANT SELECT ON TABLE <catalog-name>.<schema-name>.<table-name> TO `<principal>`;
これらの権限を持つユーザーは、3レベル名前空間表記法を使ってフェデレーテッドテーブルを照会できます:
SELECT * FROM <catalog-name>.<schema-name>.<table-name>;
名前空間マッピング
Unity CatalogはWorkday Data Connectオブジェクト階層を以下のようにミラーリングしています:
| Workday Data Connect オブジェクト | Unity Catalog オブジェクト |
|---|---|
| Catalog | 外部カタログ |
| 名前空間 | Schema |
| テーブル | 外国表 |
Workday Data Connectは、Unity Catalog catalog.schema.table の階層構造に1対1で対応するフラットな3レベルの名前を提供します。 追加のネームスペースネストはありません。
制限事項
Workdayデータコネクトのカタログフェデレーションには以下の制限があります:
- コネクターはWorkday Data Connectカタログを通じて共有されているIcebergテーブルのみにアクセスできます。
- スキーマ名とテーブル名は、標準的なUnity Catalogの命名制限に従います。 Azure Databricksはピリオド(
.)、スペース()、スラッシュ(/)を含む名前をサポートしていません。 セキュリティ保護可能なオブジェクトの名前付けの要件を参照してください。