Snowflake外部表能否使用CLUSTER BY语法?Delta表迁移遇语法错误
问题解决方法
你的SQL语法错误主要来自两个核心问题,直接调整即可:
错误原因&修正点
- Snowflake外部表不支持
CLUSTER BY:这个子句是Snowflake内部托管表的优化特性,外部表仅用来映射ADLS上的Delta文件,不需要也不能设置聚簇,直接删掉cluster by (c1)就行。 - 语法格式错误:
- 表名前的
IN是多余的,直接写db.schema.table1即可; WITH子句里的参数需要用逗号分隔,且TABLE_FORMAT = DELTA要明确指定(这是让Snowflake识别Delta格式的关键),参数顺序也要调整规范。
- 表名前的
修正后的SQL语句
CREATE EXTERNAL TABLE db.schema.table1 ( "c1" VARCHAR AS (value:"c1"::VARCHAR), "c2" NUMBER AS (value:"c2"::NUMBER) ) WITH LOCATION = '/test', REFRESH_ON_CREATE = FALSE, AUTO_REFRESH = FALSE, TABLE_FORMAT = DELTA, FILE_FORMAT = PARQUET_FORMAT;
内容的提问来源于stack exchange,提问作者Nitish
相关产品推荐
相关产品推荐

