使用dbt seed向Snowflake导入CSV时VARIANT类型匹配问题
解决dbt seed导入Snowflake时VARIANT列类型报错的问题
问题根源
你碰到的报错是因为CSV里的["test"]被dbt识别成了VARCHAR字符串(实际值为["test"],长度8),而Snowflake无法直接把这类字符串隐式转换为VARIANT类型,导致插入时出现类型不匹配的问题。
解决方案:修改CSV文件格式
你需要调整CSV中SOURCES列的内容格式,让Snowflake能直接识别为JSON(VARIANT的底层格式):
- 若CSV字段无需用双引号包裹,直接写:
SOURCES ["test"] - 若CSV字段需要用双引号包裹(比如包含特殊字符),要转义内部的双引号:
SOURCES "[""test""]"
保持yml配置不变
你在properties.yml里的column_types配置是正确的,无需修改:
seeds: - name: test column_types: SOURCES: VARIANT
调整后,dbt seed执行COPY INTO操作时,Snowflake会自动将CSV中的JSON格式内容解析为VARIANT类型,报错问题即可解决。
内容的提问来源于stack exchange,提问作者user15915737
相关产品推荐
相关产品推荐

