在 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 workspace(创建开发工作区)。

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

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

    2. 点击创建

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

  5. 点击初始化工作区

创建视图

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

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

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

  2. 点击创建文件

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

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

    2. 点击创建文件

定义视图

  1. 文件窗格中,展开“definitions”文件夹。

  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. 文件窗格中,点击 definitions/ 旁边的 更多菜单,然后选择创建文件

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

  3. 点击创建文件

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

  1. 文件窗格中,展开 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 服务账号必须具有以下所需角色:

  • 对 Dataform 需要同时拥有读取和写入权限的项目的 BigQuery Data Editor。它们通常包括托管 Dataform 代码库的项目。
  • 对 Dataform 需要具有只读访问权限的项目授予 BigQuery Data Viewer 角色。
  • 托管 Dataform 代码库的项目中的 BigQuery Job User

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

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

    转到 IAM 页面

  2. 点击 Add(添加)。

  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 的 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. 开发工作区标签页中,点击 quickstart-workspace 旁边的 更多菜单,然后选择删除

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

删除 Dataform 代码库

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

  1. 在 Google Cloud 控制台中,进入 Dataform 页面。

    前往 Dataform

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

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

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

后续步骤