本文档介绍了如何在对 BigQuery 执行查询之前,在 Dataform 工作区中预览 SQL 查询的输出。
Dataform 中的查询预览简介
当您使用 Dataform core 在 SQLX 或 JavaScript 文件中开发查询时,Dataform 会将查询实时编译为 SQL。如需在将已编译的 SQL 查询执行到 BigQuery 之前测试其输出,您可以在 Dataform 工作区中运行该查询的预览。
当您运行查询预览时,Dataform 会在 BigQuery 中运行作业,以在临时目标表中执行已编译的查询,并在工作区中显示查询结果。您可以先检查查询的输出,然后再触发执行以将表发布到 BigQuery。包含预览查询的临时表会在最多 24 小时内自动删除。如需详细了解 BigQuery 作业,请参阅 BigQuery 作业简介。
在 Dataform 中运行查询预览会在 BigQuery 中产生费用。如需详细了解 BigQuery 价格,请参阅 BigQuery 价格。
在查询预览期间,Dataform 使用您的用户凭据在 BigQuery 中运行作业。但是,在工作流执行期间,Dataform 会使用您的服务帐号凭据在 BigQuery 中创建或更新资源。
Dataform 会在工作区的查询结果面板中显示在当前浏览器会话期间预览的所有查询的结果。在查询结果面板中,您可以查看有关在当前浏览器会话期间预览的每个查询的以下信息:
- 作业信息
- BigQuery 作业 ID
- 运行预览的用户
- 运行作业的位置(取自您的
dataform.json
文件) - BigQuery 作业的创建、开始时间和结束时间
- BigQuery 作业的持续时间
- 处理的字节数
- 在 BigQuery 中结算的字节数
- 作业优先级
- 在查询中使用旧版 SQL
- 查询的临时目标表
- 查询结果
- 查询输出的 JSON 表示法
此外,在查询结果面板中,您还可以导航到每个预览查询的源文件,然后导航到 BigQuery Studio 以查看预览作业。
准备工作
所需的角色
如需获取在 Dataform 工作区中预览查询所需的权限,请让管理员向您授予以下 IAM 角色:
-
工作区上的 Dataform Editor (
roles/dataform.editor
) -
项目的 BigQuery Job User (
roles/bigquery.jobUser
)
如需详细了解如何授予角色,请参阅管理访问权限。
预览查询
如需在执行前在 Dataform 中检查查询结果,请在工作区中运行查询预览。如果当前修改的文件包含多个查询,请选择您要预览的查询。一次只能预览一个查询。
对于带有断言的表,运行预览略有不同。如需了解详情,请参阅预览包含断言的表。
如需在 Dataform 工作区中预览 SQL 查询和查看查询结果,请按以下步骤操作:
- 在 Files 窗格中,展开
definitions/
。 - 选择 SQLX 或 JavaScript 文件。
- 点击运行。
- 如果文件包含多个查询,请从下拉列表中选择要预览的查询。
- 在查询结果面板中检查预览结果。
- 如需检查作业详情,请选择作业信息标签页。
- 如需检查查询结果,请选择结果标签页。
- 如需查看查询的 JSON 输出,请选择 JSON 标签页。
- 如需在 SQL 工作区中查看预览作业,请依次点击 更多菜单 > 在 SQL 工作区中查看作业。
预览包含断言的表
在包含断言的 SQLX 表定义文件中,您可以预览表创建查询和定义的断言查询。
Dataform 会将表定义查询视为默认查询。如需预览表创建查询,请点击工作区中的运行。如需预览断言查询,您需要在 Run 按钮旁边的下拉菜单中选择该查询。一次只能预览一个查询。
如需在 Dataform 工作区中使用断言预览表定义文件中的查询,请按以下步骤操作:
- 在 Files 窗格中,展开
definitions/
。 - 选择包含断言的表的定义文件。
- 运行预览:
- 如需预览表创建查询,请点击运行。
- 如需预览断言查询,请点击 Run 旁边的下拉图标,然后选择要预览的查询。
- 在查询结果面板中检查预览结果。
- 如需检查作业详情,请选择作业信息标签页。
- 如需检查查询结果,请选择结果标签页。
- 如需查看查询的 JSON 输出,请选择 JSON 标签页。
- 如需在 SQL 工作区中查看预览作业,请依次点击 更多菜单 > 在 SQL 工作区中查看作业。
后续步骤
- 如需详细了解 BigQuery 价格,请参阅 BigQuery 价格。
- 如需详细了解 Dataform 价格,请参阅价格。
- 如需详细了解 Dataform 中的工作区,请参阅工作区开发简介。
- 如需了解如何使用断言测试表查询,请参阅使用断言测试表。