首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在DBT中的adapter.get_relation中使用Jinja变量

无法在DBT中的adapter.get_relation中使用Jinja变量
EN

Stack Overflow用户
提问于 2021-08-30 11:48:39
回答 1查看 140关注 0票数 2

我正尝试在我的adapter.get_relation中使用Jinja变量,但我无法这样做:

代码语言:javascript
复制
{% set the_var = 'amazon_full_orders_denormalized_' ~ company_uuid %}

{{ log(the_var, info=True) }}

{%- set source_relation = adapter.get_relation(
      database='282615',
      schema='airbyte_mumbai',
      identifier= the_var ) -%} 

我正在使用的命令

代码语言:javascript
复制
dbt compile --vars '{"company_uuid":"0703afd3_496b_4ed5_8e0c_594b71f4718b","dataset":"airbyte_mumbai"}' --models tag:copy_reports

变量the_var将设置为amazon_full_orders_denormalized_

代码语言:javascript
复制
Found 6 models, 0 tests, 0 snapshots, 0 analyses, 165 macros, 0 operations, 0 seed files, 0 sources, 0 exposures

17:11:08 | Concurrency: 3 threads (target='dev')
17:11:08 | 
amazon_full_orders_denormalized_
Table does not exist
17:11:08 | Done.

而我希望它被设置为amazon_full_orders_denormalized_0703afd3_496b_4ed5_8e0c_594b71f4718b

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-30 21:31:50

在dbt中使用变量有时会很困难!我认为评论者@Kay在这里是正确的,因为这里发生了三个变量:the_varcompany_uuiddataset。看起来您可能想要一个由the_varcompany_uuid连接而成的表名,您可以使用jinja的连接操作符~来实现,如下所示:

代码语言:javascript
复制
-- just for testing
{{ log(the_var, info=True) }}
{{ log(var('company_uuid'), info=True) }}
{{ log(the_var ~ var('company_uuid'), info=True) }}

-- see change to `identifier`
{%- set source_relation = adapter.get_relation(
      database='282615',
      schema='airbyte_mumbai',
      identifier= the_var ~ var('company_uuid') ) -%} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68983633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档