Workday Data Lake へのクロスクラウド接続を使用すると、 Google Cloud内で Workday データを直接クエリできます。この機能により、外部データソースを既存のGoogle Cloud 環境と統合して、データ分析を統合できます。
接続を設定したら、ボーダレスな Lakehouse で連携データへのアクセスを管理できます。
ユースケース
Lakehouse を Workday Data Lake に接続すると、次のようないくつかの重要なユースケースがサポートされます。
- 分析を統合する: Workday の人事データと報酬データをGoogle Cloud データに関連付けて、販売と割り当てのコンテキストを提供します。
- Google Cloud エコシステムを活用する: たとえば、Google のエージェント フレームワークを BigQuery ML と Workday HR データで使用して、従業員の定着率を予測します。
- リアルタイムのノーコピー データをストリーミングする: Workday の調達データと買掛金データを、Google Cloud に保存されているロジスティクス データと在庫データとともに分析して、サプライ チェーンの非効率性を報告し、ベンダー費用を最適化します。
始める前に
- レイクハウスの概要を確認して、レイクハウスがデータへのアクセスを管理する方法を理解する。
- クロスクラウド データへのアクセスについてを読み、仕組みを理解する。
- サポートされているカタログを確認して、互換性を確認します。
- リージョン Secret Manager のシークレットを使用して Workday データレイク で認証する方法を理解します。
- Workday データレイク 管理者に問い合わせて、このドキュメントの説明に沿って認証を設定します。管理者は、データレイクへのアクセスを有効にするために Workday サポートに連絡する必要がある場合があります。解決までに時間がかかることがあります。
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake, Secret Manager APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake, Secret Manager APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
必要なロール
クロスクラウド アクセスの設定に必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
レイクハウス カタログを管理する: BigLake 管理者 (
roles/biglake.admin) -
シークレットを管理する: Secret Manager 管理者 (
roles/secretmanager.admin)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
制限事項と考慮事項
このセクションでは、クロスクラウド データにアクセスする際の制限事項と考慮事項について説明します。
- 読み取り専用: Lakehouse の連携カタログは、リモート カタログの読み取り専用ビューです。リソースの操作(リソースの作成、更新、削除など)はサポートされていません。リモート カタログで直接実行する必要があります。
- データの更新速度: 連携カタログの
--refresh-intervalフラグによって、メタデータの同期頻度が決まります。値は0s(無効)または300s(5 分)以上にする必要があります。カタログのバックグラウンド メタデータの更新は、名前空間とテーブルのリソースが多いほど時間がかかることがあります。前回の更新がオーバーランした場合、現在の更新はスキップされますが、次の更新は次の間隔でスケジュールされます。クエリは、最後に同期されたカタログ メタデータを使用します。そのため、リモート カタログで行われた変更(新しいテーブル、スキーマの更新、新しく commit されたデータなど)は、次のバックグラウンド メタデータの更新が完了するまで Lakehouse に表示されません。 - Lakehouse キャッシュ: Lakehouse キャッシュは、すべてのクロスクラウド クエリで自動的に有効になります。データブロックを Google Cloudにローカルに保存することで、下り(外向き)費用を節約できます。顧客管理の暗号鍵(CMEK)はキャッシュ保存ではサポートされていません。キャッシュに保存されたデータは Google-owned and Google-managed encryption keysを使用して暗号化されます。クエリ内のテーブルに
constraints/gcp.restrictNonCmekServices組織のポリシーの制約が適用されている場合、そのクエリのキャッシュは自動的に無効になります。詳細については、インテリジェント キャッシュ保存をご覧ください。 - データ所在地とコンプライアンス: Google Cloud リージョンに連携カタログまたは接続を作成すると、キャッシュに保存されたデータがそのターゲット リージョンに保存されます。リモート クラウドデータが別の管轄区域にある場合は、クロスリージョン キャッシュが組織のデータ所在地と規制遵守の要件に準拠していることを確認してください。
全般的なワークフロー
Workday Data Lake でクロスクラウド データにアクセスする一般的な手順は次のとおりです。
- 連携を設定する: シークレットベースの認証を構成し、Lakehouse に連携カタログを作成します。
- Workday で、データレイクと Workday API の認証情報を設定します。
- Workday API 認証情報を使用して Secret Manager でシークレットを作成します。
- Lakehouse に連携カタログを作成し、カタログ サービス アカウントにシークレットへのアクセス権を付与します。
- 接続を確認する: Lakehouse がリモート カタログに接続し、メタデータを同期できることを確認します。
- データをクエリする: BigQuery または Managed Service for Apache Spark を使用して、連携データに対してクエリを実行します。詳細については、リモートデータにクエリを実行するをご覧ください。
- 権限を構成する: Identity and Access Management(IAM)を使用して、連携データを表示してクエリできるユーザーを管理します。
連携を設定する
データにクエリを実行するには、リモートの Workday データレイクに接続する Lakehouse 連携カタログを設定する必要があります。
認証を構成する
連携では、リージョンの Secret Manager のシークレットに安全に保存されている認証情報を使用して、リモートの Workday Data Lake に対する認証を行う必要があります。
Workday で次の操作を行います。
- データレイクを設定する。
- データレイクの API クライアントを登録します(更新トークン付与)。
- データレイクでセキュリティとテーブルのエクスポートを設定する。
このプロセスを完了するためのエンドツーエンドの手順については、Workday データレイクのスタートガイドをご覧ください。
前の手順の認証情報を使用して、
credentials.jsonという名前の JSON ファイルを作成します。{ "client_id": "CLIENT_ID", "client_secret": "CLIENT_SECRET", "refresh_token": "REFRESH_TOKEN" }
次のように置き換えます。
CLIENT_ID: 統合用の Workday API クライアントの OAuth クライアント ID。CLIENT_SECRET: Workday API Client for Integrations の OAuth クライアント シークレット。REFRESH_TOKEN: Workday ISU 用に生成された、有効期限のない更新トークン。
Secret Manager のリージョン エンドポイントを構成します。
デフォルトでは、Secret Manager はグローバル エンドポイントを使用します。接続の問題を回避し、レイテンシとデータ転送コストを最小限に抑えるには、シークレットとカタログを同じリージョンに作成します。デフォルトのグローバル エンドポイントをリージョン シークレットでオーバーライドするには、次のコマンドを実行します。
gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/
次のように置き換えます。
REGION: Secret Manager のシークレットを保存する Google Cloud リージョン。例:us-east4
ペイロードを Secret Manager にアップロードします。
gcloud secrets create WORKDAY_SECRET_NAME \ --location="REGION" \ --project="PROJECT_ID" \ --data-file=credentials.json
認証情報の漏洩を防ぐため、
credentials.jsonファイルを安全に削除します。次のように置き換えます。
WORKDAY_SECRET_NAME: Secret Manager での Workday シークレットの一意の名前(例:workday-api-credentials、workday-data-lake-secret)。REGION: シークレットを作成する Google Cloud リージョン(例:us-east4)。PROJECT_ID: 実際の Google Cloud プロジェクト ID。
連携カタログを作成する
Google Cloud コンソールまたは gcloud CLI を使用して、連携カタログを作成します。
コンソール
連携カタログを作成する手順は次のとおりです。
Google Cloud コンソールで、[Lakehouse] に移動します。
[カタログを作成] をクリックし、[連携カタログ] を選択します。
[連携カタログの作成] ページが表示されます。
[カタログの構成] セクションで、次の操作を行います。
- [連携カタログソース] リストで、[Workday(データレイク)] を選択します。
- [カタログ名(Lakehouse 内)] フィールドに、カタログの名前を入力します。
- [データのロケーション] リストで、連携カタログを作成するリージョン(
us-east4など)を選択します。これは、Secret Manager のシークレットのリージョンと一致する必要があります。レイテンシとデータ転送コストを最小限に抑えるには、リージョンを選択するときに次の操作を行います。- Workday インスタンスがアマゾン ウェブ サービス(AWS)にある場合は、AWS リージョンに最も近いGoogle Cloud リージョンを選択します。
- Workday インスタンスが Google Cloudにある場合は、まったく同じリージョンを選択します。
- [続行] をクリックします。
[接続の詳細] セクションで、次の操作を行います。
- [リモート カタログの詳細] セクションで、次の操作を行います。
- [Workday のベース URL] フィールドに、Workday インスタンスのベース URL を入力します。たとえば、
impl-services1.wd12.myworkday.comやwd501.myworkday.comです。 - [Workday テナント] フィールドに、Workday テナント名(例:
google_dp3)を入力します。
- [Workday のベース URL] フィールドに、Workday インスタンスのベース URL を入力します。たとえば、
- [認証方法] セクションの [Secret Manager のシークレット] フィールドに、リージョン シークレットのリソース名を入力します。
projects/PROJECT_ID/locations/REGION/secrets/WORKDAY_SECRET_NAMEの形式を使用します。 - [更新間隔] セクションの [更新間隔] フィールドに、カタログ メタデータを更新する頻度(秒単位)を入力します(例:
300)。バックグラウンド更新を無効にするには、「0」と入力します。
- [リモート カタログの詳細] セクションで、次の操作を行います。
[作成] をクリックします。
gcloud CLI
gcloud CLI を使用して連携カタログを作成するには、次のコマンドを実行します。
gcloud alpha biglake iceberg catalogs create FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --primary-location="REGION" \ --catalog-type="federated" \ --federated-catalog-type="workday" \ --secret-name="projects/PROJECT_ID/locations/REGION/secrets/WORKDAY_SECRET_NAME" \ --workday-base-url="WORKDAY_BASE_URL" \ --workday-tenant="WORKDAY_TENANT" \ --refresh-interval="REFRESH_INTERVAL" \ --namespace-filters="NAMESPACE_FILTERS"
次のように置き換えます。
FEDERATED_CATALOG_NAME: Lakehouse の連携カタログの名前。PROJECT_ID: 実際の Google Cloud プロジェクト ID。REGION: 連携カタログを作成するレイクハウス リージョン(例:us-east4)。このリージョンは、シークレットを保存したリージョンと同じリージョンにする必要があります。レイテンシとデータ転送費用を最小限に抑えるには、リージョンを選択する際に次の操作を行います。- Workday インスタンスが AWS にある場合は、AWS リージョンに最も近いGoogle Cloud リージョンを選択します。
- Workday インスタンスが Google Cloudにある場合は、まったく同じリージョンを選択します。
WORKDAY_SECRET_NAME: Secret Manager の Workday シークレットの名前。WORKDAY_BASE_URL: Workday インスタンスのベース URL。たとえば、impl-services1.wd12.myworkday.comやwd501.myworkday.comです。WORKDAY_TENANT: Workday テナント名。REFRESH_INTERVAL: 省略可。カタログの情報を更新する頻度を指定します。この値は、300sや5mなどの期間として設定します。間隔を短くすると、データの更新頻度は高くなりますが、API 呼び出しの費用が増加する可能性があります。間隔を長くすると費用を抑えることができますが、クエリされたデータに最新のデータセットが反映されない可能性があります。省略した場合、更新間隔はデフォルトで 5 分(300s)になります。値を0sに設定すると、バックグラウンドでのメタデータの更新が無効になります。NAMESPACE_FILTERS: 省略可。連携する Namespace のカンマ区切りのリスト(例:finance,hr)。省略すると、Lakehouse にはすべての名前空間が含まれます。
認証の設定を完了する
カタログを作成すると、Lakehouse はそのカタログに一意のサービス アカウントをプロビジョニングします。このアカウントは、リソースの説明で biglake-service-account として識別されます。
このサービス アカウントに、先ほど作成したシークレットに対する Secret Manager のシークレット アクセサー ロール(roles/secretmanager.secretAccessor)を付与する必要があります。新しい IAM ポリシーが有効になるまでに数分かかることがあります。
コンソール
Google Cloud コンソールで、[Lakehouse] に移動します。
Workday 用に作成した連携カタログの名前をクリックします。
[カタログの詳細] ページのアラート バナーで、[シークレット権限を付与] をクリックします。
Lakehouse は、プロビジョニングされたサービス アカウントにシークレットの
roles/secretmanager.secretAccessorロールを付与します。
gcloud CLI
カタログのサービス アカウントにシークレットへのアクセス権を付与します。
gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/ gcloud secrets add-iam-policy-binding WORKDAY_SECRET_NAME \ --project="PROJECT_ID" \ --location="REGION" \ --member="serviceAccount:$(gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --format='value(biglake-service-account)')" \ --role="roles/secretmanager.secretAccessor"
連携カタログ サービス アカウントにシークレットへのアクセス権があることを確認するには、次のコマンドを実行します。
gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/ gcloud secrets get-iam-policy WORKDAY_SECRET_NAME \ --project="PROJECT_ID" \ --location="REGION"
出力で、
biglake-service-accountサービス アカウントにroles/secretmanager.secretAccessorロールが付与されていることを確認します。
次のように置き換えます。
REGION: Secret Manager のシークレットを保存し、連携カタログを作成した Google Cloud リージョン(例:us-east4)。WORKDAY_SECRET_NAME: Secret Manager の Workday シークレットの名前。PROJECT_ID: 実際の Google Cloud プロジェクト ID。FEDERATED_CATALOG_NAME: Lakehouse の連携カタログの名前。
接続を確認する
バックグラウンド メタデータの更新が正常に完了し、名前空間とテーブルが同期されたことを確認します。
更新ステータスが成功を示していることを確認します。
gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \ --project="PROJECT_ID"
Namespace が同期されていることを確認します。
gcloud alpha biglake iceberg namespaces list \ --project="PROJECT_ID" \ --catalog="FEDERATED_CATALOG_NAME"
次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。FEDERATED_CATALOG_NAME: Lakehouse の連携カタログの名前。