创建开发环境
本快速入门将引导您完成在 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 Admin (
roles/dataform.admin) -
Dataform Editor (
roles/dataform.editor) 对工作区和工作流调用的访问权限 -
自定义服务账号的 Service Account User (
roles/iam.serviceAccountUser) 角色 -
针对项目的 Project IAM Admin (
roles/resourcemanager.projectIamAdmin) - 对 Dataform 需要同时具有读取和写入权限的项目(通常包括托管 Dataform 代码库的项目)的 BigQuery Data Editor (
roles/bigquery.dataEditor) 角色。 - Dataform 需要对项目具有只读权限,因此您需要为这些项目授予 BigQuery Data Viewer (
roles/bigquery.dataViewer) 角色。 - BigQuery Job User (
roles/bigquery.jobUser) 角色,该角色针对的是托管 Dataform 代码库的项目。 在 Google Cloud 控制台中,前往 IAM 页面。
点击授予访问权限。
在新的主账号字段中,输入您的自定义服务账号 ID 或 Google 账号电子邮件地址(预览版)。
在选择角色菜单中,使用添加其他角色为每个额外角色逐一选择以下角色:
- BigQuery Data Editor
- BigQuery Data Viewer
- BigQuery Job User
点击保存。
在 Google Cloud 控制台中,依次前往 IAM > 服务账号。
选择您的自定义服务账号。
前往具有访问权限的主账号,然后点击授予访问权限。
在新的主账号字段中,输入您的默认 Dataform 服务代理 ID。
默认 Dataform 服务代理 ID 采用以下格式:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com将
PROJECT_NUMBER替换为您的Google Cloud 项目编号。在选择角色列表中,添加 Service Account Token Creator 角色。
点击保存。
在 Google Cloud 控制台中,前往 Dataform 页面。
点击 创建制品库。
在创建仓库页面上,执行以下操作:
在代码库 ID 字段中,输入
quickstart-dev。在区域列表中,选择
europe-west4。点击创建。
点击前往代码库。
在 Google Cloud 控制台中,前往 Dataform 页面。
点击
quickstart-dev。点击设置,然后点击修改。
在工作区编译替换窗格的架构后缀字段中,输入
${workspaceName}。当您在工作区中触发运行后,Dataform 会将工作区的名称作为后缀附加到工作流设置中设置的默认架构。本快速入门使用默认的 Dataform 设置和
dataform默认架构。点击保存。
在 Google Cloud 控制台中,前往 BigQuery 页面。
在浏览器面板中,展开您的项目并选择数据集。
点击 操作菜单,然后选择删除。
在删除数据集对话框中,在字段中输入
delete,然后点击删除。在 Google Cloud 控制台中,前往 Dataform 页面。
在
quickstart-dev旁边,点击 更多菜单,然后选择删除。- 在删除代码库窗口中,输入代码库的名称以确认删除。
请点击删除来确认操作。
- 如需详细了解服务账号,请参阅自定义服务账号和 Dataform 服务代理简介。
- 如需详细了解 Dataform 中的代码生命周期,请参阅 Dataform 中的代码生命周期简介。
- 如需详细了解 Dataform 中工作流生命周期的最佳实践,请参阅工作流生命周期的最佳实践。
- 如需详细了解 Dataform 中的工作区编译替换,请参阅创建工作区编译替换。
- 如需了解如何在 Dataform 中安排生产运行,请参阅安排生产运行。
此外,如果您想使用自定义服务账号在 BigQuery 中运行工作流,请选择或创建自定义服务账号。
所需的角色
如需获得执行本教程中的所有任务所需的权限,请让您的管理员为您授予以下 IAM 角色:
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
授予必需的角色
如需在 BigQuery 中运行工作流,您可以使用自定义服务账号或您的 Google 账号(预览版)。以下部分介绍了自定义服务账号或 Google 账号以及默认 Dataform 服务代理所需的角色。
向您的自定义服务账号或 Google 账号授予角色
如需在 BigQuery 中运行工作流,您的自定义服务账号或您的 Google 账号(预览版)必须具有以下必需的角色:
如需向自定义服务账号或 Google 账号授予 BigQuery 角色(预览版),请按以下步骤操作:
向默认 Dataform 服务代理授予角色
如果您使用自定义服务账号在 BigQuery 中运行工作流,则必须允许 Dataform 使用您的自定义服务账号。如需向自定义服务账号资源上的默认 Dataform 服务代理授予 Service Account Token Creator 角色 (roles/iam.serviceAccountTokenCreator),请按以下步骤操作:
创建 Dataform 仓库
配置工作区编译替换
如需使用 Dataform 工作区编译替换创建隔离的开发环境,请按以下步骤操作:
Dataform 会将工作区编译替换应用于您代码库中的所有工作区。
通过此配置,当您在工作区中手动运行工作流时,Dataform 会使用工作区编译替换来运行该工作流。因此,Dataform 在 BigQuery 的 dataform_workspaceName 架构中运行工作流,将工作区转换为隔离的开发环境。
例如,当您在 sasha 工作区中手动触发运行时,Dataform 会在 BigQuery 的 dataform_sasha 架构中运行工作流。
如需在运行工作流时不使用工作区编译替换,但仍为开发环境保留工作区编译替换,您可以创建发布配置以配置其他执行环境,例如,staging 和 production。
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
删除在 BigQuery 中创建的数据集
为避免 BigQuery 资产产生费用,请删除名称以 dataform 开头的数据集,例如 dataform-sasha。
删除 Dataform 代码库
创建 Dataform 代码库不会产生任何相关费用。 不过,如果您想删除代码库及其所有内容,请按以下步骤操作: