用表名中的字符定义大型查询dbt源?

问题描述

查看以下两个资源后:

我找不到这个问题的答案:

给定一个标准的dbt项目目录,我定义了一个sources.yml,它指向预先存在的包含字符名称的bigquery表。

sources.yml

version: 2

sources:
    - name: biqquery
      tables: 
        - name: `fa--task.dataset.addresses`
        - name: `fa--task.dataset.devices`
        - name: `fa--task.dataset.orders`
        - name: `fa--task.dataset.payments`

直接在选择语句中成功使用`中的波浪号:

(select * from `fa--task.dataset.orders`) 

,但在来源中未被识别为有效的Yaml。

所需的结果将类似于:

{{ sources('bigquery','`fa--task.dataset.addresses`') }}

编辑:根据要求更新了source.yml:

enter image description here

解决方法

尝试一下!

version: 2

sources:
  - name: bigquery # are you sure you want to name it this? usually we name things after the data source,like 'stripe',or 'saleforce'
    schema: dataset
    database: fa--task
    tables: 
      - name: addresses
      - name: devices
      - name: orders
      - name: payments

然后您的模型可以做到:

select * from {{ source('bigquery','addresses') }}

可能值得检查一下guide on sources来围绕这里发生的事情,以及source properties的文档,其中包含source:键下可用键的列表