问题标签 [dbt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
494 浏览

dbt - 在 dbt 中指定 sql 变量

我想在我的 dbt 模型中指定这个 select 语句:

select @rowcount from <xxx table>

其中@rowcount变量定义为 int。任何人都可以建议我在 DBT 中代表这一点吗?

0 投票
2 回答
498 浏览

sql - 处理 BigQuery 中未嵌套记录导致的重复行的最佳做法?

处理来自 Facebook 的数据往往涉及处理记录,在我的例子中,所有“辣”数据都在其中。但是,有一个缺点,即大量重复行,如果处理不当,可能会导致过度报告和/或数据差异。

下面是一个用例,当与我的主要数据(来自不涉及任何取消嵌套的表)连接时,最终数字会略有差异。

使用的技术 - Facebook 数据 -> Stitch -> BigQuery -> dbt -> Google Data Studio

我通常会创建单独的模型,在其中取消嵌套记录,转换数据,然后将其加入到我的其余模型中。例如,从 ads_insights 的操作记录中获取所有网站购买转化。不过,这里有区别:


询问:

结果:row_count - 316 </p>

询问:

结果:row_count - 5612


取消嵌套后,我将使用行数据为每次转换创建列,如下所示:


最后,我会将这个模型加入到我的其他模型中。唯一的问题是这 5600 行在与其余行连接时会导致轻微差异,并且由于我已经使用行数据创建列,我不再关心未嵌套的记录数据,我可以返回到我原来的 316 行。唯一的问题是如何?有哪些技术可以帮助我清理模型?

解决方案:即使在某些时候我会像 dylanbaker 在他的回答中建议的那样聚合和分组查询中的所有字段,但差异仍然存在,在深入研究我的数据后,我发现未嵌套的查询将返回 279行,而嵌套的将返回 314。这将我的注意力集中在取消嵌套查询上,它将删除 35 行,而这 35 行恰好为空。在做了一些谷歌搜索后,我发现这篇 StackOverflow文章建议使用 LEFT JOIN UNNEST 来保留所有具有空记录值的行,而不是 CROSS JOIN UNNEST 将删除它们。

0 投票
1 回答
1121 浏览

dbt - 如何修复“无法解析”的 sqlfluff lint 错误

我收到错误L: 3 | P: 1 | PRS | Found unparsable section:

这是我调用 dbt_utils 提供的 date_spine 宏的时候。有没有人遇到过这个问题,在 sqlfluff 的宏定义中设置什么期望值?

在 dbt 中的 sqlfluff 文件中定义宏见如下:

date_spine = {% macro date_spine(datepart, start_date, end_date) %}'HERE'{% endmacro %}

0 投票
2 回答
7797 浏览

dbt - 嗨,我们如何将 select 语句定义为 dbt 中的变量?

您好我正在尝试在 dbt 中的 set 变量中定义一个 select 语句,任何人都可以建议如何将 sql 查询设置为 dbt 中的变量以及如何在下面的 CTE 中访问这些变量?

0 投票
1 回答
503 浏览

dbt - Bigquery:带有 ARRAY 字段的 dbt 种子

我想使用种子加载我在 BigQuery 上的一些小型配置表。到目前为止,我成功地做到了,但现在我有一个带有数组字段的表。我将数组放在通常的 BigQuery 格式 ["blablabla"] 中,但没有运气。我尝试在 dbt_prject.yml 中强制使用数据类型,但出现“ARRAY 不是有效值”错误。有人曾经在结构化字段中使用过播种吗?丹尼尔

0 投票
1 回答
393 浏览

command-line-interface - dbt cli run - 仅项目前或后挂钩?

有没有办法使用 dbt cli 来运行我的项目的钩子而不运行任何模型?

IE

0 投票
1 回答
610 浏览

amazon-web-services - 如何在 `~/.aws/config` 中生成 AWS 配置文件以用于 CodeBuild 项目

我正在使用一个名为的工具dbt,该工具的数据库身份验证方法使用 IAM。不幸的是,在构建 CodeBuild 项目时不存在 IAM 配置文件,因为它使用的是实例配置文件。因此,我无法连接到我的数据库。

参考这个问题,我尝试aws sts get-caller-identity在项目中运行,看看是否能够得到一些我需要返回的值,但它返回了

有人知道如何~/.aws/config在 CodeBuild 项目中生成我自己的吗?

编辑:该工具使用 boto3 在此处生成临时凭证:https ://github.com/fishtown-analytics/dbt/blob/9d00c000720d17c42a4fa08a26b75bd500cc857f/plugins/redshift/dbt/adapters/redshift/connections.py#L101-L123

但它似乎无法在 CodeBuild 项目中生成这些凭据。

编辑:

buildspec.yml

0 投票
1 回答
1205 浏览

google-bigquery - 用表名中的字符定义大查询 dbt 源?

在查看了以下两个资源后:

我无法找到这个问题的答案:

给定一个标准的 dbt 项目目录,我定义了一个sources.yml指向包含字符名称的预先存在的 bigquery 表。

sources.yml

在 ` 中使用波浪号直接从 select 语句中成功:

但在源中未被识别为有效的 yaml。

期望的结果是这样的:

编辑:根据要求更新了 source.yml: 在此处输入图像描述

0 投票
1 回答
671 浏览

dbt - 找不到适配器类型 bigquery

今天运行 dbt 时遇到问题...遇到此错误消息,无法调试问题。我昨天没有这个问题,从那以后也没有改变任何东西。

用 Homebrew 安装 dbt

0 投票
1 回答
3773 浏览

dbt - 选择器未找到“dbt 测试”的节点

我正在尝试定义一个 dbt YAML 选择器,以便我可以为一组特定的模型运行模式测试。

YAML 选择器看起来像这样:

这个选择器描述了从单个节点上游和节点联合下游的节点选择,不包括视图和物化视图(在我们的 dbt 项目中自定义)。

使用这种语法,我可以使用 成功列出此语法指定的节点,dbt ls --selector test_selector --output name并使用 成功运行指定的模型dbt run --selector test_selector,但相同的行为似乎不适用于dbt test

当我尝试dbt test --selector test_selector时,我收到输出

我希望与 类似dbt test,此命令将运行与test_selector选择中指定的模型相关的所有测试,但情况似乎并非如此。

似乎在语法概述--selector中指定了该标志,并且文档的测试选择示例部分提到“您可以使用选择器方法检查正在测试的资源的配置属性”。没有任何在测试中使用标志的例子,所以我不确定我是否遗漏了什么。应该支持这种类型的语法还是我误解了文档?谢谢!dbt test--selector