【问题标题】:Regex Expression for Snowflake Pattern雪花图案的正则表达式
【发布时间】:2020-06-11 00:53:10
【问题描述】:

我在s3 存储桶中有一个文件列表,如下所示。我只想加载当前日期文件,例如, 我想获取 2020/06/09 下的所有 file_a.csv,同样获取相同 2020/06/09 下的所有 file_b.csv

我尝试了语法,但这让我得到了所有日期的所有文件 select metadata$filename from @stage/snflk/ts/(file_format=>CSV_SKIP_HEADER,pattern=>'.*/file_a.*[.]csv')

snflk/ts/ts-prod/2020/06/08/file_a.csv
snflk/ts/ts-prod/2020/06/09/file_a.csv
snflk/ts/ts-prod3/2020/06/08/file_a.csv
snflk/ts/ts-prod3/2020/06/09/file_a.csv
snflk/ts/ts-prod2/2020/06/08/file_a.csv
snflk/ts/ts-prod2/2020/06/09/file_a.csv
snflk/ts/ts-prod/2020/06/08/file_b.csv
snflk/ts/ts-prod/2020/06/09/file_b.csv
snflk/ts/ts-prod3/2020/06/08/file_b.csv
snflk/ts/ts-prod3/2020/06/09/file_b.csv
snflk/ts/ts-prod2/2020/06/08/file_b.csv
snflk/ts/ts-prod2/2020/06/09/file_b.csv

【问题讨论】:

    标签: regex snowflake-cloud-data-platform regex-group


    【解决方案1】:

    我只想加载当前日期文件

    .*/file_a.*[.]csv

    这会得到我所有日期的所有文件

    此处开头提供的模式 (.*) 是一个通配符,它​​将匹配所有可用的内容。

    如果您需要将日期限制为常量值,请在regular expression pattern 中指定常量值(即ts-prod.*/2020/06/09/file_a\.csvts-prod.*/2020/06/09/file_b\.csv 等):

    select
      metadata$filename
    from @stage/snflk/ts/
    (pattern=>'ts-prod.*/2020/06/09/file_a\.csv');
    

    要迭代地测试和编写您的正则表达式模式,您可以使用Regex101RegExr 等网络工具。

    P.s.如果您尝试自动执行此操作,您也可以将模式构造为use the current date dynamically

    -- Produces 'ts-prod.*/2020/06/11/file_a\.csv'
    SET curr_dt_a=(
      SELECT 
        'ts-prod.*/' || 
        TO_VARCHAR(CURRENT_DATE(), 'YYYY/MM/DD') || 
        '/file_a\\.csv'
    )
    
    -- Referenced as a SQL variable in the PATTERN option
    SELECT
      metadata$filename
    FROM @stage/snflk/ts/
    (PATTERN=>$curr_dt_a);
    

    【讨论】:

    • 谢谢,上面的正则表达式没有成功.. 做了些小改动,它工作了select metadata$filename from @stage/snflk/ts/ (pattern=>'.*/2020/06/09/file_a.csv');
    • 你的详细解释很有价值。谢谢
    • 此解决方案仅适用于特定日期。如果要加载的文件在 2 个不同的日期之间怎么办?我刚刚发布了这个问题,想知道是否可以这样做。 stackoverflow.com/questions/65622872/…
    猜你喜欢
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 2020-01-07
    • 1970-01-01
    相关资源
    最近更新 更多