我正在使用 dbt 0.18.1,并且遵循有关标签的文档,但是我很想知道如何将多标签选择器作为参数运行。据此:https: //github.com/fishtown-analytics/dbt/pull/1014
混合使用标签、fqns 和父/子选择器进行选择: $ dbt run --model tag:nightly+ salesforce.*+
不幸的是,这并不是真正的“标签混合”。
我有 [mixpanel_tests,quality] 标签,并且我希望运行包含两个标签(未分开)的模型。如果我跑dbt run -m tag:quality -t blabla
我有以下问题:
我已经通过创建存储集成设法做到了这一点,并且我已经使用我的角色(用于运行 dbt)手动创建了一个架构并在该架构上分配使用情况。到现在为止还挺好。
然后我读到了这个:
https://github.com/fishtown-analytics/dbt-external-tables
问题是,这是正确运行的唯一方法,我必须更改我的 dbt profiles.yml,将默认架构设置为 S3_MIXPANEL,使用默认数据库 RAW_DEV,使用 --target 'ingest_dev' 参数运行不同的目标和角色.
我一直认为应该有一个更复杂的解决方案,我可以在其中创建模式和查询元数据并使用 {{ source() }} 这样的东西,这样我就可以以某种方式指出我的文档这是一个外部源。我认为这个 dbt-external-tables 并没有很好地解释我的情况?
请任何人都可以帮助我并分享如何在不每次更改默认架构宏和 dbtprofiles.yml 的情况下正确地从外部阶段创建架构和查询?
我已成功运行以下代码:
{{
config(
materialized ='incremental',
schema = generate_schema_name('S3_MIXPANEL')
)
}}
SELECT
metadata$filename as file_name,
to_date(SUBSTR(metadata$filename,16,10),'yyyy/mm/dd') as event_date,
$1 as payload,
CONVERT_TIMEZONE('Europe/London',TO_TIMESTAMP_tz($1:properties:mp_processing_time_ms::int / 1000)) as event_timestamp_converted,
CONVERT_TIMEZONE('Europe/London', current_timestamp) as ingested_at
from
@my_s3_stage
{% if is_incremental() %}
-- this filter will only be applied on an incremental run
WHERE …Run Code Online (Sandbox Code Playgroud)