hadoop(sqoop)加载oracle会比sqlloader更快吗?

wnavrhmk  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(446)

我们目前使用bashshell脚本和带有多线程的sqlloader的组合将cdr加载到oracle仓库。我们希望将这个过程转移到hadoop上,因为我们设想由于订户数量的增加而导致的数据量的增加将很快使当前的系统变得最大。我们还希望逐步将hadoop引入到我们的数据仓库环境中。
从hadoop加载会更快吗?如果是这样的话,最好的hadoop工具是什么?
进一步的信息:我们通常会通过ftp将contunoius流中的管道分隔文本文件放到一个文件夹中,在每个记录中再添加两个字段,加载到oracle中的temp表,然后运行一个过程加载到最终表。你会如何建议流程在使用工具方面。例如;
文件是ftp到linux文件系统(或者可以直接ftp到hadoop?),flume加载到hadoop。
添加了字段(最好的方法是什么?pig、hive、spark或任何其他建议)
然后使用sqoop将文件加载到oracle
最后一个过程被调用(sqoop可以调用oracle过程吗?如果不是,什么工具最适合执行过程并帮助控制整个过程?)
如何控制平行学习的水平?它是否等于运行作业的Map程序的数量?

ffvjumwh

ffvjumwh1#

有一个类似的任务,将数据从<6节点的hadoop集群导出到oracle数据仓库。我测试了以下内容:
sqoop公司
奥拉oop
“oracle bigdata connectors”套件中的oracle loader for hadoop
hadoop streaming job使用sqloader作为Map器,在其配置中,您可以使用以下命令从stdin读取: load data infile "-" 考虑到速度,使用sqloader作为Map器的hadoop流作业是传输数据的最快方法,但是您必须在集群的每台机器上安装sqloader。这更多的是个人的好奇心,我不建议使用这种方式来导出数据,日志功能是有限的,应该对您的数据仓库性能有更大的影响。
获胜者是sqoop,它非常可靠,是hadoop生态系统的导入/导出工具,根据我的测试,它是第二快的解决方案(比第一名慢1.5倍)
带有oraoop的sqoop(最新更新于2012年)比最新版本的sqoop慢,需要在集群上进行额外配置。
最后,最糟糕的时间是使用oracle的bigdataconnectors获得的,如果您有一个大集群(>100台机器),那么它应该不会像我获得的时间那么糟糕。出口分两步进行。第一步涉及重新处理输出并将其转换为oracle格式,该格式可以很好地处理数据仓库。第二步是将结果传输到数据仓库。如果分配了处理能力,这种方法会更好,而且不会像其他解决方案那样影响数据仓库的性能。

相关问题