在 Dataform 中创建和执行 SQL 工作流

本快速入门将引导您在 Dataform 中完成以下过程来创建 SQL 工作流并在 BigQuery 中执行此工作流:

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 BigQuery and Dataform API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. 启用 BigQuery and Dataform API。

    启用 API

所需的角色

如需获取执行本教程中所有任务所需的权限,请让管理员授予您以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理访问权限

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

创建 Dataform 代码库

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

    前往 Dataform

  2. 点击 创建代码库

  3. 创建代码库页面上,执行以下操作:

    1. 代码库 ID 字段中,输入 quickstart-repository

    2. 区域列表中,选择 europe-west4

    3. 点击创建

创建并初始化 Dataform 开发工作区

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

    前往 Dataform

  2. 点击 quickstart-repository

  3. 点击 Create Development workspace

  4. Create Development workspace 窗口中,执行以下操作:

    1. 工作区 ID 字段中,输入 quickstart-workspace

    2. 点击创建

    系统会显示开发工作区页面。

  5. 点击初始化工作区

创建视图

在以下部分中,您将定义一个视图,稍后将用作表的数据源。

创建用于定义视图的 SQLX 文件

  1. Files 窗格中,点击 definitions/ 旁边的 More 菜单。

  2. 点击创建文件

  3. 创建新文件窗格中,执行以下操作:

    1. 添加文件路径字段中,输入 definitions/quickstart-source.sqlx

    2. 点击创建文件

定义视图

  1. Files 窗格中,展开定义文件夹。

  2. 点击 definitions/quickstart-source.sqlx

  3. 在文件中输入以下代码段:

    config {
      type: "view"
    }
    
    SELECT
      "apples" AS fruit,
      2 AS count
    UNION ALL
    SELECT
      "oranges" AS fruit,
      5 AS count
    UNION ALL
    SELECT
      "pears" AS fruit,
      1 AS count
    UNION ALL
    SELECT
      "bananas" AS fruit,
      0 AS count
    
  4. 点击格式

创建表

在以下部分中,您将在 SQLX 文件中定义表类型,然后编写 SELECT 语句以在同一文件中定义表结构。

创建用于表定义的 SQLX 文件

  1. Files 窗格中的 definitions/ 旁边的 更多菜单,然后选择 Create file

  2. 添加文件路径字段中,输入 definitions/quickstart-table.sqlx

  3. 点击创建文件

定义表类型、结构和依赖项

  1. Files 窗格中,展开 definitions/ 目录。

  2. 选择 quickstart-table.sqlx,然后输入以下表类型和 SELECT 语句:

    config {
      type: "table"
    }
    
    SELECT
      fruit,
      SUM(count) as count
    FROM ${ref("quickstart-source")}
    GROUP BY 1
    
  3. 点击格式

定义表类型后,Dataform 会抛出查询验证错误,因为 BigQuery 中尚不存在 quickstart-source。执行本教程后面部分所述的 SQL 工作流时,此错误解决。

向 Dataform 授予对 BigQuery 的访问权限

如需在 BigQuery 中执行工作流,Dataform 服务帐号必须具有以下必需的角色:

如需授予这些角色,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,转到 IAM 页面。

    进入 IAM 页面

  2. 点击添加

  3. 新的主账号字段中,输入您的 Dataform 服务帐号 ID。

  4. 选择角色下拉列表中,选择 BigQuery Job User 角色。

  5. 点击添加其他角色,然后在选择角色下拉列表中选择 BigQuery Data Editor 角色。

  6. 点击添加其他角色,然后在选择角色下拉列表中选择 BigQuery Data Viewer 角色。

  7. 点击保存

执行工作流

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

    前往 Dataform

  2. quickstart-workspace 页面上,点击 Start execution(开始执行)。

  3. 点击所有操作

  4. 执行窗格中,点击开始执行

    Dataform 使用默认代码库设置在名为 dataform 的 BigQuery 数据集中创建工作流的内容。

在 Dataform 中查看执行日志

  1. quickstart-repository 页面上,点击工作流执行日志

  2. 如需查看执行的详细信息,请点击最新的执行。

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

删除在 BigQuery 中创建的数据集

为避免 BigQuery 资源产生费用,请删除名为 dataform 的数据集。

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 探索器面板中,展开您的项目并选择 dataform

  3. 点击 操作菜单,然后选择删除

  4. 删除数据集对话框的字段中输入 delete,然后点击删除

删除 Dataform 开发工作区

创建 Dataform 开发工作区不会产生任何费用,但如需删除开发工作区,您可以按照以下步骤操作:

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

    前往 Dataform

  2. 点击 quickstart-repository

  3. Development workspaces 标签页中,点击 quickstart-workspace 旁的 More 菜单,然后选择 Delete

  4. 请点击删除来确认操作。

删除 Dataform 代码库

Dataform 代码库创建不会产生任何费用,但要删除此代码库,您可以按以下步骤操作:

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

    前往 Dataform

  2. 通过 quickstart-repository,点击 更多菜单,然后选择删除

  3. 删除代码库窗口中,输入代码库的名称以确认删除。

  4. 请点击删除来确认操作。

后续步骤