将模型表面模型到其他模式的宏 - dbt_utils.star()

问题描述

问题


目前在我的 CI 过程中,我正在展示为多个模式构建的特定模型。这通常是我目前的流程。

macros/surface_models.sql

{% set model_views = [] %}

{% for node in graph.nodes.values() %}
  {% if some type of filtering criteria %}
    {%- do model_tables.append( graph.node.alias ) -%}
  {% endif %}
{% endfor %}

{% for view in model_views %}
    {% set query %} 
      'create view my_other_schema.' ~ table ~ 'as (select * from initial_schema.' ~ table ~ ');' 
    {% endset %}
    {{ run_query(query) }}
{% endfor %}

虽然这有效,但如果基础表/视图的定义发生变化,从上述宏创建的视图将返回如下错误QUERY EXPECTED X COLUMNS BUT GOT Y

我可以通过使用每个查询的显式名称编写每个查询解决这个问题:

select id,updated_at from table

不是

select * from table

问题


有没有办法利用上述宏概念但使用 {{ dbt_utils.star() }} 而不是 *

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)