建立開發環境
這份快速入門文件會逐步說明如何在 Dataform 中建立個別開發環境,讓每位開發人員都能在自己的開發環境中工作:
- 建立 Dataform 存放區。
- 授予必要角色。
-
建立編譯覆寫設定,供 Dataform 套用至存放區中的所有工作區,將工作區轉換為獨立的開發環境。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
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. -
Dataform 管理員 (
roles/dataform.admin) 存放區 -
Dataform 編輯器 (
roles/dataform.editor) 工作區和工作流程叫用 -
服務帳戶使用者 (
roles/iam.serviceAccountUser) 自訂服務帳戶 -
專案 IAM 管理員 (
roles/resourcemanager.projectIamAdmin) 專案 - BigQuery 資料編輯者
(
roles/bigquery.dataEditor) 在 Dataform 需要讀取和寫入存取權的專案中,通常包括代管 Dataform 存放區的專案。 - Dataform 需要對專案擁有唯讀存取權,因此請在這些專案中授予「BigQuery 資料檢視者」(
roles/bigquery.dataViewer) 角色。 - BigQuery Job User
(
roles/bigquery.jobUser) 在代管 Dataform 存放區的專案中。 前往 Google Cloud 控制台的「IAM」(身分與存取權管理) 頁面。
按一下「授予存取權」。
在「新增主體」欄位中,輸入自訂服務帳戶 ID 或 Google 帳戶電子郵件地址 (預覽版)。
在「Select a role」(選取角色) 選單中,使用「Add another role」(新增其他角色) 逐一選取下列角色:
- BigQuery 資料編輯者
- BigQuery 資料檢視者
- BigQuery 工作使用者
按一下 [儲存]。
在 Google Cloud 控制台中,依序前往「IAM」>「Service accounts」(服務帳戶)。
選取自訂服務帳戶。
前往「具備存取權的主體」,然後點選「授予存取權」。
在「新增主體」欄位中,輸入預設的 Dataform 服務代理程式 ID。
預設 Dataform 服務代理程式 ID 的格式如下:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com將
PROJECT_NUMBER替換為Google Cloud 專案編號。在「Select a role」(選取角色) 清單中,新增「Service Account Token Creator」(服務帳戶憑證建立者) 角色。
按一下 [儲存]。
前往 Google Cloud 控制台的「Dataform」頁面。
按一下 「建立存放區」。
在「建立存放區」頁面中執行下列操作:
在「Repository ID」(存放區 ID) 欄位中輸入
quickstart-dev。在「Region」(區域) 清單中選取「
europe-west4」。點選「建立」。
點選「前往存放區」。
前往 Google Cloud 控制台的「Dataform」頁面。
按一下「
quickstart-dev」。按一下「Settings」(設定),然後按一下「Edit」(編輯)。
在「Workspace compilation overrides」(工作區編譯覆寫設定) 窗格中的「Schema suffix」(結構定義後置字串) 欄位中輸入
${workspaceName}。在工作區中觸發執行作業時,Dataform 會以工作區名稱做為後置字串,附加至工作流程設定中設定的預設結構定義。本快速入門導覽課程會使用具
dataform預設結構定義的預設 Dataform 設定。按一下 [儲存]。
前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」面板中展開專案並選取資料集。
按一下 「Actions」(動作) 選單,然後選取「Delete」(刪除)。
在「Delete dataset」(刪除資料集) 對話方塊中,在欄位輸入
delete,然後按一下「Delete」(刪除)。前往 Google Cloud 控制台的「Dataform」頁面。
在
quickstart-dev旁邊,按一下 「更多」選單,然後選取「刪除」。- 在「Delete repository」(刪除存放區) 視窗中,輸入存放區名稱來確認刪除。
按一下「Delete」(刪除) 確認操作。
- 如要進一步瞭解服務帳戶,請參閱「關於自訂服務帳戶和 Dataform 服務代理程式」。
- 如要進一步瞭解 Dataform 中的程式碼生命週期,請參閱「Dataform 中的程式碼生命週期簡介」。
- 如要進一步瞭解 Dataform 工作流程生命週期的最佳做法,請參閱「工作流程生命週期的最佳做法」。
- 如要進一步瞭解 Dataform 中的工作區編譯覆寫設定,請參閱「建立工作區編譯覆寫設定」。
- 如要瞭解如何在 Dataform 中排定正式環境執行作業,請參閱「排定正式環境執行作業」。
此外,如要使用自訂服務帳戶在 BigQuery 中執行工作流程,請選取或建立自訂服務帳戶。
必要的角色
如要取得執行本教學課程中所有工作所需的權限,請要求管理員授予您下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
授予必要角色
如要在 BigQuery 中執行工作流程,可以使用自訂服務帳戶或 Google 帳戶 (搶先版)。以下各節說明自訂服務帳戶或 Google 帳戶,以及預設 Dataform 服務代理程式所需的角色。
將角色授予自訂服務帳戶或 Google 帳戶
如要在 BigQuery 中執行工作流程,自訂服務帳戶或 Google 帳戶 (搶先版) 必須具備下列必要角色:
如要將 BigQuery 角色授予自訂服務帳戶或 Google 帳戶 (搶先版),請按照下列步驟操作:
將角色授予預設 Dataform 服務代理
如果您使用自訂服務帳戶在 BigQuery 中執行工作流程,請務必允許 Dataform 使用自訂服務帳戶。如要將服務帳戶權杖建立者角色 (roles/iam.serviceAccountTokenCreator) 授予自訂服務帳戶資源的預設 Dataform 服務代理程式,請按照下列步驟操作:
建立 Dataform 存放區
建立工作區編譯覆寫設定
如要使用 Dataform 工作區編譯覆寫功能來建立獨立的開發環境,請按照下列步驟操作:
Dataform 會將工作區編譯覆寫設定套用到存放區中的所有工作區。
完成這項設定後,在工作區中手動執行工作流程時,Dataform 會透過工作區編譯覆寫來執行該工作流程。因此,Dataform 會在 BigQuery 的 dataform_workspaceName 結構定義中執行工作流程,將工作區轉換為獨立的開發環境。
舉例來說,當您在 sasha 工作區中手動觸發執行作業時,Dataform 會在 BigQuery 的 dataform_sasha 結構定義中執行工作流程。
如要在沒有工作區編譯覆寫的情況下執行工作流程,但保留開發環境的工作區編譯覆寫,您可以建立版本設定來設置其他執行環境,例如 staging 和 production。
清除所用資源
為了避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請按照下列步驟操作。
刪除在 BigQuery 中建立的資料集
如要避免系統依 BigQuery 資產收取費用,請刪除名稱開頭為 dataform 的資料集,例如 dataform-sasha。
刪除 Dataform 存放區
建立 Dataform 存放區不會產生任何費用。不過,如果您想刪除存放區和當中所有內容,可以按照下列步驟操作: