使用开源 Dataform CLI,您可以在 Google Cloud 外部本地初始化、编译、测试和运行 Dataform 核心。
Dataform 分发 Docker 映像,您可以使用该映像来运行等效的 Dataform CLI 命令。
Dataform CLI 支持应用默认凭据 (ADC)。借助 ADC,您可以在各种环境(例如本地开发或生产环境)中为应用提供凭据,而无需修改应用代码。如需使用 ADC,您必须先向 ADC 提供您的凭据。
准备工作
在安装 Dataform CLI 之前,请先安装 NPM。
安装 Dataform CLI
如需安装 Dataform CLI,请运行以下命令:
npm i -g @dataform/cli@^3.0.0-beta
初始化 Dataform 项目
如需初始化新的 Dataform 项目,请在项目目录中运行以下命令:
dataform init . PROJECT_NAME DEFAULT_LOCATION
请替换以下内容:
- PROJECT_NAME:您的项目的名称。
- DEFAULT_LOCATION:您希望 Dataform 写入 BigQuery 数据的区域。如需详细了解 BigQuery 区域,请参阅 BigQuery 位置。
更新 Dataform
如需更新 Dataform 框架,请更新
workflow_settings.yaml
文件中的dataformCoreVersion
,然后重新运行 NPM 安装:npm i
更新 Dataform CLI
如需更新 Dataform CLI 工具,请运行以下命令:
npm i -g @dataform/cli@^3.0.0-beta.2
创建凭据文件
Dataform 需要凭据文件才能连接到远程服务并在磁盘上创建 .df-credentials.json
文件。
如需创建凭据文件,请按以下步骤操作:
运行以下命令:
dataform init-creds
按照
init-creds
向导的指导,创建凭据文件。
创建项目
Dataform 核心 3.0.0-beta.0
或更高版本中的空 Dataform 项目具有以下结构:
project-dir
├── definitions
├── includes
└── workflow_settings.yaml
如需创建 Dataform 项目以将资产部署到 BigQuery,请运行以下命令:
dataform init PROJECT_NAME --default-project YOUR_GOOGLE_CLOUD_PROJECT_ID
请替换以下内容:
- PROJECT_NAME:您的项目的名称。
- YOUR_GOOGLE_CLOUD_PROJECT_ID:您的 Google Cloud 项目 ID。
克隆项目
如需从第三方 Git 代码库克隆现有 Dataform 项目,请按照 Git 提供商的说明进行操作。
克隆完代码库后,在克隆的代码库目录中运行以下命令:
dataform install
定义表
将定义存储在 definitions/
文件夹中。
如需定义表,请运行以下命令:
echo "config { type: 'TABLE_TYPE' } SELECT_STATEMENT" > definitions/FILE.sqlx
请替换以下内容:
- TABLE_TYPE:表的类型:
table
、incremental
或view
。 - SELECT_STATEMENT:用于定义表的
SELECT
语句。 - FILE:表定义文件的名称。
- TABLE_TYPE:表的类型:
以下代码示例在 example
SQLX 文件中定义了一个视图。
echo "config { type: 'view' } SELECT 1 AS test" > definitions/example.sqlx
定义手动断言
将定义存储在 definitions/
文件夹中。
如需定义手动断言,请运行以下命令:
echo "config { type: 'assertion' } SELECT_STATEMENT" > definitions/FILE.sqlx
请替换以下内容:
- SELECT_STATEMENT:用于定义断言的
SELECT
语句。 - FILE:自定义 SQL 操作定义文件的名称。
- SELECT_STATEMENT:用于定义断言的
定义自定义 SQL 操作
将定义存储在 definitions/
文件夹中。
如需定义自定义 SQL 操作,请运行以下命令:
echo "config { type: 'operations' } SQL_QUERY" > definitions/FILE.sqlx
请替换以下内容:
- SQL_QUERY:您的自定义 SQL 操作。
- FILE:自定义 SQL 操作定义文件的名称。
查看编译输出
Dataform 会实时编译您的代码。
如需在终端中查看编译过程的输出,请运行以下命令:
dataform compile
如需以 JSON 对象的形式查看编译过程的输出,请运行以下命令:
dataform compile --json
如需使用自定义编译变量查看编译的输出,请运行以下命令:
dataform compile --vars=SAMPLE_VAR=SAMPLE_VALUE,foo=bar
请替换以下内容:
- SAMPLE_VAR:您的自定义编译变量。
- SAMPLE_VALUE:自定义编译变量的值。
执行代码
为了执行您的代码,Dataform 会访问 BigQuery 以确定其当前状态,并相应地定制生成的 SQL。
如需执行 Dataform 项目的代码,请运行以下命令:
dataform run
如需使用自定义编译变量在 BigQuery 中执行 Dataform 项目的代码,请运行以下命令:
dataform run --vars=SAMPLE_VAR=SAMPLE_VALUE,sampleVar2=sampleValue2
请替换以下内容:
- SAMPLE_VAR:您的自定义编译变量。
- SAMPLE_VALUE:自定义编译变量的值。
如需在 BigQuery 中执行 Dataform 项目的代码并从头开始重新构建所有表,请运行以下命令:
dataform run --full-refresh
如果没有 --full-refresh
,Dataform 就会更新增量表,而无需从头开始重新构建这些表。
如需查看针对 BigQuery 当前状态量身定制的最终编译 SQL 代码,而无需在 BigQuery 中执行代码,请运行以下命令:
dataform run --dry-run
获取帮助
如需列出所有可用的命令和选项,请运行以下命令:
dataform help
如需查看特定命令的说明,请运行以下命令:
dataform help COMMAND
将 COMMAND 替换为您要了解的命令。
后续步骤
- 如需详细了解 Dataform CLI,请参阅 Dataform CLI 参考文档
- 如需详细了解 Dataform,请参阅 Dataform 概览。