使用 Snowflake CLI 管理 dbt Projects on Snowflake¶
备注
Snowflake CLI 中的 dbt Projects on Snowflake 功能仅在版本 3.13.0 或更高版本中可用。
You can use Snowflake CLI to manage dbt project objects with the following operations:
部署 dbt 项目对象¶
snow dbt deploy 命令将本地文件上传到临时暂存区并创建新的 dbt 项目对象,通过创建新版本对其进行更新,或者完全重新创建它。有效的 dbt 项目必须包含两个文件:
dbt_project.yml:标准 dbt 配置文件,用于指定要使用的配置文件。profiles.yml:选择使用 时默认使用的角色和仓库。dbt_project.yml中引用的 dbt 连接配置文件定义。profiles.yaml必须定义数据库、角色、架构和类型。默认情况下,dbt Projects on Snowflake 使用在您的 dbt 环境或配置文件中指定的目标架构 (
target.schema)。与 dbt Core 行为不同,在创建 dbt 项目之前,在profiles.yml文件中指定的目标架构必须存在,才能成功编译或执行。
以下示例说明了如何使用 snow dbt deploy 命令:
部署名为
jaffle_shop的 dbt 项目对象:从指定目录部署名为
jaffle_shop的项目,并创建或添加新版本,具体取决于 dbt 项目对象是否已存在:Deploy a project named
jaffle_shopfrom a specified directory using a custom profiles directory, a specific dbt version, and enabling external access integrations:Deploy a project named
jaffle_shopand set a specific version for the dbt project object:
列出所有可用的 dbt 项目对象¶
snow dbt list 命令会列出 Snowflake 上所有可用的 dbt 项目对象。
以下示例说明了如何使用 snow dbt list 命令:
列出所有可用的 dbt 项目对象:
列出
product数据库中名称以JAFFLE开头的 dbt 项目对象:
执行 dbt 项目对象命令¶
snow dbt execute 命令在 Snowflake dbt 项目对象上执行以下某项 dbt 命令 (https://docs.getdbt.com/reference/dbt-commands):
build (https://docs.getdbt.com/reference/commands/build)
compile (https://docs.getdbt.com/reference/commands/compile)
deps (https://docs.getdbt.com/reference/commands/deps)
list (https://docs.getdbt.com/reference/commands/list)
parse (https://docs.getdbt.com/reference/commands/parse)
retry (https://docs.getdbt.com/reference/commands/retry)
run (https://docs.getdbt.com/reference/commands/run)
run-operation (https://docs.getdbt.com/reference/commands/run-operation)
seed (https://docs.getdbt.com/reference/commands/seed)
show (https://docs.getdbt.com/reference/commands/show)
snapshot (https://docs.getdbt.com/reference/commands/snapshot)
test (https://docs.getdbt.com/reference/commands/test)
有关使用 dbt 命令的更多信息,请参阅 dbt 命令参考 (https://docs.getdbt.com/reference/dbt-commands)。
以下示例说明了如何使用 snow dbt execute 命令:
执行 dbt
test命令:异步执行
rundbt 命令:Execute the
rundbt command with a specific dbt version:
描述 dbt 项目对象¶
snow dbt describe 命令描述 Snowflake 上的 dbt 项目对象。
以下示例描述了 Snowflake 上名为 my_dbt_project 的 dbt 项目对象:
删除 dbt 项目对象¶
snow dbt drop 命令删除 Snowflake 上的 dbt 项目对象。
以下示例删除了 Snowflake 上名为 my_dbt_project 的 dbt 项目对象:
在 CI/CD 工作流程中使用 snow dbt 命令¶
备注
在构建 CI/CD 工作流程时,您只需要您的 git 服务器,例如 Github 和 Snowflake CLI。不需要 Git 存储库对象。
您可以使用 Snowflake CLI 运行 dbt 命令来构建 CI/CD 管道。这些管道通常用于测试新代码,例如新的提取请求,或者在某些内容合并到主分支时更新生产应用程序。
要使用 snow dbt 命令构建 CI/CD 工作流程,请执行以下步骤:
准备您的 dbt 项目:
下载您的 dbt 项目或开始一个新项目。
确保主项目目录包含
dbt_project.yml和profiles.yml文件。验证
dbt_project.yml中引用的配置文件名称是否在profiles.yml中定义。备注
Snowflake 的 dbt 项目对象不需要密码,因此,如果
profiles.yml包含任何密码,部署将停止直至密码被移除。
设置 Snowflake CLI GitHub 操作。
定义您的工作流程。
根据组织的需求确定您的工作流程需要运行哪些命令。以下示例说明了一个 CI 工作流程,该工作流程使用新文件更新名为
product_pipeline的 dbt 项目对象的版本,运行转换,最后运行测试: