使用 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:
键下可用键的列表。
查看以下两个资源后:
我找不到这个问题的答案:
给定一个标准的 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:
键下可用键的列表。