雪花:如何使用特定的模式通过阶段从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
相关文章