etl过程

x4shl7ld  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(361)

我需要创建一个etl过程,该过程将提取、转换并从sqlserver的多个示例中加载100多个表,每天并行地加载到oracle的多个示例中。我知道我可以用java创建多个线程来实现这一点,但是如果所有线程都在同一台机器上运行,这种方法就无法扩展。另一种方法是获取一堆ec2示例&开始为不同ec2示例上的每个示例传输表。不过,使用这种方法,我必须通过在池中添加/删除机器来考虑“弹性”。
不知何故,我认为我可以使用“amazon emr上的ApacheSpark”来实现这一点,但在过去,我只使用spark来处理hdfs/hive上的数据,所以不确定将数据从一个db传输到另一个db是否是spark的一个好用例—或者—是吗?

agxfikkp

agxfikkp1#

从上一个问题开始:“不确定将数据从一个db传输到另一个db是否是spark的好用例”:
它在jdbc spark连接器的限制范围内。有一些限制,例如更新中缺少支持,以及读取表时的并行性(需要按数字列拆分表)。
考虑到rdbms的io成本和整体性能,以fifo模式运行作业听起来不是个好主意。您可以提交每个作业,其中的配置需要 1/x 群集资源的 x 表格将并行处理。

相关问题