我们正在使用 DBT 将表添加到雪花。我们创建了一张表格,其模型类似于以下表格:
{{
config(
materialized='table'
)
}}
select
NAME,
RIGHT(ADDRESS,6) AS PIN
FROM {{ source('PERSON','PERSON_DETAILS')}}
创建表时,NAME 的数据类型在雪花中正确显示为 varchar(50),这是源列的数据类型。但是,PIN 的数据类型是 varchar(16777216),这是雪花中 varchar 的最大大小。有什么方法可以使用 dbt 更改列大小。使用雪花 UI 进行的更改是不够的,因为我们需要 dbt 代码才能将表移动到更高的环境。
答案 0 :(得分:1)
使用显式 CAST
:
...
select
NAME,
CAST(RIGHT(ADDRESS,6) AS VARCHAR(6)) AS PIN
FROM {{ source('PERSON','PERSON_DETAILS')}}