我们可以在DBT中创建一个新表吗?我们能否使用DBT将数据库中dev环境中存在的表结构复制到另一个环境中?
发布于 2022-07-10 16:49:57
是。但是,Dbt需要一个“理由”来创建表,例如,实现其模型之一生成的数据。DBT不能仅仅为了创建而创建表。
严格地说,您可以通过将CREATE TABLE...放在一个前钩或后钩部分来实现这一点,但是我想这不是您想要的,因为dbt在这里没有任何区别。
您可以在资料来源中定义已存在的表,在该表中可以设置数据库、架构和表名,这与dbt写入数据的目标存储空间不同。然后,定义一个模型,比如:
{{ materialized="table" }}
select *
from {{ source('your_source', 'existed_table_name') }}
limit 1 /* add "limit 1" if you only want the structure */ 在profiles.yml中放置必要的连接凭据,并构建模型。在免费创建模型表之前,Dbt将从源表复制一行到模型表。
https://stackoverflow.com/questions/72907860
复制相似问题