问题描述
我有一个模型 test1_scd2.sql
,它在 set_sql_header
中运行一个存储过程。适配器是 bigquery
并且我不拥有存储过程,我只需要调用它。 SP 已经过战斗测试并且运行良好。我目前正在将我们的一些管道迁移到 DBT。
-- depends on: {{ ref('ingest_table_temp') }}
-- depends on: {{ ref('test1_target_table') }}
{{ config(hours_to_expiration = 1)
}}
{% call set_sql_header(config) %}
call `{{target.schema}}`.scd2(
"{{ ref('ingest_table_temp') }}","{{ ref('test1_target_table') }}",'is_latest_flag',['submission_id'],['last_reported_dt'])
{%- endcall %}
select * from {{ ref('ingest_table_temp') }} limit 1
但在编译后的版本中,您可以看到 {{ ref('ingest_table_temp') }}
和 {{ ref('test1_target_table') }}
已被模型名称替换
call `sp`.scd2(
"`proj`.`datasn_sp`.`test1_scd2`","`proj`.`datasn_sp`.`test1_scd2`",['last_reported_dt'])
create or replace table `proj`.`sp`.`test1_scd2`
OPTIONS(
expiration_timestamp=TIMESTAMP_ADD(CURRENT_TIMESTAMP(),INTERVAL 1 hour)
)
as (
select * from `proj`.`sp`.`ingest_table_temp` limit 1
);
-- ingest_table_temp.sql
with ingest_table_temp
AS (
SELECT DATETIME(2020,01,15,00,00) ingest_ts,DATE(2020,1,15) last_reported_dt,"001" submission_id,"XXX" journal,100 views
UNION ALL SELECT DATETIME(2020,00),15),"002","XXX",150
UNION ALL SELECT DATETIME(2020,"003",500
UNION ALL SELECT DATETIME(2020,"004",200
) select * from ingest_table_temp
-- test1_target_table.sql
with test1_target_table as (
select true as is_latest_flag,* from {{ ref('ingest_table_temp')}}
where 1=2
) select * from test1_target_table
我在日志中得到的错误是:
Syntax error: Expected end of input but got keyword CREATE at [10:3]
我做了大量的研究,并在 dbt slack 频道问过,但没有运气。
有什么想法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)