【发布时间】:2021-07-17 00:48:39
【问题描述】:
我正在构建一个模型,在该模型中我根据查询结果动态引用表名和模式名。
{%- set query %}
select * from master_data.event_metadata where game='{{game_name}}'
{% endset -%}
{%- set results = run_query(query) -%}
{%- if execute %}
{%- set record = results.rows[0] -%}
{% else %}
{%- set record = [] -%}
{% endif -%}
其中两个值位于record.SCHEMA_NAME 和record.TABLE_NAME 中。我可以使用类似的东西
select
*
from
{{record.SCHEMA_NAME}}.{{record.TABLE_NAME}}
但我宁愿使用 source() 函数,这样我的文档和 DAG 就会干净。如何将 record.SCHEMA_NAME 和 record.TABLE_NAME 解析为字符串参数。我需要类似的东西
select
*
from
{{ source(record.SCHEMA_NAME, record.TABLE_NAME) }}
当我尝试运行上述程序时,出现以下错误:
Server error: Compilation Error in rpc request (from remote system)
The source name (first) argument to source() must be a string, got <class 'jinja2.runtime.Undefined'>
【问题讨论】:
-
我也遇到了同样的问题!
标签: sql jinja2 snowflake-cloud-data-platform dbt