【问题标题】:Copying data from AWS S3 Parquet file - limiting to just a few rows从 AWS S3 Parquet 文件复制数据 - 仅限于几行
【发布时间】:2019-10-28 18:15:14
【问题描述】:

(代表 Snowflake 用户提交 - 搜索任何可用的建议...)

从 AWS S3 Parquet 文件复制数据时,我希望根据 where 条件仅选择几行以复制到 Snowflake。我查看了以下链接(了解复制转换应该允许我在从暂存文件中选择数据时添加过滤子句):

https://docs.snowflake.net/manuals/user-guide/script-data-load-transform-parquet.html

但是,从我看到的示例中,它有助于选择几列而不是几行。我希望根据要加载的条件过滤行。


之前有人建议通过应用“Where”子句以相同的方式应用过滤器,但这似乎不是适合用户的解决方案。

有什么建议吗?

【问题讨论】:

    标签: sql snowflake-cloud-data-platform


    【解决方案1】:

    Copy 语句只支持没有 where 子句的简单 select 语句。在加载期间过滤行的唯一选项是使用限制和偏移值。

    create or replace file format sf_tut_parquet_format type = 'parquet';
    create or replace stage sf_tut_stage1 file_format = sf_tut_parquet_format;
    create or replace table prqnull1(data variant);
    copy into prqnull1 (data) from (select * from @sf_tut_stage1 limit 3 offset 2);
    

    该表包含使用以下数据构造的镶木地板数据。

    cutoff_date,name
    20081123, Ann
    20080913, Beck
    20100315, Carren
    20110817, Dave
    20161219, Emily
    

    【讨论】:

      【解决方案2】:

      据我所知,这是不可能的。您可以限制加载哪些列,但不能限制加载哪些记录。我在提供的文档链接中没有看到任何暗示您可以使用 WHERE 子句的内容。而且 COPY INTO 文档也没有提供这种能力。

      https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-table.html#type-parquet

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-26
        相关资源
        最近更新 更多