0

dbtjinja2相关

我正在使用union_relationsdbt_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用来调试并查看它是否真的创建了一个关系并且确实如此。有什么问题?

4

1 回答 1

3

听起来你有一个这样的宏:

{% macro my_macro(names) %}
  {% set list_of_relations = [] %}
  {% for name in names %}
    {% set relation = something(name) %}
    {% do list_of_relations.append(relation) %}
  {% endfor %}
  {{ list_of_relations }}
{% endmacro %}

而不是使用{{ list_of_relation }},你会想要{{ return(list_of_relation) }}{% do return(list_of_relation) %}。问题是{{ ... }}在 jinja 宏中将事物转换为字符串,而宏默认返回字符串。

上的文档returnhere

于 2020-07-20T17:15:39.823 回答