我正在使用union_relations包dbt_utils(0.5.0)。
我创建了我的宏,它采用完全限定名称列表(例如database.schema.identifier)将其拆分并使用api.Relations.create (链接)创建关系并将每个关系附加到列表中。
{{ list_of_relation }}被赋予dbt_utils.union_relations(as relations=my_macro([list of fully qualified names])),它给了我一个_is_relation错误,我确实用来log调试并查看它是否确实创建了一个关系,而且确实如此。可能出什么问题了?
小智 5
听起来你有一个这样写的宏:
\n{% macro my_macro(names) %}\n {% set list_of_relations = [] %}\n {% for name in names %}\n {% set relation = something(name) %}\n {% do list_of_relations.append(relation) %}\n {% endfor %}\n {{ list_of_relations }}\n{% endmacro %}\nRun Code Online (Sandbox Code Playgroud)\n{{ list_of_relation }}您\xe2\x80\x99 将需要{{ return(list_of_relation) }}或 ,而不是使用{% do return(list_of_relation) %}。问题在于,{{ ... }}将 jinja 宏中的内容转换为字符串,而宏默认返回字符串。
有关的文档return在这里。