使用 DBT 更改雪花 table 数据类型

Changing snowflake table datatype using DBT

我们正在使用 DBT 添加 table 到雪花。我们创建了一个 table,其模型类似于以下模型:

{{
config(
    materialized='table'
)
}}
select
NAME,
RIGHT(ADDRESS,6) AS PIN
FROM {{ source('PERSON','PERSON_DETAILS')}}

创建 table 时,NAME 的数据类型在 snowflake 中正确显示为 varchar(50),这是源列的数据类型。但是,PIN 的数据类型是 varchar(16777216),这是 snowflake 中 varchar 的最大大小。有什么方法可以使用 dbt 更改列大小。使用 snowflake UI 所做的更改是不够的,因为我们需要 dbt 代码将 table 移动到更高的环境。

使用显式 CAST:

...
select
    NAME,
    CAST(RIGHT(ADDRESS,6) AS VARCHAR(6)) AS PIN
FROM {{ source('PERSON','PERSON_DETAILS')}}