- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Big Query 中,我使用外部连接/联合 SQL 查询 (cloudSQL),我可以通过 SELECT * FROM EXTERNAL_QUERY("gcp-name.europe-west3.friendly_name", "SELECT * FROM database_name.external_table;")
现在我的问题是,在 DBT 中,我如何在我的 schema.yml 文件中定义这个源以及我的 FROM {{source(...,...)}}
语句应该如何定义看起来像?
最佳答案
从我的角度来看,现在给出我对 dbt-external-tables
当前状态的上述评论包(我认为这不能满足您的需求),我会说您有两个选择:
将您的外部依赖项定义为自定义架构中的静态 View ,然后导入为 dbt 源。
使用类似 Evaluate(<select *>)
的方式在 dbt 中定义您的外部依赖项然后 ref()
那些在你的转换/阶段层中正常的。
#1 的例子
* my-bq-project-id
|
|_ dbt_schema
|
|_ external_db_schema
|
|_ external_table_1
|_ external_table_2
等然后你会:
* my-dbt-project-dir
|
|_ analysis
|_ data
|_ models
| |_ sources
| | |
| | |> my_external_table_1.yml
| | |> my_external_table_2.yml
| |
| |_ transforms
| |_ final
|_ dbt_project.yml
|_ readme.md
“my_external_table_1.yml”看起来像:
sources:
- name: external_db_schema
database: my-bq-project-id
tables:
- name: my_external_table_1
description: "Lorem Ipsum"
并且您的静态 View 是通过运行如下查询来定义的:
create view if not exists `my-bq-project-id.external_db_schema.my_external_table_1` as
( SELECT * FROM EXTERNAL_QUERY("gcp-name.europe-west3.friendly_name",
"SELECT * FROM database_name.external_table;"))
#2 的例子
只需制作一个基本级别的 dbt 模型,它完全符合您在 1-1 对象映射上所描述的内容:
my_external_table_1.sql
execute immediate (
SELECT * FROM EXTERNAL_QUERY("gcp-name.europe-west3.friendly_name",
"SELECT * FROM database_name.external_table;")
)
然后从这里您将能够ref('my_external_table_1')
在你的转换层等等。
关于google-bigquery - 如何从 Big Query EXTERNAL_QUERY 配置 DBT 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68273481/
我是一名优秀的程序员,十分优秀!