小编Min*_*cho的帖子

如何运行多标签选择器

我正在使用 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

  1. 我会执行标签数组中具有质量的所有模型,无论其是单个参数还是多个参数,但我希望仅运行标记的质量。怎么做?
  2. 如何指定 2 个标签或 3 个标签选择器来运行具有上述标签的模型(即 mixpanel_tests、质量 - 但仅限那些定义了两个标签的模型)。或多或少是 AND 子句而不是 OR 子句。
    嗯,我希望它是清楚的。如何让多标签选择器只执行给定标签的组合?

dbt

9
推荐指数
1
解决办法
1万
查看次数

使用来自外部源的 dbt 进行查询

我有以下问题:

  • 我有一个 AWS S3 管道,每天都会输出一个 json.gz 文件。
  • 我希望用 dbt 将该文件放入雪花中(没有雪管使用 atm)

我已经通过创建存储集成设法做到了这一点,并且我已经使用我的角色(用于运行 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)

snowflake-cloud-data-platform dbt

2
推荐指数
1
解决办法
2061
查看次数

标签 统计

dbt ×2

snowflake-cloud-data-platform ×1