Hadoop 将数据从HDFS直接移动到RDS

Hadoop 将数据从HDFS直接移动到RDS,hadoop,bigdata,amazon-rds,elastic-map-reduce,Hadoop,Bigdata,Amazon Rds,Elastic Map Reduce,背景:我正在从事一个web项目,以公开存储在本地MSSQL数据库中的分析数据。数据库定期更新。EMR集群负责使用自定义配置单元脚本处理来自S3的原始数据,并将分析结果保存回S3。每次更新数据库时,都会启动EMR,并将分析文件从S3下载到本地驱动器,然后导入SQL Server表。当前数据流为: S3->HDFS/Hive->S3->本地驱动器->数据库表 因此,我们将把DB服务器移动到AWS,使这个过程自动化并更快。我们希望新的数据流是: S3->HDFS/Hive->RDS 配置单元脚本非常复

背景:我正在从事一个web项目,以公开存储在本地MSSQL数据库中的分析数据。数据库定期更新。EMR集群负责使用自定义配置单元脚本处理来自S3的原始数据,并将分析结果保存回S3。每次更新数据库时,都会启动EMR,并将分析文件从S3下载到本地驱动器,然后导入SQL Server表。当前数据流为:

S3->HDFS/Hive->S3->本地驱动器->数据库表

因此,我们将把DB服务器移动到AWS,使这个过程自动化并更快。我们希望新的数据流是:

S3->HDFS/Hive->RDS

配置单元脚本非常复杂,我们必须使用它。配置单元无法将RDS用作外部表的存储位置。我查看了数据管道,但它需要使用S3作为中间存储,并且需要大量的设置。我还了解了如何创建一个自定义map/reduce作业,该作业通过JDBC连接RDS并进行导入。如果这是一个好的解决方案,我愿意学习自定义映射器/还原器


我的问题是,什么样的解决方案易于配置(我们需要根据日期更新不同的表),具有较小的学习曲线(C#/SQL shop和EMR新手,时间限制),高效(没有不必要的数据移动),并且能够扩展以实现HDFS/Hive->RDS?

您考虑过使用Sqoop吗?它是专门为处理Hadoop和结构化数据存储之间的数据传输而设计的。您的流程可能会变成S3->HDFS/Hive->Sqoop->RDSY您可以使用oozie自动执行此过程,oozie可以在指定时间启动scoop来转换数据。谢谢@brandon.bell!Sqoop看起来非常有趣。我会试试的。我也读过。这似乎是最终的解决方案,因为您可以将任何存储处理程序注入到配置单元DDL中。(使用Stored By子句和supress Location子句)。考虑到我的预算,我将首先评估Sqoop。@akhilgupta,我正在使用EMR,我想我只是在“运行配置单元脚本”步骤之后安排一个“运行Sqoop”步骤。如果我以后有日程安排的需要,我会去oozie看看。谢谢你提供的信息。