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

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

准备工作

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the BigQuery and Dataform APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the BigQuery and Dataform APIs.

    Enable the APIs

所需的角色

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

  • Dataform Admin (roles/dataform.admin) - 代码库
  • Dataform Editor (roles/dataform.editor) - 工作区和工作流调用

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

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

创建 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 工作区

  4. 创建开发工作区窗口中,执行以下操作:

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

    2. 点击创建

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

  5. 点击初始化工作区

创建视图

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

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

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

  2. 点击创建文件

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

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

    2. 点击创建文件

定义视图

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

  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/ 旁边的 更多菜单,然后选择创建文件

  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。这个 错误解决。

向 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 页面上,点击开始执行

  3. 点击所有操作

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

    Dataform 使用默认代码库设置来创建 名为 dataform

在 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,然后选择删除

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

删除 Dataform 代码库

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

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

    转到 Dataform

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

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

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

后续步骤