我们目前使用bash shell脚本和具有多个线程的SQL loader的组合将CDR加载到Oracle仓库中。我们希望将这一过程转移给我们,因为我们设想由于用户群的增加而导致的数据增加将很快使当前系统最大化。我们还希望逐步将hadoop引入我们的数据仓库环境。
从hadoop加载会更快吗?
如果是这样,什么是最好的hadoop工具集?
更多信息:
我们通常将通过ftp将管道分隔的文本文件的contunoius流发送到一个文件夹,再向每个记录添加两个字段,在oracle中加载到临时表,并运行一个过程以加载到最终表。您将如何使用工具来建议流程。例如;
另外,如何控制平行度?它等于运行作业的映射器的数量吗?
最佳答案
具有将数据从<6节点Hadoop集群导出到Oracle Datewarehouse的类似任务。
我已经测试了以下内容:
load data infile "-"
仅考虑速度,使用sqloader作为映射器的Hadoop流作业是传输数据的最快方法,但是您必须在群集的每台计算机上安装sqloader。这更多是出于个人好奇,我不建议您使用这种方式导出数据,日志功能有限,并且应该对您的数据仓库性能产生更大的影响。
根据我的测试,获胜者是Sqoop,它相当可靠,它是Hadoop生态系统的导入/导出工具,是第二快的解决方案(比第一名慢1.5倍)
使用OraOop的Sqoop(最新更新于2012年)比最新版本的Sqoop慢,并且需要在群集上进行额外的配置。
最终,使用Oracle的BigData连接器获得了最差的时间,如果您有一个大型群集(> 100台计算机),那么它的时间应该不比我获得的时间差。导出过程分两个步骤。第一步涉及重新处理输出并将其转换为与Datawarehouse配合使用的Oracle格式。第二步是将结果传输到数据仓库。如果您具有处理能力,那么这种方法会更好,并且不会像其他解决方案那样影响Datawarehouse的性能。
关于oracle - hadoop(sqoop)加载oracle的速度会比SQL loader快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28906462/