我需要从Aurora (MySQL)加载数据到Redshift,使用S3是可用的选项之一。我可以使用Aurora (MySQL)提取数据到S3,并使用2条语句将它们加载到Redshift:
SELECT *
FROM data_table
INTO OUTFILE S3 's3-XXX://bucket_name/aurora_files/data_table'
FORMAT CSV HEADER
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
OVERWRITE ON;
copy data_table
from 's3://bucket_name/aurora_files/data_table.part_00000'
access_key_id 'XXX'
secret_access_key 'XXX'
csv
delimiter ';'
ignoreheader 1
timeformat 'YYYY-MM-DD HH:MI:SS'
region 'XXX';这会使加载到Redshift时显式提到的单个文件枯萎,但如果我尝试使用清单加载多个文件,则会得到以下错误:
[2022-03-15 14:13:23] [XX000] ERROR: S3 path "s3-XXX://bucket_name/aurora_files/data_table.part_00000" has invalid format.
[2022-03-15 14:13:23] Detail:
[2022-03-15 14:13:23] -----------------------------------------------
[2022-03-15 14:13:23] error: S3 path "s3-XXX://bucket_name/aurora_files/data_table.part_00000" has invalid format.
[2022-03-15 14:13:23] code: 8001
[2022-03-15 14:13:23] context: Parsing S3 Bucket
[2022-03-15 14:13:23] query: 326558
[2022-03-15 14:13:23] location: s3_utility.cpp:133
[2022-03-15 14:13:23] process: padbmaster [pid=22440]
[2022-03-15 14:13:23] -----------------------------------------------返回错误的语句:
SELECT *
FROM data_table
INTO OUTFILE S3 's3-XXX://bucket_name/aurora_files/data_table'
FORMAT CSV HEADER
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
MANIFEST ON
OVERWRITE ON;
copy data_table
from 's3://bucket_name/aurora_files/data_table.manifest'
access_key_id 'XXX'
secret_access_key 'XXX'
csv
delimiter ';'
ignoreheader 1
timeformat 'YYYY-MM-DD HH:MI:SS'
region 'XXX'
manifest;有什么问题吗?
发布于 2022-03-15 16:51:33
您的清单中的文件名似乎格式不正确。
工作的s3://bucket_name/aurora_files/data_table.part_00000和
s3-eu-west-1://bucket_name/aurora_files/data_table.part_00000,这不是。
我希望您只需要删除区域说明符。
发布于 2022-03-15 19:25:16
正确的。在用于创建S3文件的命令中。不需要指定区域
INTO OUTFILE S3 's3-XXX://bucket_name/aurora_files/data_table'.只保留s3://修复清单和文件加载。
INTO OUTFILE S3 's3://bucket_name/aurora_files/data_table'.https://stackoverflow.com/questions/71482186
复制相似问题