繁体   English   中英

ETL过程,使用Apache Spark将数据从一个Db传输到另一个Db

[英]ETL process to transfer data from one Db to another using Apache Spark

我需要创建一个ETL流程,每天将其从多个SQLServer实例中提取,转换并加载100多个表,然后并行加载到多个Oracle实例中。 我了解可以在Java中创建多个线程来完成此操作,但是如果所有线程都在同一台计算机上运行,​​则此方法将无法扩展。 另一种方法是获取一堆ec2实例,并开始在不同的ec2实例上为每个实例传输表。 但是,使用这种方法,我将不得不通过从池中添加/删除计算机来照顾“弹性”。

我以某种方式可以使用“ Amazon EMR上的Apache Spark”来完成此操作,但是过去我仅使用Spark处理HDFS / Hive上的数据,因此不确定将数据从一个Db传输到另一个Db是否很好。 Spark的用例-或-是吗?

从最后一个问题开始: “不确定将数据从一个Db传输到另一个Db是否是Spark的一个好用例”

在JDBC spark连接器的限制内。 存在一些限制,例如缺少更新支持以及读取表时的并行性(要求通过数字列拆分表)。

考虑到IO成本和RDBMS的整体性能,在FIFO模式下运行作业听起来不是一个好主意。 您可以使用需要1/x群集资源的配置来提交每个作业,因此将并行处理x表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM