【发布时间】:2017-11-26 05:05:29
【问题描述】:
我是 Apache-Spark 的新手,
我需要从 Oracle 数据库中读取数百万(~500 万)条记录,然后对这些记录进行一些处理,并将处理后的记录写入文件。
目前,这是在Java中完成的,并且在这个过程中 - 数据库中的记录根据一些数据标准分为不同的子集 - 在Java进程中,4个线程并行运行 - 每个线程读取记录的子集,处理并将处理后的记录写入新文件 - 最后它将所有这些文件合并到一个文件中。
仍然需要半个小时左右才能完成整个过程。
所以我想知道,如果 Apache Spark 可以让这个过程快速从 Oracle DB 读取数百万条记录,处理这些记录,然后写入文件?
如果 Spark 可以加快这个过程,那么在我的过程中实现这一点的最佳方法是什么?另外在非集群环境下也有效吗?
感谢您的帮助。
【问题讨论】:
-
为什么不在PL/SQL中进行处理呢?消除至少一大块不必要的 I/O
-
您是否测量过当前设置的极限在哪里?是您的 Java 应用程序的处理速度,还是来自数据库的查找/传输速度?
标签: java oracle apache-spark mapreduce spark-streaming