【发布时间】:2020-12-08 05:24:44
【问题描述】:
首先,我是 dbt 的支持者!我喜欢这个工具和它的多功能性。
在阅读一些docs 时,我注意到每次调用宏时我都可以对我的模式进行一些元工作。
其中之一是清理架构。
(已根据 dbt slack 中的讨论进行了编辑)
-
dbt run-operation freeze将内省所有将使用 dbt run 但使用自动生成的哈希(可能只是时间戳)写入的表。它会以我选择的模式输出这些表,并将“哈希”记录到控制台。 -
dbt run-operation unfreeze --args '{hash: my_hash}'然后继续查找使用该哈希前缀写入的表并将它们从架构中清除。
【问题讨论】:
-
您能否详细说明您正在尝试使用
run_query做什么?您简要发送“清理”模式?你已经有一些内置的工具来迭代模式和表——例如grant_select_on_schemas,然后你可以把它放在一个 post run-hook 上。 -
是的,我想做一些与
grant_select_on_schemas非常相似的事情,但我不想传入架构列表,而是在宏运行时拉取架构。跨度> -
好的——你能扩展一下吗?似乎我们可以构建一个宏来可能只是对模式中的所有表或所有模式中的所有表等执行该操作。
-
@gscott,我将原始帖子编辑为更简洁的用例 - 也许这可能更好地说明我的实际目标
标签: sql database list jinja2 dbt