有没有一种方法可以将基于python的挂钩与dbt一起使用
我正在使用种子数据创建jinja的动态模型,但我希望python比jinja本机提供的更具灵活性。作为比较,Django视图可以将变量注入模板
我是dbt的新手,可能处理这个问题的方法是错误的。感谢所有提供帮助或建议的人
下面是一个示例,我希望使用PythonZip,但最终使用了类似的sql逻辑。我同样需要使用python的enumerate。对于这些类型的场景,我应该只使用sql over python吗?我想大部分(如果不是全部的话)都可以通过sql实现(当涉及到这种类型的操作时,我恰好比sql更熟悉python)
当前使用sql的工作示例:
{% set mappings = dbt_utils.get_query_results_as_dict("select
CONCAT(my_field, ' AS ', my_alias) AS my_pairs FROM " ~
ref('data_seed_schema1_to_schema2') ) %}
SELECT
{% for map in mappings %}
{{',\n\t\t'.join(mappings[map]) }}
{% endfor %}
FROM my_table
——>
SELECT
fooA AS barA,
fooB AS barb
FROM my_table
所需的python示例:
{% set mappings = dbt_utils.get_query_results_as_dict("select * FROM " ~
ref('data_seed_schema1_to_schema2') ) %}
# my_zip = [f"{x} AS {y} for x, y in zip(mappings['my_field'], mappings['my_alias'])]
SELECT
{% for x in my_zip%}
{{',\n\t\t'.join(x) }}
{% endfor %}
FROM my_table
目前没有回答
相关问题 更多 >
编程相关推荐