ETL将大型Excel加载到Oracle DB

时间:2016-10-20 16:19:32

标签: java excel oracle etl database-administration

我的要求是将一个放在文件服务器上的大型excel文件[超过160k行数据和大约150列]加载到oracle DB表中。它有几个限制 -

  1. 两列的位置[比如说' EmpID' &安培; ' AcctNum']可能会有所不同 - 例如有时候' EmpID'可以在列A' A'但也可以在其他时间出现在列E上。因此,数据映射必须是动态的。

  2. 该文件可以在一天中的任何时间到来,并且应该在文件服务器中创建后的一小时内处理,并且一天可以有多个文件。因此,我必须在oracle中创建一些Batch [就像通过SQL Server作业运行dtsx]。

  3. 要运行批处理的操作系统是Unix。

    1. 在这里,性能必须成为一项关键挑战,所以请将其作为衡量绩效的标准。
    2. 请告知我们如何做到[最好使用免费软件/开源工具]

      谢谢&问候, ARKA

1 个答案:

答案 0 :(得分:1)

就个人而言,我会编写一个Java程序,然后可以通过Unix shell脚本调用它。 Java程序非常简单:

  • 打开试用块
  • 在autocommit中打开数据库连接,显示错误
  • 创建预备陈述
  • 逐行阅读您的文件
  • 每行
  • 标记其字段
    • 在这里你必须聪明才能处理动态字段,当然必须有规则
  • 将值放在准备好的声明中
  • 执行它
  • 到达文件末尾
  • 提交
  • 关闭尝试并打开finally块
  • 回滚

自动提交为true会加快执行速度。