gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:02 24 4
gpt4 key购买 nike

我遇到了一个问题,但不确定哪种技术最适合实现它。如果你们能根据您的经验向我推荐一些,我将不胜感激。我想从 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 是数据库服务器。我正在考虑的选项,

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

提前致谢。如果有人能为我指明正确的方向或根据他/她的个人经历给我一些见解,这将帮助我做出明智的决定。

问候,-v-

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

最佳答案

除非您可以使用一些成熟的 ETL 工具(例如 Informatica PowerCenter、Pentaho Data Integration),否则我建议使用第 4 种解决方案 - 它简单明了并且性能应该不错,因为 Oracle 将处理任务中最复杂的部分.

关于python - 将大型 CSV 文件加载到 Oracle 表的技术选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13061800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com