透過跨雲端連線至 Workday Data Lake,您就能直接在 Google Cloud中查詢 Workday 資料。然後,您可以使用 Lakehouse 管理聯邦資料的存取權並進行分析,不必複製或移動資料。
用途
將 Lakehouse 連線至 Workday Data Lake 可支援多種重要用途:
- 整合數據分析:將 Workday 人資和薪酬資料與 Google Cloud 資料建立關聯,例如提供銷售和配額的背景資訊。
- 善用 Google Cloud 生態系統:舉例來說,您可以搭配使用 Google 的代理程式架構、BigQuery ML 和 Workday HR 資料,預測員工留任率。
- 串流即時資料,無需複製:分析 Workday 採購和應付帳款資料,以及儲存在Google Cloud 中的物流和庫存資料,以找出供應鏈效率不彰之處,並盡量降低供應商成本。
事前準備
- 請參閱 Lakehouse 總覽,瞭解 Lakehouse 如何管理資料存取權。
- 請參閱存取跨雲端資料一文,瞭解運作方式。
- 請參閱支援的目錄,確認是否相容。
- 瞭解如何使用區域 Secret Manager 密鑰向 Workday Data Lake 進行驗證。
- 請與 Workday Data Lake 管理員聯絡,按照本文說明設定驗證。管理員可能需要聯絡 Workday 支援團隊,才能啟用 Data Lake 存取權,解決問題可能需要一段時間。
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake, Secret Manager APIs.
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.
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 角色:
-
管理 Lakehouse 目錄:
BigLake 管理員 (
roles/biglake.admin) -
管理密鑰:
Secret Manager 管理員 (
roles/secretmanager.admin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
支援的目錄詳細資料
本文說明如何使用 Workday Data Lake 設定 Lakehouse。如要存取其他目錄,請參閱「支援的目錄」。
限制和注意事項
存取 Workday Data Lake 時,請注意下列事項:
- 唯讀:Lakehouse 中的聯合目錄是遠端目錄的唯讀檢視畫面。如要建立、更新或刪除資源,請直接使用 Workday。
- 網路路由:連線和查詢會透過公開網際網路安全地傳輸。
- 資料更新間隔:
--refresh-interval標記會決定 Lakehouse 同步處理中繼資料的頻率。值必須為0s(已停用) 或至少300s(5 分鐘)。隨著目錄中的命名空間和資料表數量增加,背景中繼資料重新整理作業需要較長時間才能完成。如果前一次重新整理作業超出排定的間隔時間,系統會略過目前的週期,並在下一個排定的間隔時間繼續作業。 - 主機代管:為避免連線能力問題,並盡量減少延遲和資料移轉費用,請在Google Cloud 最靠近 Workday 執行個體所在區域的區域中,建立聯合目錄和區域 Secret。
一般工作流程
如要在 Workday Data Lake 中存取跨雲端資料,請按照下列一般步驟操作:
- 設定聯合:設定以密鑰為準的驗證,並在 Lakehouse 中建立聯合目錄。
- 在 Workday 中,為整合項目建立整合系統使用者 (ISU) 和 API 用戶端。
- 在 Secret Manager 中建立密鑰,並提供 Workday API 憑證。
- 在 Lakehouse 中建立聯合目錄,並授予目錄服務帳戶密鑰存取權。
- 驗證連線:確認 Lakehouse 可以連線至遠端目錄並同步中繼資料。
- 查詢資料:使用 BigQuery 或 Managed Service for Apache Spark,對聯合資料執行查詢。詳情請參閱「查詢遠端資料」。
- 設定權限:使用 Identity and Access Management (IAM) 管理可查看及查詢同盟資料的使用者。
設定聯盟
如要查詢資料,您必須設定 Lakehouse 聯合目錄,並連結至遠端 Workday 資料湖。
設定驗證機制
如要使用聯盟功能,必須透過儲存在區域 Secret Manager 密鑰中的憑證,向遠端 Workday Data Lake 進行驗證。
在 Workday 中完成下列設定:
- 建立整合系統使用者 (ISU):執行「建立整合系統使用者」工作,建立 Lakehouse 用於同步資源的專屬帳戶。
- 為 ISU 啟用 Workday Data Lake 存取權:授予 ISU Workday Data Lake 的存取權。請與 Workday 支援團隊聯絡,啟用這項存取權。您無法自行執行這個步驟,請等待 Workday 在您的 Workday 租戶中設定存取權,再繼續操作。
- 註冊整合服務的 API 用戶端:執行「註冊整合服務的 API 用戶端」工作。
- 儲存用戶端 ID 和密鑰:儲存 OAuth 用戶端 ID 和密鑰,以供後續步驟使用。
- 產生不會過期的更新權杖:在整合專用的 API 用戶端中,使用「Manage Refresh Tokens for Integrations」(管理整合專用的更新權杖),為 ISU 產生不會過期的更新權杖。
- 儲存更新權杖:儲存產生的更新權杖,以供後續步驟使用。
建立名為
credentials.json的 JSON 檔案,其中包含上個步驟儲存的資料:{ "client_id": "CLIENT_ID", "client_secret": "CLIENT_SECRET", "refresh_token": "REFRESH_TOKEN" }
更改下列內容:
CLIENT_ID:Workday API Client for Integrations 的 OAuth 用戶端 ID。CLIENT_SECRET:Workday API 用戶端 (適用於整合) 的 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 Secret 的 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。
建立聯合目錄
如要使用 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:建立聯合目錄的 Lakehouse 區域,例如us-east4。如要盡可能縮短延遲時間並降低資料移轉費用,請選取距離 Workday 執行個體最近的 Google Cloud區域。這個區域必須與您儲存密鑰的區域相同。WORKDAY_SECRET_NAME:Secret Manager 中 Workday 密鑰的名稱。WORKDAY_BASE_URL:Workday 執行個體的基準網址。例如:impl-services1.wd12.myworkday.com或wd501.myworkday.com。WORKDAY_TENANT:Workday 租戶名稱。REFRESH_INTERVAL:選用:指定更新目錄資訊的頻率。將這個值設為時間長度,例如300s或5m。間隔時間越短,資料更新頻率越高,但 API 呼叫費用也可能越高。間隔時間越長,費用越低,但查詢到的資料可能無法反映最新的資料集。如果省略,重新整理間隔預設為 5 分鐘 (300s)。將值設為0s可停用中繼資料背景重新整理功能。NAMESPACE_FILTERS:選用:以半形逗號分隔的命名空間清單,用於同盟,例如finance,hr。如果省略,Lakehouse 會納入所有命名空間。
完成驗證設定
建立目錄後,Lakehouse 會為目錄佈建專屬服務帳戶,並在資源說明中以 biglake-service-account 識別。
您必須將先前建立的 Secret 的 Secret Manager Secret Accessor 角色 (roles/secretmanager.secretAccessor) 授予這個服務帳戶。新的 IAM 政策可能需要幾分鐘才會生效。
控制台
前往 Google Cloud 控制台的「Lakehouse」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"
如要確認聯合目錄服務帳戶是否能存取 Secret,請執行下列指令:
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"
確認命名空間已同步:
gcloud alpha biglake iceberg namespaces list \ --project="PROJECT_ID" \ --catalog="FEDERATED_CATALOG_NAME"
更改下列內容:
PROJECT_ID: Google Cloud 專案 ID。FEDERATED_CATALOG_NAME:Lakehouse 中聯合目錄的名稱。