问题标签 [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 投票
1 回答
1794 浏览

dbt - dbt pre-hooks 不能渲染/查找宏?

dbt_project.yml 模型预挂钩无法呈现宏。以下实现:

以及以下宏:

结果如下:

我知道 dbt 0.17.0 围绕 pre-hooks 存在问题,如此 slack exchange中所述。尽管我运行的是 0.17.2(不是 0.17.0),但我已经尝试按照该对话中的建议在 yml 中同时使用+pre-hook:和规范,但无济于事。pre-hook:欢迎任何见解!

编辑:解决方案

说实话,答案是如此愚蠢和明显:错误是由于拥有+pre-hooks:而不是+pre-hook:. 然而,建议的答案让我重新审视。我将其标记为正确,因为它通常为钩子提供了很多有用的上下文。干杯!

0 投票
1 回答
927 浏览

runtime-error - 安装了 dbt 并且工作正常,但是得到 db cmdlet,函数错误

问题:安装了 dbt 并创建了一个项目,定义了模型并运行了一些测试。现在在执行 dbt 时出现此错误。

dbt:术语“dbt”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。在行:1 字符:1

  • dbt run -m eve-source

系统和 IDE:Windows 10 和 VSCode Python 版本:3.7.3

dbt 在 Powershell 提示符下工作正常,但我希望它也能与 VSCode 一起工作。请帮我解决一下这个。谢谢你。

0 投票
1 回答
1503 浏览

dbt - dbt 无法创建具有相同数据库表示的两个资源

我这里的情况如下:

我的 dbt 项目中有两个模型

  1. 模型-A
  1. 模型-B

这些在与相同的模式中以增量形式实现xxx_yyy_dataset.Table_DDD

这工作正常,它正在将记录摄取到目标表中。

现在我介绍了另一种模型-model-C ind不同的封装model-C

这给了我以下错误:

我为自定义宏配置了宏,如下所示:

0 投票
2 回答
2864 浏览

macros - 在 dbt_project config-version:2 中使用宏

我们的 dbt_project.yml 文件 config-version: 1 有两个跨不同增量模型的变量,我们使用一个名为today()的宏

在测试迁移到 dbt 0.17.2, config-version:2 时,我们面临以下问题

我们去年年底构建的宏。我相信 dbt 改变了宏变量的引用方式,但不知道如何解决这个问题。

0 投票
1 回答
1845 浏览

macros - 错误地使用 dbt_utils.union_relations 但不知道如何/为什么?

所以我是一个新的 DBT 用户,超级酷的东西,但我遇到了 union_relations 宏的问题。我正在为这个函数提供关系,但编译/运行的查询没有从关系中找到任何列。

这是我正在运行的代码:

这是我收到的错误: syntax error at or near "from" LINE 1706: from __dbt__CTE__transform_hist_ca_map_stu_obj_a... ^ compiled SQL at target/run/rally_dw/conformed/conformed_student_objective_assessment.sql

基本上第一列是 DBT 生成的列,之后应该有来自关系的列,但由于某种原因,这些列没有被拉入。我想知道这是否是因为我想从中拉出关系目前是短暂的,所以没有实现,所以我想知道这是否会导致问题。这是编译后的 SQL,CTE 返回数据,但由于某种原因,它没有被拉入最后一个 CTE。

任何想法将不胜感激,谢谢!

0 投票
1 回答
2860 浏览

python - 使用 docker 和 cloud run 部署 dbt 的正确方法

我正在尝试使用 docker 容器在 Google 云运行服务上部署 dbt。跟随david vasquezdbtDocker 图像 但是当尝试将构建的图像部署到云运行时。我收到一个错误。

这是我的码头文件

我了解运行状况检查失败是因为它找不到要监听的端口,除非我在我的ENV

任何人都可以帮我解决问题吗?提前谢谢

0 投票
1 回答
1994 浏览

dbt - dbt:模型“bar”依赖于模型“foo”,该模型未找到或被禁用

我正在使用名为dbt的命令行工具。整个项目有些复杂,所以我将尝试描述基本布局。

这是我的缩写文件树;

以下是 的缩写内容dbt_project.yml。引用了两个相关 .sql 文件的目录,并且正在提取并行文件夹结构中的依赖关系。

以下是 的缩写内容baz_myinfo.sql

以下是 的缩写内容baz_mytable.sql

鉴于这一切,当我运行 dbt 命令时,我收到错误Model 'model.my_proj.baz_mytable' depends on model 'myinfo' which was not found or is disabled“我的模型都没有被禁用”。为什么 dbt 不选择依赖项?

0 投票
1 回答
145 浏览

jinja2 - 函数中的 Jinja 变量

我使用以下方法在 jinja 中定义了一个变量:

{% set my_var = 10 %}

和一个宏:

我想在我设置的变量上调用宏以获得字符串:

我试过了

但它不起作用。我不确定是否必须更改呼叫或宏。你知道我怎样才能做到这一点吗?

提前致谢!

0 投票
3 回答
411 浏览

data-warehouse - dbt 表覆盖率指标

鉴于我有一个数据仓库,其中包含从各种来源创建的各种表,其中许多表是由 dbt 创建的,我想衡量一个概念,如“dbt 表覆盖率”,我将其定义为:

这对于保持质量/完整性感非常有用,尤其是在过渡项目期间。是否有类似的 dbt 命令:

如果没有,我们如何将其添加到项目中?!

我可以采取哪些替代方法来解决问题

0 投票
2 回答
492 浏览

snowflake-cloud-data-platform - 数据湖中带时间戳的 csv 外部表的临时缓慢变化的维度具体化

问题

主要问题

如何从每日提取的文件夹中临时实现缓慢变化的维度类型 2,其中每个 csv 都是来自源系统的表的完整提取?

理由

我们正在设计临时数据仓库作为最终用户的数据集市,可以在没有任何后果的情况下启动和烧毁。这要求我们在一个湖/块/桶中拥有所有数据。

我们每天都在提取完整的提取物,因为:

  1. 我们不能可靠地仅提取变更集(出于我们无法控制的原因),并且
  2. 我们想维护一个包含“最原始”数据的数据湖。

挑战问题

有没有一种解决方案可以给我一个特定日期的状态,而不仅仅是“最新”状态?

存在问题

我是否完全倒退了这一点,并且有更简单的方法可以做到这一点?

可能的方法

自定义dbt物化

包中有一个insert_by_perioddbt 实现dbt.utils,我认为这可能正是我正在寻找的?但是我很困惑dbt snapshot,但是:

  1. dbt snapshot一次增量地为每个文件运行;和,
  2. 直接从外部表构建?

三角洲湖

我对 Databricks 的 Delta Lake 了解不多,但看起来应该可以使用Delta Tables吗?

修复提取作业

如果我们可以让我们的提取物只包含自上次提取物以来发生的变化,我们的问题就解决了吗?

例子

假设以下三个文件位于数据湖的文件夹中。(要点 3 个 csvs 和所需的表格结果为 csv)。我添加了 Extracted 列,以防从文件名中解析时间戳太棘手。

2020-09-14_CRM_extract.csv

2020-09-15_CRM_extract.csv

2020-09-16_CRM_extract.csv

最终结果

以下是截至 9 月 16 日的三个文件的 SCD-II。9/15 的 SCD-II 将是相同的,但OppId=3只有一个来自valid_from=9/15valid_to=null