我如何在特定 DBT 模型的末尾 运行 一个 python 脚本,使用 config() 中的 post_hook 参数?

How can I run a python script at the end of a specific DBT model, using the post_hook param within config()?

我希望能够 运行 一个 python 脚本仅在特定 DBT 模型的末尾。 我的想法是使用该特定模型的 config() 函数中的 post_hook 参数。

有办法吗?

你今天不能这样做。 dbt 不提供 Python 运行时。

根据您部署 dbt 的方式,您可以为此使用 fal(开源或云):https://fal.ai/,或其他(更重的)编排器,如 Airflow、Dagster 或 Prefect。

您还应该知道有一个关于外部节点的活跃讨论 and/or 可执行文件暴露可以解决这个用例:https://github.com/dbt-labs/dbt-core/discussions/5073

dbt 也计划在不久的将来发布 Python-language models,但这不太可能解决这个用例; Python 将在您的 Warehouse 环境中执行,并且可能会或可能不会发出任意网络请求(例如,Snowpark 实际上只是 dataframe-python 被转译为 SQL)