oracle - hadoop(sqoop)加载oracle的速度会比SQL loader快吗?

标签 oracle hadoop apache-spark data-warehouse sqoop

我们目前使用bash shell脚本和具有多个线程的SQL loader的组合将CDR加载到Oracle仓库中。我们希望将这一过程转移给我们,因为我们设想由于用户群的增加而导致的数据增加将很快使当前系统最大化。我们还希望逐步将hadoop引入我们的数据仓库环境。

从hadoop加载会更快吗?
如果是这样,什么是最好的hadoop工具集?

更多信息:
我们通常将通过ftp将管道分隔的文本文件的contunoius流发送到一个文件夹,再向每个记录添加两个字段,在oracle中加载到临时表,并运行一个过程以加载到最终表。您将如何使用工具来建议流程。例如;

  • 文件通过ftp传输到Linux文件系统(或者可以直接通过ftp传输到hadoop吗?),将水槽加载到hadoop。
  • 添加了
  • 字段(什么是最好的方法? pig , hive , Spark 或任何其他建议)
  • 然后使用sqoop 将
  • 文件加载到oracle
  • 称为最终过程(sqoop可以调用oracle过程吗?如果不是,哪种工具最适合执行过程并帮助控制整个过程?)

    另外,如何控制平行度?它等于运行作业的映射器的数量吗?
  • 最佳答案

    具有将数据从<6节点Hadoop集群导出到Oracle Datewarehouse的类似任务。
    我已经测试了以下内容:

  • Sqoop
  • OraOop
  • “Oracle BigData连接器”套件中的
  • Oracle Loader for Hadoop
  • 使用sqloader作为映射器的Hadoop流作业,在其配置中,您可以使用以下命令从stdin中读取: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/

    相关文章:

    oracle - 查询以显示数据库和数据文件中的所有表空间

    oracle - PL/SQL 开发人员导入转储

    performance - Informatica BDE 摄取作业运行 10 多个小时,终止并重新运行后 3 小时内完成

    java - 无法直接从 Spark RDD 向 Ignite 写入/保存数据

    mysql - 如何从 Spark ignite RDD 启用对持久存储的写入

    sql - 如果DDL语句崩溃,会发生什么? (Oracle数据库)

    java - Criteria查询月份和年份过滤器

    logging - 任何生成高速日志的工具或实用程序

    hadoop - 使用 Hive 查询计算 Hadoop 中连续记录之间的差异

    scala - 将 scala 数据框中的逗号分隔值拆分为多行