【发布时间】:2021-07-15 10:52:06
【问题描述】:
我在尝试使用增量模式加载分区表时遇到了一些问题。每个分区都是基于我作为参数传递的 execution_date 变量创建的。 由于某些原因,始终使用 CurrentDate 作为分区值生成新分区。甚至将变量作为参数传递为不同的日期值。 我已经定义了一个宏来格式化通过命令行传递的变量。 请在下面找到宏的代码:
{% macro formatted_date(execution_date) %}
{% set execution_date_obj = modules.datetime.datetime.strptime(execution_date|string, "%Y%m%d") %}
{{ return(execution_date_obj.strftime("%Y-%m-%d")) }}
{% endmacro %}
以下是我如何定义用于加载表的 dbt 模型:
{{config(alias='unipr_salesforce',
materialized = 'incremental',
partitions = [formatted_date(var('execution_date'))]
)}}
最后,这是用于运行 dbt 模型的命令,您可以在其中看到用作参数的变量:
unipr-subscription-pipeline toledanof$ dbt run --target dev --profiles-dir ./ --vars 'execution_date : "20210310"'
每次我运行 dbt 模型时,生成的分区都对应于 CurrentDate,而不管 execution_date 的值。 有人知道这种行为的可能原因吗?谢谢!
【问题讨论】:
标签: google-bigquery partition dbt