gpt4 book ai didi

java - 使用 Apache Spark 将数据从一个数据库传输到另一个数据库的 ETL 过程

转载 作者:可可西里 更新时间:2023-11-01 14:56:05 25 4
gpt4 key购买 nike

我需要创建一个 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 表。

关于java - 使用 Apache Spark 将数据从一个数据库传输到另一个数据库的 ETL 过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45706058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com