Snowflake:如果加载时大于列大小,如何截断数据?

Snowflake: how to truncate data if larger than column size while loading?

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

CREATE OR REPLACE FILE FORMAT 'schema."csv_file_format"'
                  TYPE = 'csv'
                  FIELD_DELIMITER = '[=10=]1'
                  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;

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

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

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

有关详细信息,请参阅 Transforming Data during dataload