本文說明 Dataform 存放區的概念,以及如何建立新的存放區。
關於 Dataform 存放區
每個 Dataform 存放區都包含一組 SQLX 和 JavaScript 檔案,這些檔案構成工作流程,以及 Dataform 設定檔和套件。您可以在開發工作區中與存放區內容互動。
Dataform 頁面會依存放區 ID 的字母順序顯示存放區。你可以排序及篩選這些項目。
如要查看存放區,請前往 Google Cloud 控制台的「Dataform」頁面。
每個 Dataform 存放區都會連線至預設的 Dataform 服務代理程式或自訂服務帳戶。您只能在建立存放區時選取自訂服務帳戶。您稍後可以編輯服務帳戶。
根據預設,Dataform 會使用從專案編號衍生出的服務代理或服務帳戶,格式如下:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
Dataform 會使用 Git 記錄變更及管理檔案版本。 每個 Dataform 存放區都會對應一個 Git 存放區。 建立 Dataform 存放區後,您可以將其連結至遠端 GitHub、GitLab 或 Bitbucket 存放區。
在 Dataform 存放區中,Dataform 會儲存存放區程式碼。 在已連結的存放區中,第三方存放區會儲存存放區程式碼。 Dataform 會與第三方存放區互動,讓您在 Dataform 開發工作區中編輯及執行存放區內容。
Dataform 存放區頁面包含下列元件:
- 「開發工作區」分頁
- 顯示在存放區中建立的開發工作區。
- 「工作流程執行記錄」分頁
- 顯示 Dataform 工作流程執行記錄。
- 「發布與排程」分頁
- 可檢查、建立、編輯及刪除版本設定和工作流程設定。
- 「設定」分頁
- 顯示存放區的名稱和位置。如果存放區已連結至第三方 Git 存放區,系統會顯示第三方存放區來源、預設分支名稱和密碼權杖。顯示按鈕,可將存放區連結至第三方 Git 存放區,以及編輯 Git 連線。
- 「建立開發工作區」按鈕
- 可建立開發工作區。
建立並初始化開發工作區後,您可以編輯工作流程設定檔,設定存放區的下列 Dataform 設定:
- 預設資料庫 (Google Cloud 專案 ID)。
- 預設結構定義 (BigQuery 資料集 ID)。
- 預設 BigQuery 位置。
- 斷言的預設結構定義 (BigQuery 資料集 ID)。
- 倉庫,必須設為
bigquery。 - 編譯期間可供專案程式碼使用的使用者定義變數。
如要進一步瞭解 Dataform 存放區設定,請參閱 Dataform 核心參考資料中的 IProjectConfig。
存放區設定
建立 Dataform 存放區時,您需要設定下列存放區設定:
- 存放區 ID
- 存放區的專屬 ID。ID 只能使用數字、英文字母、連字號和底線。
- 區域
用於儲存存放區及其內容的 Dataform 區域。
這個儲存區域可能與處理區域不同,Dataform 會在處理區域處理程式碼,並儲存執行作業的輸出內容。根據預設,處理區域會設為預設 BigQuery 資料集區域。建立存放區後,您可以在工作流程設定檔中編輯處理區域。詳情請參閱「設定 Dataform 工作流程設定」。
- 服務代理程式或服務帳戶
與存放區相關聯的 Dataform 服務代理程式或自訂服務帳戶。如果是新存放區,您必須提供自訂服務帳戶。您可以選取與Google Cloud 專案相關聯的服務帳戶,也可以手動輸入其他服務帳戶。
根據預設,Dataform 會使用從專案編號衍生出的服務代理程式或服務帳戶,格式如下:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com您必須使用自訂服務帳戶,才能在存放區中執行工作流程,但所有其他存放區作業仍會使用預設的 Dataform 服務代理程式。
- 嚴格的「充當」模式
啟用額外的安全性檢查,這項檢查需要服務帳戶的
iam.serviceAccounts.actAs權限。對於新存放區,系統會強制執行嚴格 act-as 模式。對於現有存放區,建議使用自訂服務帳戶並啟用嚴格 act-as 模式,確保權限模型更安全且可預測。- 加密
存放區的加密方法。您可以使用預設加密、專屬的客戶管理 Cloud KMS 加密金鑰,或預設的 Dataform CMEK 金鑰。如要進一步瞭解如何在 Dataform 中使用客戶自行管理的加密金鑰 (CMEK),請參閱「使用客戶自行管理的加密金鑰」。
建立存放區後,您可以將其連結至 GitHub 或 GitLab。
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery and Dataform APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery and Dataform APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- 如要為存放區使用 CMEK 加密,請啟用 Dataform 存放區的 CMEK 加密。
必要的角色
如要取得建立及刪除存放區所需的權限,請要求管理員授予您存放區的下列 IAM 角色:
-
Dataform 管理員 (
roles/dataform.admin) - 專案 -
服務帳戶使用者 (
roles/iam.serviceAccountUser) - 自訂服務帳戶
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
授予必要角色
如要在 Dataform 存放區和 BigQuery 中執行工作流程,可以使用自訂服務帳戶或 Google 帳戶。
自訂服務帳戶必須具備下列必要角色:
- BigQuery 資料編輯者
(
roles/bigquery.dataEditor) 專案或特定 BigQuery 資料集,Dataform 需要讀取和寫入權限。這通常包括代管 Dataform 存放區的專案。 - BigQuery 資料檢視者
(
roles/bigquery.dataViewer) 專案或特定 BigQuery 資料集,Dataform 需要這些專案或資料集的唯讀存取權。 - 專案的 BigQuery Job User
(
roles/bigquery.jobUser) ,其中包含 Dataform 存放區。
如要讓 Dataform 使用自訂服務帳戶,預設的 Dataform 服務代理程式必須具備自訂服務帳戶資源的下列角色:
如要授予這些角色,請按照下列步驟操作:
前往 Google Cloud 控制台的「IAM」(身分與存取權管理) 頁面。
按一下「授予存取權」。
在「新增主體」欄位中,輸入自訂服務帳戶 ID。
在「Select a role」(選取角色) 選單中,逐一選取下列角色,並為每個額外角色使用「Add another role」(新增其他角色):
- BigQuery 資料編輯者
- BigQuery 資料檢視者
- BigQuery 工作使用者
按一下 [儲存]。
前往 Google Cloud 控制台的「Service accounts」(服務帳戶) 頁面。
選取自訂服務帳戶。
前往「具備存取權的主體」,然後點選「授予存取權」。
在「新增主體」欄位中,輸入預設的 Dataform 服務代理程式 ID。
預設 Dataform 服務代理 ID 的格式如下:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com將
PROJECT_NUMBER替換為專案的數字 ID。Google Cloud 您可以在 Google Cloud 控制台資訊主頁中找到專案 ID。Google Cloud 詳情請參閱「識別專案」。在「Select a role」(選取角色) 清單中,新增下列角色:
- 服務帳戶使用者
- 服務帳戶權杖建立者
按一下 [儲存]。
如要進一步瞭解如何授予角色,請參閱「授予 Dataform 必要存取權」。
建立存放區
如要建立 Dataform 存放區,請按照下列步驟操作:
前往 Google Cloud 控制台的「Dataform」頁面。
點選「Create Repository」(建立存放區)。
在「建立存放區」頁面的「存放區 ID」欄位中,輸入專屬 ID。
ID 只能使用數字、英文字母、連字號和底線。
在「Region」(區域) 下拉式清單中,選取要儲存存放區及其內容的 Dataform 區域。選取離您最近的 Dataform 區域。
如需可用的 Dataform 區域清單,請參閱「位置」。存放區區域不必與 BigQuery 資料集的位置相同。
在
workflow_settings.yaml檔案中,您可以設定處理區域,Dataform 會在該區域處理程式碼,並儲存執行作業的輸出內容。處理區域必須與 BigQuery 資料集的位置相符,但不一定要與存放區區域相符。詳情請參閱「設定 Dataform 工作流程設定」。在「Service account」(服務帳戶) 選單中,選取存放區的自訂服務帳戶。
在選單中,您可以選取與您有權存取的Google Cloud 專案相關聯的自訂服務帳戶。自訂服務帳戶僅用於執行工作流程。所有其他存放區作業都由預設的 Dataform 服務代理執行。
- 選用:如要選取選單中未顯示的服務帳戶,請按一下「手動輸入」並輸入服務帳戶 ID。
在「actAs 權限檢查」部分,強制對存放區中的使用者動作執行權限檢查。如要進一步瞭解這些檢查,請參閱「使用嚴格的『扮演』模式」。
為存放區設定所選的加密機制:
預設 CMEK 金鑰
Dataform 會顯示「使用預設 KMS 金鑰」核取方塊,並預設勾選。
- 如要使用預設 Dataform CMEK 金鑰加密存放區,請保持選取「使用預設 KMS 金鑰」核取方塊。
專屬 CMEK 金鑰
如要使用專屬 CMEK 金鑰加密存放區,請按照下列步驟操作:
- 如果系統預設勾選「使用預設 KMS 金鑰」核取方塊,請取消勾選。
- 在「Encryption」(加密) 部分中,選取「Customer-managed encryption keys (CMEK)」(客戶自行管理的加密金鑰 (CMEK)) 選項。
- 在「Select a customer-managed key」(選取客戶管理的金鑰) 下拉式選單中,選取專屬的 CMEK 金鑰。
靜態資料加密
- 如要使用預設加密,請在「Encryption」(加密) 區段中選取 Google-managed encryption key 選項。
點選「建立」,然後按一下「前往存放區」。
編輯服務帳戶
您必須將自訂服務帳戶與 Dataform 存放區建立關聯,才能執行工作流程。所有其他存放區作業仍由預設的 Dataform 服務代理程式執行。
如要編輯 Dataform 存放區的服務帳戶,請按照下列步驟操作:
前往 Google Cloud 控制台的「Dataform」頁面。
選取存放區,然後點選「設定」。
在「服務帳戶」欄位旁,按一下「編輯服務帳戶」圖示 。
在「服務帳戶」選單中,選取存放區的服務帳戶。
在選單中,您可以選取與您有權存取的Google Cloud 專案相關聯的自訂服務帳戶。
- 選用:如要選取選單中未顯示的服務帳戶,請按一下「手動輸入」並輸入服務帳戶 ID。
按一下 [儲存]。
刪除存放區
如要刪除存放區及其中所有內容,請按照下列步驟操作:
前往 Google Cloud 控制台的「Dataform」頁面。
在要刪除的存放區旁,按一下「更多」選單,然後選取「刪除」。
在「Delete repository」(刪除存放區) 視窗中,輸入存放區名稱來確認刪除。
點選「刪除」。
後續步驟
- 如要瞭解如何將 Dataform 存放區連結至第三方 Git 存放區,請參閱「連結至第三方 Git 存放區」。
- 如要進一步瞭解存放區大小對 Dataform 開發作業的影響,請參閱「存放區大小總覽」。
- 如要進一步瞭解如何在 Dataform 中分割存放區,請參閱存放區分割簡介。
- 如要瞭解如何設定 Dataform 處理設定,請參閱「設定 Dataform 工作流程設定」。
- 如要瞭解如何建立及初始化工作區,請參閱「建立工作區」。