首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从S3到Redshift加载Aurora导出的csv文件

从S3到Redshift加载Aurora导出的csv文件
EN

Stack Overflow用户
提问于 2022-03-15 12:24:53
回答 2查看 161关注 0票数 0

我需要从Aurora (MySQL)加载数据到Redshift,使用S3是可用的选项之一。我可以使用Aurora (MySQL)提取数据到S3,并使用2条语句将它们加载到Redshift:

代码语言:javascript
复制
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时显式提到的单个文件枯萎,但如果我尝试使用清单加载多个文件,则会得到以下错误:

代码语言:javascript
复制
[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] -----------------------------------------------

返回错误的语句:

代码语言:javascript
复制
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;

有什么问题吗?

EN

回答 2

Stack Overflow用户

发布于 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,这不是。

我希望您只需要删除区域说明符

票数 2
EN

Stack Overflow用户

发布于 2022-03-15 19:25:16

正确的。在用于创建S3文件的命令中。不需要指定区域

代码语言:javascript
复制
INTO OUTFILE S3 's3-XXX://bucket_name/aurora_files/data_table'.

只保留s3://修复清单和文件加载。

代码语言:javascript
复制
INTO OUTFILE S3 's3://bucket_name/aurora_files/data_table'.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71482186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档