ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

python – 选择将大型CSV文件加载到Oracle表的技术

2019-09-01 16:55:48  阅读:172  来源: 互联网

标签:etl sql-loader python csv smooks


我遇到了一个问题,我不确定哪个是最合适的技术来实现它.如果你们可以根据你的经验建议我,那将是有责任的.
我想从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是数据库服务器.
我正在考虑的选项,

> Smooks – 然而问题是Smooks一次序列化一个CSV并且我不能保持半烤java bean直到读取其他CSV文件,因为我冒着内存耗尽的风险bean我需要创建并保持它们完全填充之前写入磁盘作为XML.
> SQLLoader – 我可以一起跳过XML创建,并使用SQLLoader将CSV直接加载到登台表.但我不确定我是否可以.将SQL Loader中的多个CSV文件加载到更新第一个文件后的记录的相同表中.湾加载登台表时应用一些转换规则.
>用于将CSV转换为XML的Python脚本.
> SQLLoader,用于加载与CSV数据对应的一组不同的登台表,然后编写存储过程,从这组新的登台表加载实际的登台表(考虑到对现有框架的更改量,我希望避免这样的路径它需要).

提前致谢.如果有人可以指出我正确的方向或从他/她的个人经历中给我一些见解,它将帮助我做出明智的决定.

问候,
-V-

PS:CSV文件非常简单,每个文件大约有40列.对象的深度或文件之间的关系大约为2到3.

解决方法:

除非您可以使用一些完整的ETL工具(例如Informatica PowerCenter,Pentaho Data Integration),否则我建议使用第4种解决方案 – 它很简单且性能应该很好,因为Oracle将处理最复杂的任务.

标签:etl,sql-loader,python,csv,smooks
来源: https://codeday.me/bug/20190901/1784772.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有