【问题标题】:Snowflake: how to truncate data if larger than column size while loading?雪花:如果在加载时大于列大小,如何截断数据?
【发布时间】:2020-10-27 22:22:13
【问题描述】:

在将列数据加载到雪花表时,当列数据的大小大于列大小时,如何截断它。我正在使用文件格式进行 COPY INTO 如下:

CREATE OR REPLACE FILE FORMAT 'schema."csv_file_format"'
                  TYPE = 'csv'
                  FIELD_DELIMITER = '\001'
                  NULL_IF = ('\\N', 'NULL', 'NUL', '')
                  COMPRESSION = 'AUTO';

COPY INTO schema.table_name
FROM @EXTERNAL_STAGE/s3_prefix
FILE_FORMAT = 'schema."csv_file_format"' ON_ERROR = 'CONTINUE' PURGE = TRUE;

【问题讨论】:

    标签: snowflake-cloud-data-platform snowflake-schema


    【解决方案1】:

    CSV 数据有复制选项(ENFORCE_LENGTH、TRUNCATECOLUMNS)

    https://docs.snowflake.com/en/sql-reference/sql/copy-into-table.html#copy-options-copyoptions

    【讨论】:

      【解决方案2】:

      对于 CSV 文件,Snowflake 使用 SELECT 语句和在 COPY 命令中设置 TRUNCATECOLUMS=true|false 提供列排序、列省略。

      更多信息请参考Transforming Data during dataload

      【讨论】:

      • 感谢您的回答,TRUNCATECOLUMS 仅适用于 CSV 或任何文件格式?
      • @Vishrant 仅 CSV
      • 感谢@Zonera,这很有帮助。
      猜你喜欢
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      相关资源
      最近更新 更多