DBT - Syntax error: Expected "(" or keyword SELECT or keyword WITH but got keyword CREATE at

DBT - Syntax error: Expected "(" or keyword SELECT or keyword WITH but got keyword CREATE at

我正在尝试在 dbt 中创建一个 sql 文件,以便使用新列更新模型

{{
    config(materialized='table'
    , retain_previous_version_flg=false
    , migrate_data_over_flg=true
)
}}

CREATE OR REPLACE TABLE {{ ref ('my_table') }} (
SELECT *, new_columns_ts TIMESTAMP
);

有没有办法直接使用 CREATE 而不必使用 SELECT 或 WITH 子句?

Syntax error: Expected "(" or keyword SELECT or keyword WITH but got keyword CREATE at [16:1]

在这种特殊情况下,您不需要使用语句 CREATE OR REPLACE TABLE 来创建物化 table。你只需要写SELECT语句。

There are no create or replace statements written in model statements. This means that dbt does not offer methods for issuing CREATE TABLE statements which can be used for source tables.

你可以看到这个example

{{
    config(materialized='table'
    , retain_previous_version_flg=false
    , migrate_data_over_flg=true
)
}}


SELECT *, new_columns_ts TIMESTAMP from ‘dataset.table’

你可以看到这个option using SQL

CREATE OR REPLACE TABLE dataset.table (
SELECT *, new_columns_ts TIMESTAMP from ‘dataset.table’
);