将 gzip 文件从 s3 提取到 Postgres 用于编码的无效字节序列 "UTF8"
ingesting gzip file from s3 to Postgres invalid byte sequence for encoding "UTF8"
我在 S3 中有一个 data.csv.gz 文件,其中某些行包含特殊字符:
该文件也没有 headers,但我在 Postgres table 中创建了列名。当我检查 S3 中的元数据时,类型是 Content-Type: binary/octet-stream
这是我看到的错误:
psycopg2.errors.InternalError_: invalid byte sequence for encoding "UTF8": 0x8b
这就是我正在做的造成错误的原因:
SELECT aws_s3.table_import_from_s3(
'btr.Ats_20210304',
'ID,NAME,WEBSITE,TYPE,CATEGORY,SUB_CATEGORY,PARENT_ACCOUNT',
'(FORMAT csv, HEADER true, DELIMITER ",")',
'vdw-dev',
'date/hourly/data_0_0_0.csv.gz',
'us-east-1');
我已经使用 SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'my_db';
检查了 postgres table 的编码,它被设置为 UTF8。
查看来自 AWS 的文档:Importing an Amazon S3 compressed (gzip) file
您需要确保 S3 文件具有以下 Amazon S3 元数据:
- 键:
Content-Encoding
- 值:
gzip
我在 S3 中有一个 data.csv.gz 文件,其中某些行包含特殊字符:
这是我看到的错误:
psycopg2.errors.InternalError_: invalid byte sequence for encoding "UTF8": 0x8b
这就是我正在做的造成错误的原因:
SELECT aws_s3.table_import_from_s3(
'btr.Ats_20210304',
'ID,NAME,WEBSITE,TYPE,CATEGORY,SUB_CATEGORY,PARENT_ACCOUNT',
'(FORMAT csv, HEADER true, DELIMITER ",")',
'vdw-dev',
'date/hourly/data_0_0_0.csv.gz',
'us-east-1');
我已经使用 SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'my_db';
检查了 postgres table 的编码,它被设置为 UTF8。
查看来自 AWS 的文档:Importing an Amazon S3 compressed (gzip) file
您需要确保 S3 文件具有以下 Amazon S3 元数据:
- 键:
Content-Encoding
- 值:
gzip