使用 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')}}
我们正在使用 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')}}