将数据从RDBMs批量转移到S3的最佳方法。

问题描述 投票:0回答:1

我有一个要求,将数据(频率=每天晚上传输一次)从on-prem关系型数据库(SQL服务器)传输到AWS S3(作为csv文件,csv格式是一个要求)。数据大小在500GB左右。鉴于没有CDC,每天晚上都会复制整个数据库。

当然,我们可以想到parquet或者orc这样的格式,但是csv是我们用例中的要求。

我想过用一个JDBC链接与EMR-spark集群从on-prem RDBMs数据库导入数据,然后再将其转换为csv并发送至S3,但我不确定这是否是最理想的架构。

对于JDBC,我不知道是否有办法让几个连接(在emr-spark和sqlserver之间)并行,以加快传输速度。

这是一个VPN连接,它连接了on-prem网站和aws部分。

谁能给我建议,在尊重aws良好架构原则的前提下,有最快的传输速度的最佳方式?

amazon-s3 rdbms
1个回答
1
投票

你可以使用 AWS胶水亚马逊EMR 来连接到预置数据库,并安排spark作业,每天将数据移动到S3。我建议使用Glue来避免管理EMR集群的麻烦。


1
投票

使用apache spark来传输500gb数据是一个大忌,因为spark更多的是处理大型数据集而不是摄取。

所以这里不应该考虑AWS Glue。

现在,你可以使用AWS EMR和执行SQOOP导入到你的s3 bucket与更多的映射器的数量,因为它将极大地提高性能和500 GB数据可以在不到2小时内传输取决于你的rdbms配置。

其他工具,如果你使用AWS比可以考虑

  1. 数据迁移服务(DMS)这是一种快速可靠的日常数据传输方式,其配置也非常简单。此处.

  2. Schema Conversion Tool (SCT) 这是第二个Aws推荐的方式来移动数据从rdbms到s3。你可以使用这个转换你现有的SQL脚本redshift兼容,你也可以移动你的数据从rdbms到s3。这需要一些专业知识的设置。阅读关于它 此处.

  3. SQOOP对EMR:这是我首选的迁移数据的方式,但这将需要你SQOOP知识。如果你是舒适的SQOOP,然后选择这个选项创建你的工作作为瞬时emr集群和协调使用aws步骤函数。

希望对你有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.