雪花:如何使用特定的模式通过阶段从MS Azure加载文件?

问题描述

我需要每周将文件从MS Azure加载到Snowflake表,我想知道是否可以找到更有效的方法

例如,如果我要加载此目录中的文件:

my_folder/food/20200101.csv 
... 
my_folder/food/20201201.csv

舞台名称为 my_stage

然后,如果我想加载6月份的文件,查询将是:

select * from @my_stage (pattern => 'my_folder/food/202006.*.csv')

我的问题是,如果我要在2020年11月28日和2020年5月12日之间加载文件,该怎么办?

我当前使用的方法是这样分隔模式:

pattern => 'my_folder/food/2020112[8-9].*.csv|my_folder/food/2020113[0-1].*.csv|my_folder/food/2020120[1-5].*.csv

有没有办法让它变得更简单?如在模式中使用>;=和<;=?

谢谢,如果我的问题不清楚,请告诉我。:)


解决方案

在模式子句中,您可以使用Regex-Expression。我认为为日期范围使用正则表达式可能会变得相当复杂,而您的解决方案是最简单的。也许循环查看文件对您的情况也有帮助。

有关模式子句的详细信息:https://docs.snowflake.com/en/sql-reference/sql/copy-into-table.html#optional-parameters

相关文章