Amazon web services 将多个RDS MySQL表提取到S3

Amazon web services 将多个RDS MySQL表提取到S3,amazon-web-services,amazon-data-pipeline,Amazon Web Services,Amazon Data Pipeline,AWS数据管道比较新,因此任何帮助都将不胜感激。我已经使用管道模板RDStoS3CopyActivity来提取RDS MySQL中表的所有内容。看起来效果不错。但是还有90个表需要提取并转储到S3。我无法想象90条管道或每张桌子装一条管道 解决此任务的最佳方法是什么?如何指示管道遍历表名列表?我不确定这是否会得到响应。然而,在这个探索的早期阶段,我开发了一个管道,它似乎符合一个初步目的——从10个RDS MySQL表中提取数据,并将每个数据复制到S3上各自的子存储桶中 逻辑相当简单 为RDS M

AWS数据管道比较新,因此任何帮助都将不胜感激。我已经使用管道模板RDStoS3CopyActivity来提取RDS MySQL中表的所有内容。看起来效果不错。但是还有90个表需要提取并转储到S3。我无法想象90条管道或每张桌子装一条管道


解决此任务的最佳方法是什么?如何指示管道遍历表名列表?

我不确定这是否会得到响应。然而,在这个探索的早期阶段,我开发了一个管道,它似乎符合一个初步目的——从10个RDS MySQL表中提取数据,并将每个数据复制到S3上各自的子存储桶中

逻辑相当简单

为RDS MySQL配置连接。 通过在每个表的“选择查询”字段中指定来提取数据。 为上面的每个表删除一个复制活动和链接。它在指定的EC2实例上运行。如果您正在运行昂贵的查询,请确保选择具有足够CPU和内存的适当EC2实例。这一步将提取的转储(临时存在于ec2 tmp文件系统中)复制到下一步要设置的指定S3存储桶。 最后,指定/目标目的地。 默认情况下,提取并加载到S3存储桶的数据将以逗号分隔。如果需要以制表符分隔,则在最后一个目标S3目标中: -添加可选字段..>选择数据格式。 -创建一个新选项卡。这将出现在“其他”类别下。 -给它起个名字。我称之为标签分离。 -类型:TSV。将鼠标悬停在“类型”上可了解更多其他数据格式。 -列分隔符:\t由于类型已指定为tsv,我可以将此项留空

截图
-

如果表都在同一个RDS中,为什么不将SQLActivity管道与包含多个到S3的卸载命令的SQL语句一起使用呢


您可以只编写一个查询并使用一个管道。

我们可以在脚本字段中编写mysqldump-uroot-p schema tablename>tablename.sql而不是select*from表吗?这就是你的意思吗?@dat789哎呀。我认为你的解决方案会最有效。我读到“红移”而不是“RDS”提供了直接从S3卸载和复制选项。您的答案可能效果最好,并且看起来它在这里做了一些事情-虽然我发布的解决方案可能会起作用,但值得注意的是AWS数据管道的默认值是每个管道100个对象。你放在画布上的每一个物体都算作一个。对于我来说,每个表都是唯一的,不能并集,我必须有3个对象{rds mysql对象从表名中选择;复制对象活动;输出到S3 datanode}每个表。您可以请求AWS增加管道中允许的对象的数量,但如果要处理100多个对象,那将是一件痛苦的事情。我选择了另一种解决方案。