Snowpipe仅加载文件首行(表头)的FILE_FORMAT配置参数咨询
要实现Snowpipe仅加载CSV文件的首行(表头),需要同时调整文件格式配置和Snowpipe对应的COPY语句参数,仅靠FILE_FORMAT无法单独实现该需求,具体配置如下:
1. 调整FILE_FORMAT配置
将原本注释的SKIP_HEADER参数显式设置为0,确保首行不会被跳过,作为普通数据行解析:
FILE_FORMAT = ( TYPE = CSV --COMPRESSION = GZIP SKIP_HEADER = 0 -- 显式指定不跳过首行,确保表头作为第一行记录加载 --FIELD_OPTIONALLY_ENCLOSED_BY = '"' VALIDATE_UTF8 = FALSE FIELD_DELIMITER = '|' ESCAPE_UNENCLOSED_FIELD = NONE DATE_FORMAT = 'YYYYMMDD' TIMESTAMP_FORMAT = 'DD.MM.YYYY HH24:MI:SS' TRIM_SPACE = TRUE );
2. 修改Snowpipe对应的COPY INTO语句
新增MAX_RECORDS_TO_LOAD = 1参数,限制每个输入文件最多仅加载1条记录,即首行表头:
CREATE OR REPLACE PIPE <你的Snowpipe名称> AUTO_INGEST = TRUE -- 自动触发场景保留该参数,按需调整 AS COPY INTO <存储表头的目标表名> FROM @<你的外部阶段路径> FILE_FORMAT = (FORMAT_NAME = <上述修改后的文件格式名称>) MAX_RECORDS_TO_LOAD = 1; -- 核心控制参数,每个文件仅加载首行
注意事项
- 建议存储表头的目标表所有字段设置为STRING类型,避免表头字段名和表字段类型不匹配导致加载失败
- 可根据需要追加
ON_ERROR = 'SKIP_FILE'参数,避免空文件或格式异常文件触发管道报错
内容的提问来源于stack exchange,提问作者Olga Labazova
相关产品推荐
相关产品推荐

