【发布时间】:2022-01-07 15:36:43
【问题描述】:
我正在尝试使用 dbt 加入和过滤两个大表。
SQL很简单,大致如下:
SELECT
u.user_id, t.transaction_id
FROM users u
JOIN transactions t ON t.user_id = u.user_id
WHERE u.active = 1
目前我正在使用“表”具体化,但这相当浪费,因为表的基础表在每次运行中都是 99.99%。
但是,我从 DBT 文档中不明白如何将此模型设置为“增量”。
有什么想法吗?
PS。我在 SQL Server 上运行。
【问题讨论】:
-
你能分享你如何知道一行是否是新的吗?表中是否有
primary_key和date_last_updated?这是你需要的第一件事。也许transaction_id是独一无二的? -
我没有。不幸的是,我们从供应商那里获取这些数据,他们保持最新的方式是他们对我们的数据库执行任意写入/更新/删除。我可以连接到数据库日志来获取这些数据,但这会很痛苦。
-
@MYK 任何一个答案都对您有帮助吗?
-
感谢您的提示。我已经接受了你的回答。我还没有尝试过,但它看起来应该可以工作。
-
太棒了,谢谢!如果您遇到更多麻烦,请回来。
标签: dbt