【问题标题】:Merge/Load same files in multiple folders in S3 into Snowflake将 S3 中多个文件夹中的相同文件合并/加载到雪花中
【发布时间】:2020-09-30 04:42:05
【问题描述】:

需要有关如何将多个文件夹中可用的相同文件加载到雪花表中的帮助。使用Snowflake Copy Command可以实现吗?

说在一个桶里我有.. a.csv 的所有文件仅在当前日期示例下 2020/06/09 将进入a_table

2020 -- 是年份,然后是月份 06,然后是日期,即 09

bucket_a
   ts
     ts_folder
         2020
           06
             08
                a.csv
                b.csv
                c.csv
                d.csv
             09
                a.csv
                b.csv
                c.csv
                d.csv

     ts_folder2
         2020
           06
             08
                a.csv
                b.csv
                c.csv
                d.csv
             09
                a.csv
                b.csv
                c.csv
                d.csv

【问题讨论】:

    标签: python-3.x amazon-s3 snowflake-cloud-data-platform snowflake-task snowflake-pipe


    【解决方案1】:

    使用以下代码实现

    SET curr_dt=(
      SELECT 
        '.*/' || 
        TO_VARCHAR(CURRENT_DATE(), 'YYYY/MM/DD') || 
        '/a\\.csv'
    )
    
    -- Referenced as a SQL variable in the PATTERN option
    COPY INTO a_table
    FROM @stage/ts/
    (PATTERN=>$curr_dt);
    

    【讨论】:

      【解决方案2】:

      Snowflake COPY INTO 语句将递归地爬取阶段中的子目录,因此您只需在 COPY INTO 语句中添加一个模式参数,如下所示:

      pattern = 'a\_date\.csv'
      

      【讨论】:

      • 感谢更新,我已经更新了原始问题。我希望所有相同的文件都属于同一日期,只需要加载那些文件。下面的命令从我不想要的所有日期文件中获取数据select $1,$2 from @stage/ts/ (file_format=>CSV_SKIP_HEADER,pattern=>'.*/file.*[.]csv');
      猜你喜欢
      • 2020-09-30
      • 2021-09-05
      • 2020-09-27
      • 2017-06-18
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      相关资源
      最近更新 更多