2015-12-13 124 views
0

我正在使用Pentaho数据集成创建从xlsx文件到mysql的转换,但我无法从Excel 2007 xlsx(apache POI Straiming)的大文件导入数据。它给了我内存不足的错误。从大文件中提取数据excel

+0

我建议先将XLSX转换为CSV。将CSV分成10K个记录。一次导入一个CSV文件。如果这导致问题,请将CSV分成1000个记录,然后重试。我建议首先启动该路线。 – zedfoxus

+0

当POI流式传输与XLSX文件崩溃时,我已成功使用XLS文件。 – bolav

+0

在访问大文件时,Pentaho似乎耗尽内存。您需要通过编辑spoon.bat或spoon.sh文件来增加-Xmx的值来增加java内存的大小。查看[博客](https://anotherreeshu.wordpress.com/2014/11/27/memory-handling-in-pentaho-data-integration/) – Rishu

回答

0

你试过这个选项吗?

高级设置 - >通用模式 - >更少的内存消耗大的Excel(事件模式

(你需要检查“读的Excel2007文件格式”第一)

0

我会建议你增加JVM内存在默认情况下,pentaho数据集成又名水壶内存分配较低,这会导致运行涉及大型文件的ETL时出现问题,您需要修改-Xmx值,以便指定较大的内存上限。蝙蝠

如果您在窗口中使用勺子并在下面的线条显示中编辑spoon.bat。

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xmx512m" "-XX:MaxPermSize=256m" 

如果您正在使用厨房或平底锅,请相应地编辑pan.bat或kitchen.bat。如果您在Linux中使用,请更改.sh文件。