我遇到了一个问题,我不确定哪种方法最适合实施它。如果你们可以根据你的经验建议我,那将是有责任的。 我想从10-15个CSV文件加载数据,每个文件都是相当大的5-10 GB。通过加载数据,我的意思是将CSV文件转换为XML,然后使用此XML在Oracle中填充大约6-7个停顿表。 需要填充数据,以便XML的元素以及最终表的行来自多个CSV文件。因此对于例如元素A将具有来自CSV文件1,文件2和文件3等的子元素。
我有一个基于Apache Camel,Linux上的Jboss构建的框架。 Oracle 10G是数据库服务器。 我正在考虑的选项,
提前致谢。如果有人可以指出我正确的方向或从他/她的个人经历中给我一些见解,这将有助于我做出明智的决定。
的问候, -v -
PS:CSV文件非常简单,每个文件大约有40列。对象的深度或文件之间的关系大约为2到3个。
答案 0 :(得分:2)
除非您可以使用一些完整的ETL工具(例如Informatica PowerCenter,Pentaho Data Integration),否则我建议使用第四种解决方案 - 它很简单且性能应该很好,因为Oracle将处理任务中最复杂的部分
答案 1 :(得分:2)
在Informatica PowerCenter中,您可以导入/导出XML + 5GB ..作为Marek响应,尝试它因为工作速度非常快。here是一个简短的介绍,如果您不熟悉这个工具。
答案 2 :(得分:1)
创建一个进程/脚本,它将调用一个过程将csv文件加载到外部Oracle表,另一个脚本将其加载到目标表。
您还可以添加cron作业来调用这些脚本,这些脚本将跟踪传入的csv文件到目录中,处理它并将csv文件移动到输出/处理过的文件夹。
也可以通过记录或发送电子邮件来相应地处理例外情况。祝你好运。