設定 Workday Data Lake 的跨雲端連線

透過跨雲端連線至 Workday 資料湖泊,您就能直接在 Google Cloud查詢 Workday 資料。這項功能可將外部資料來源與現有的Google Cloud 環境整合,統一資料分析作業。

設定連線後,您可以在無邊界 Lakehouse 中管理聯合資料的存取權。

用途

將 Lakehouse 連結至 Workday 資料湖泊,可支援多項重要用途:

  • 整合數據分析:將 Workday 人資和薪酬資料與Google Cloud 資料建立關聯,例如提供銷售和配額的背景資訊。
  • 運用 Google Cloud 生態系統:例如,搭配使用 Google 的代理架構、BigQuery ML 和 Workday HR 資料,預測員工留任率。
  • 串流即時、免複製的資料:分析 Workday 採購和應付帳款資料,以及儲存在Google Cloud 資料儲存庫 中的物流和庫存資料,回報供應鏈效率不彰的問題,並最佳化供應商成本。

事前準備

  1. 請參閱「Lakehouse 總覽」,瞭解 Lakehouse 如何管理資料存取權。
  2. 請參閱這篇文章,瞭解如何存取跨雲端資料。
  3. 請查看支援的目錄,確認是否相容。
  4. 瞭解如何使用區域 Secret Manager 密鑰,向 Workday 資料湖泊進行驗證。
  5. 請與 Workday 資料湖泊 管理員聯絡,按照本文說明設定驗證。管理員可能需要與 Workday 支援團隊聯絡,才能啟用資料湖泊存取權,這可能需要一些時間才能解決。
  6. 登入 Google Cloud 帳戶。如果您未曾使用過 Google Cloud,歡迎 建立帳戶,親自體驗實際使用我們產品的成效。新客戶還能獲得價值 $300 美元的免費抵免額,用於執行、測試及部署工作負載。
  7. Verify that billing is enabled for your Google Cloud project.

  8. 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.enable permission. 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.

    Enable the APIs

  9. Verify that billing is enabled for your Google Cloud project.

  10. 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.enable permission. 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.

    Enable the APIs

必要的角色

如要取得設定跨雲端存取權所需的權限,請要求管理員在專案中授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

限制和注意事項

本節列出存取跨雲端資料的限制和注意事項。

  • 唯讀:Lakehouse 中的聯合目錄是遠端目錄的唯讀檢視畫面。不支援資源操作 (例如建立、更新或刪除資源),必須直接在遠端目錄中執行。
  • 資料更新間隔:聯合目錄的 --refresh-interval 旗標會決定中繼資料的同步頻率。這個值必須是 0s (停用) 或至少 300s (5 分鐘)。目錄的背景中繼資料重新整理作業可能需要較長時間,具體取決於命名空間和資料表資源的數量。如果前一次重新整理作業超時,系統會略過目前的重新整理作業,但會排定在下一個間隔執行下一次重新整理作業。查詢會使用最近同步處理的目錄中繼資料,因此在遠端目錄中所做的變更 (例如新資料表、結構定義更新或新提交的資料),要等到下次背景中繼資料重新整理完成後,才會顯示在 Lakehouse 中。
  • Lakehouse 快取:所有跨雲端查詢都會自動啟用 Lakehouse 快取,將資料區塊儲存在 Google Cloud本機,節省 egress 費用。快取不支援客戶自行管理的加密金鑰 (CMEK);快取資料會使用 Google-owned and Google-managed encryption keys加密。如果對查詢中的任何資料表強制執行 constraints/gcp.restrictNonCmekServices 組織政策限制,系統會自動停用該查詢的快取功能。詳情請參閱「智慧型快取」。
  • 資料落地和法規遵循:在 Google Cloud 區域建立聯合目錄或連線,會將快取的靜態資料儲存在該目標區域。如果遠端雲端資料位於其他管轄區,請確保跨區域快取符合貴組織的資料落地和法規遵循要求。

一般工作流程

如要存取 Workday 資料湖泊中的跨雲端資料,請按照下列一般步驟操作:

  1. 設定聯合:設定 Secret 驗證,並在 Lakehouse 建立聯合目錄。
    1. 在 Workday 中設定資料湖泊和 Workday API 憑證。
    2. 使用 Workday API 憑證在 Secret Manager 中建立密鑰。
    3. 在 Lakehouse 建立聯合目錄,並將密鑰存取權授予目錄服務帳戶。
  2. 驗證連線:確認 Lakehouse 可連線至遠端目錄並同步處理中繼資料。
  3. 查詢資料:使用 BigQuery 或 Managed Service for Apache Spark,對聯合資料執行查詢。詳情請參閱「查詢遠端資料」。
  4. 設定權限:使用 Identity and Access Management (IAM),管理可查看及查詢聯合資料的人員。

設定聯盟

如要查詢資料,必須設定 Lakehouse 聯合目錄,並連線至遠端 Workday 資料湖泊。

設定驗證機制

如要使用聯盟功能,必須透過儲存在區域 Secret Manager 密鑰中的憑證,向遠端 Workday Data Lake 進行驗證。

  1. 在 Workday 中完成下列步驟:

    1. 設定資料湖泊。
    2. 註冊資料湖泊的 API 用戶端 (更新權杖授權)。
    3. 在資料湖泊中設定安全性和資料表匯出作業。

    如需完成這項程序的端對端操作說明,請參閱「開始使用 Workday 資料湖泊」。

  2. 建立名為 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 整合用戶端的 OAuth 用戶端密鑰。
    • REFRESH_TOKEN:為 Workday ISU 產生的永久更新權杖。
  3. 設定 Secret Manager 的區域端點:

    Secret Manager 預設會使用全域端點。為避免連線能力問題,並盡可能降低延遲和資料移轉費用,請在相同區域建立 Secret 和目錄。如要以區域密鑰覆寫預設的全域端點,請執行下列指令:

    gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/

    更改下列內容:

    • REGION:儲存 Secret Manager 密鑰的 Google Cloud 區域。例如:us-east4。
  4. 將酬載上傳至 Secret Manager:

    gcloud secrets create WORKDAY_SECRET_NAME \
      --location="REGION" \
      --project="PROJECT_ID" \
      --data-file=credentials.json
  5. 安全刪除 credentials.json 檔案,防止憑證外洩。

    更改下列內容:

    • WORKDAY_SECRET_NAME:Secret Manager 中 Workday 密鑰的專屬名稱,例如 workday-api-credentials 或 workday-data-lake-secret。
    • REGION:建立 Secret 的 Google Cloud 區域,例如 us-east4。
    • PROJECT_ID: Google Cloud 專案 ID。

建立聯合目錄

使用 Google Cloud 控制台或 gcloud CLI 建立聯合目錄:

控制台

如要建立聯合目錄,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Lakehouse」Lakehouse。

    前往 Lakehouse

  2. 按一下「建立目錄」,然後選取「聯合目錄」。

    「Create Federated catalog」(建立聯合目錄) 頁面隨即顯示。

  3. 在「Catalog configuration」(目錄設定) 部分:

    1. 在「Federated catalog source」(聯合目錄來源) 清單中,選取「Workday (資料湖泊)」。
    2. 在「Catalog name (in Lakehouse)」(目錄名稱 (位於 Lakehouse)) 欄位中,輸入目錄名稱。
    3. 在「Data location」(資料位置) 清單中,選取要建立聯合目錄的區域,例如 us-east4。這必須與 Secret Manager 密鑰的區域相符。為盡可能縮短延遲時間並降低資料移轉費用,請在選取區域時執行下列操作:
      • 如果 Workday 執行個體位於 Amazon Web Services (AWS),請選取最接近 AWS 區域的Google Cloud 區域。
      • 如果 Workday 執行個體位於 Google Cloud,請選取完全相同的區域。
    4. 按一下「繼續」。
  4. 在「Connection details」(連線詳細資料) 區段中:

    1. 在「Remote catalog details」(遠端目錄詳細資料) 部分:
      • 在「Workday Base URL」(Workday 基準網址) 欄位中,輸入 Workday 執行個體的基準網址。例如 impl-services1.wd12.myworkday.com 或 wd501.myworkday.com。
      • 在「Workday Tenant」欄位中,輸入 Workday 租戶名稱,例如 google_dp3。
    2. 在「Authentication Method」(驗證方式) 專區的「Secret Manager Secret」(Secret Manager 密鑰) 欄位中,輸入區域密鑰的資源名稱。請使用下列格式:projects/PROJECT_ID/locations/REGION/secrets/WORKDAY_SECRET_NAME。
    3. 在「Refresh interval」(重新整理間隔) 區段的「Refresh interval」(重新整理間隔) 欄位中,輸入目錄中繼資料的更新頻率 (以秒為單位),例如 300。如要停用背景重新整理功能,請輸入 0。
  5. 點選「建立」。

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:建立聯合目錄的 Lakehouse 區域,例如 us-east4。這個區域必須與儲存 Secret 的區域相同。為盡可能縮短延遲時間並降低資料移轉費用,請在選取區域時採取下列做法:
    • 如果 Workday 執行個體位於 AWS,請選取最接近 AWS 區域的Google Cloud 區域。
    • 如果 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 Manager 密鑰存取者角色 (roles/secretmanager.secretAccessor) 授予這個服務帳戶,以便存取先前建立的密鑰。新的 IAM 政策可能需要幾分鐘才會生效。

控制台

  1. 前往 Google Cloud 控制台的「Lakehouse」Lakehouse。

    前往 Lakehouse

  2. 按一下您為 Workday 建立的聯合目錄名稱。

  3. 在「Catalog details」(目錄詳細資料) 頁面的快訊橫幅中,按一下「Grant secret permissions」(授予 Secret 權限)。

    Lakehouse 會將密鑰的 roles/secretmanager.secretAccessor 角色授予佈建的服務帳戶。

gcloud CLI

  1. 授予目錄服務帳戶存取密鑰的權限:

    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"
  2. 如要確認聯合目錄服務帳戶有權存取密鑰,請執行下列指令:

    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 中聯合目錄的名稱。

驗證連線

確認背景中繼資料重新整理作業已順利完成,並同步處理命名空間和資料表。

  1. 確認重新整理狀態顯示成功:

    gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
      --project="PROJECT_ID"
  2. 確認命名空間已同步:

    gcloud alpha biglake iceberg namespaces list \
      --project="PROJECT_ID" \
      --catalog="FEDERATED_CATALOG_NAME"

更改下列內容:

  • PROJECT_ID: Google Cloud 專案 ID。
  • FEDERATED_CATALOG_NAME:Lakehouse 中聯合目錄的名稱。

後續步驟