跨云部署下Snowflake外部表创建失败及Auto Refresh支持性咨询
问题解答
核心结论
Snowflake跨云部署场景下(比如AWS上的Snowflake账户对接GCS存储),不支持外部表的AUTO_REFRESH功能,这就是你遇到报错的直接原因。
报错原因分析
你的Snowflake账户部署在AWS,而外部表关联的stage位于GCP,属于跨云存储对接场景。此时设置AUTO_REFRESH = TRUE会触发编译错误,因为该功能仅支持Snowflake账户所在云厂商的原生存储服务(AWS账户对应S3,GCP对应GCS,Azure对应Blob Storage)。
解决方案
- 若要创建跨云外部表,需移除
AUTO_REFRESH参数,使用你的语句1即可成功创建:
CREATE OR REPLACE EXTERNAL TABLE DEV_EXT_TABLE WITH LOCATION = @XXX/dev1/metadata/ FILE_FORMAT = (TYPE = PARQUET SKIP_HEADER = 3);
- 跨云场景下,若需要同步存储中的新文件,只能通过手动刷新的方式,执行以下命令:
ALTER EXTERNAL TABLE DEV_EXT_TABLE REFRESH;
补充说明
跨云外部表本身是Snowflake支持的,但自动刷新这类依赖云厂商原生事件通知(比如S3的SNS/SQS、GCS的Pub/Sub)的功能,由于跨云环境下的事件集成限制,无法提供支持。
内容的提问来源于stack exchange,提问作者Rahul Srivastava
相关产品推荐
相关产品推荐

