使用 table 名称中的字符定义大查询 dbt 源?

Defining big query dbt sources with characters in table name?

查看以下两个资源后:

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

给定一个标准的 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 语句中直接使用 ` 中的代字号是成功的:

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

但在源代码中未被识别为有效的 yaml。

期望的结果类似于:

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

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

试试这个!

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 to wrap your head around what's happening here, as well as the docs for source properties,其中包含 source: 键下可用键的列表。