如何在Snowflake中从内部命名stage导入JSON数据至多列目标表
修改后的查询语句
你可以在COPY INTO中嵌套查询语句,搭配Snowflake内置的元数据字段和时间函数实现三列同时写入,示例如下:
COPY INTO tableName (file_name, load_date, data) FROM ( SELECT METADATA$FILENAME, CURRENT_TIMESTAMP(), $1 FROM @stagename/filename.json ) FILE_FORMAT = (TYPE = 'JSON');
参数说明
METADATA$FILENAME是Snowflake提供的stage专属元数据字段,会自动返回当前加载文件的路径名称CURRENT_TIMESTAMP()返回当前加载操作的执行时间,对应load_date列的时间戳要求$1指代JSON文件的原始整行内容,会直接存入variant类型的data列- 如果你的内部stage已经预先绑定了JSON格式的文件格式,
FILE_FORMAT参数可以省略 - 如果需要批量加载stage下所有JSON文件,把
FROM后的路径改为@stagename/即可,每条记录都会自动关联对应源文件的名称
内容的提问来源于stack exchange,提问作者Faisal Shani
相关产品推荐
相关产品推荐

