创建工作区编译替换

本文档介绍了如何创建工作区编译替换,以隔离 从 Dataform 工作区创建的表和视图 BigQuery。您可以使用工作区编译替换来创建 隔离的 Dataform 开发环境。

关于工作区编译替换

在 Dataform 工作区中开发 SQL 工作流代码时, Dataform 会实时编译工作区中的代码,以创建 编译结果 工作区。Dataform 会使用 工作流程设置文件,以创建 工作区编译结果。然后, 当您在工作区中触发执行时, Dataform 在以下位置执行工作区编译结果: BigQuery。

要覆盖在 工作流程设置 工作区,则可以创建工作区编译替换。

借助工作区编译替换,您可以替换以下设置 (针对代码库中的所有工作区):

项目
Dataform 在其中执行工作区的 Google Cloud 项目 编译结果,在 workflow_settings.yaml 中设置为 defaultProject 或者在 dataform.json 中以 defaultDatabase 的形式指定。
表前缀
为以下所有工作区中的所有表格名称添加了自定义前缀: 存储库。
架构后缀

附加到以下项中所定义表的架构的自定义后缀

已在“workflow_settings.yaml”和“defaultSchema”中设为“defaultDataset” 在 dataform.json 中,或在 schema 参数中 表的 config 块。

如需创建隔离的开发环境,您可以使用 唯一编译替换。您可以动态修改表前缀和 使用 ${workspaceName} 变量替换架构后缀编译。

当您在工作区中手动触发执行时,${workspaceName} 变量会将工作区名称注入工作区编译中 替换。

${workspaceName} 设置为表前缀后,Dataform 会将 工作区名称更改为工作区中所有表的名称。执行后 ,即可确定表来自哪个工作区。

如果您将 ${workspaceName} 设置为架构后缀,Dataform 会将 将工作区名称更改为 defaultSchema,从而创建一个专用于 至工作区。执行后,您可以在 BigQuery 中找到所有 从专用架构中的特定工作区执行的表数量。

动态工作区编译替换示例

以下示例展示了应用于 这个代码库包含以负责相关工作的开发者命名的工作区, SashaKai

在此示例中,工作区编译替换的目标是创建 为 Sasha 和 Kai 部署独立的开发环境。

workflow_settings.yaml 中设定了以下默认设置:

  • defaultProject:analytics
  • defaultDatasetdataform

以下工作区编译替换会创建一个动态表前缀并 架构后缀:

  • Google Cloud 项目 IDanalytics_dev
  • 表前缀${workspaceName}
  • 架构后缀${workspaceName}

当 Sasha 在 Sasha 工作区中手动触发执行时, Dataform 使用以下设置执行其内容:

  • Google Cloud 项目:analytics_dev
  • schema:dataform_sasha
  • 表名称:sasha_namesasha_orders

当 Kai 在 Kai 工作区中手动触发执行时,Dataform 使用以下设置执行其内容:

  • Google Cloud 项目:analytics_dev
  • schema:dataform_kai
  • 表名称:kai_namekai_orders

准备工作

  1. 在 Google Cloud 控制台中,前往 Dataform 页面。

    转到 Dataform 页面

  2. 选择或创建代码库

  3. 可选:要替换默认的 Google Cloud 项目,请授予您的 Dataform 服务账号访问权限 您计划使用的 Google Cloud 项目。

所需的角色

如需获取创建工作区编译替换所需的权限, 请让管理员向您授予 针对代码库的 Dataform Admin (roles/dataform.admin) IAM 角色。 如需详细了解如何授予角色,请参阅管理访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

创建工作区编译替换

如需创建 Dataform 工作区编译替换,请按以下步骤操作:

  1. 在您的代码库中,转到设置
  2. 点击修改
  3. 工作区编译替换窗格中的 Google Cloud 项目 ID 字段中,输入 Google Cloud 项目的 ID。
  4. 表前缀字段中,为所有表名称输入一个前缀。
    1. 可选:如需为每个表创建唯一的动态表前缀 工作区,请输入 ${workspaceName} 作为表前缀。
  5. 架构后缀字段中,输入要附加到其架构的后缀 已创建的表或视图
    1. 可选:如需为每个架构创建唯一的动态架构后缀 工作区,请输入 ${workspaceName} 作为表后缀。
  6. 点击保存

Dataform 将工作区编译替换应用于以下项中的所有工作区: 代码库

修改工作区编译替换

如需修改 Dataform 工作区编译替换,请按以下步骤操作:

  1. 在您的代码库中,转到设置
  2. 点击修改
  3. 修改工作区编译替换,然后点击 Save

删除工作区编译替换

如需删除 Dataform 工作区编译替换,请按以下步骤操作:

  1. 在您的代码库中,转到设置
  2. 点击修改
  3. 工作区编译替换窗格中,点击全部清除,然后 然后点击保存

后续步骤