Snowflake数据仓库中如何使用内联文件格式从stage中查询数据

Posted

技术标签:

【中文标题】Snowflake数据仓库中如何使用内联文件格式从stage中查询数据【英文标题】:How to use inline file format to query data from stage in Snowflake data warehouse 【发布时间】:2020-08-03 17:17:07 【问题描述】:

有没有什么方法可以从具有内联文件格式的阶段查询数据而不将数据复制到表中

当使用COPY INTO table 语句时,我可以指定内联文件格式:

COPY INTO <table>
FROM (
  SELECT ...
  FROM @my_stage/some_file.csv
)
FILE_FORMAT = (
  TYPE = CSV,
  ...
);

但是,在COPY INTO 命令之外直接运行相同的选择查询时,同样的事情不起作用:

SELECT ...
FROM @my_stage/some_file.csv
(FILE_FORMAT => (
  TYPE = CSV,
  ...
));

相反,我能做的最好的就是使用预先存在的文件格式:

SELECT ...
FROM @my_stage/some_file.csv
(FILE_FORMAT => 'my_file_format');

但这不允许我在创建查询时以编程方式更改文件格式。我已经尝试了所有可能的语法变化,但现在似乎不支持。

【问题讨论】:

【参考方案1】:

我不认为这是可能的,但作为一种解决方法,您不能以编程方式创建文件格式,在 SQL 中使用该命名文件格式,然后在必要时删除它吗?

【讨论】:

这个。或者创建一堆设置的文件格式,然后以编程方式选择适合这种情况的一种。 是的,可能必须这样做。我希望有更好的解决方案。 :(

以上是关于Snowflake数据仓库中如何使用内联文件格式从stage中查询数据的主要内容,如果未能解决你的问题,请参考以下文章

如何使用小写列名以镶木地板格式从 Snowflake 中卸载数据?

将数据从 Snowflake 卸载到 txt 格式文件

从我们仓库中其他 Snowflake DB 派生的数据中使自定义表保持最新的最佳实践

从 AWS S3 复制到 <Snowflake table>

在 Snowflake 中,仓库配置是如何发生的

Snowflake 数据仓库中的模式版本控制