gpt4 book ai didi

dbt - 如何使用 DBT 验证查询?

转载 作者:行者123 更新时间:2023-12-05 05:58:51 30 4
gpt4 key购买 nike

我正在将 DBT 0.19.2 与 DBT-Spark 一起使用,我想知道是否有一种方法可以验证某些最终“语法错误”的查询。假设一个查询引入了一个拼写错误,例如 zelect * from... 而不是 select * from...。如果我只运行 dbt compile,这不会被发现,因为只考虑了 Jinja 编译阶段。

查看查询是否有效的唯一方法,据我所知,它正在使用 dbt run,它实际上会将查询转发到 Spark 服务器,运行它并最终因拼写错误而崩溃。

有没有其他方法可以在不运行查询的情况下发现这样的错误?

最佳答案

@随机化,

从根本上说,您的要求听起来像是:“在运行 sql 功能之前,我可以使用什么来纠正/错误检查它。”

从根本上说,这不是 dbt 的意思。它是 sql 语句的转换引擎。不是 Lint 。如果我们查找 linterlinting 的定义,您会发现如下内容:

Linting is a process by a linter program that analyzes source code in a particular programming language and flag potential problems like syntax.

因此,从 dbt 产品的角度严格回答您的问题,我怀疑 dbt 会考虑在他们的项目范围内进行 linting。

相反,我建议查看一些可能更适合您的环境/ide 等的 SQL linter 的 google 结果。例如。

这样的工具如何捕获您所描述的错误的示例如下:

SQLFluff Sandbox Example

但这很快就变成了“工具推荐”对话,我会将其从 stack-overflow 重定向到更合适的地点,例如:

编辑:另外,不要试图以任何方式居高临下!只是想为可能不熟悉 linters、解析器等的非技术背景人员(dbt 社区有很多!)提供一个简单的入口。

编辑 2:作为本周 dbt Coalesce 年度 session 的一部分 - Fivetran,ELT 提供商发布了 language server extension对于 visual studio 代码,它从 BigQuery 仓库/适配器开始提供上述一些请求的功能。希望明年能构建和发布更多适配器(包括 spark)?

关于dbt - 如何使用 DBT 验证查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68345371/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com