2015-12-13 5 views
0

Я использую интеграцию данных Pentaho для создания преобразования из xlsx-файлов в mysql, но я не могу импортировать данные из больших файлов с помощью Excel 2007 xlsx(apache POI Straiming). Это избавляет меня от ошибок в памяти.Извлечь данные из больших файлов excel

+0

Я бы рекомендовал сначала преобразовать XLSX в CSV. Разделите CSV на 10K records-ish. Импортируйте один файл CSV за раз. Если это вызывает проблемы, разделите CSV на 1000 записей и повторите попытку. Я бы рекомендовал сначала начать этот маршрут. – zedfoxus

+0

Я успешно работал с файлами XLS, когда потоковая передача POI падает с файлами XLSX. – bolav

+0

Несмотря на доступ к большим файлам, Pentaho, похоже, исчерпал память. Вам нужно увеличить размер java-памяти, увеличив значение -Xmx, отредактировав файл spoon.bat или spoon.sh. Проверьте этот [блог] (https://anotherreeshu.wordpress.com/2014/11/27/memory-handling-in-pentaho-data-integration/) – Rishu

ответ

0

Вы попробовали этот вариант?

Расширенные настройки -> Режим Generation -> Меньше потребление памяти в режиме большой первенствует (Event

(Вы должны проверить «Read Excel2007 формат файла» первый)

0

Я бы порекомендовал вам увеличить Jvm память перед запуском преобразования. По умолчанию интеграция данных pentaho aka kettle имеет низкое распределение памяти, что может вызвать проблемы с запуском ETL с участием больших файлов. Вам нужно будет изменить значение -Xmx, чтобы оно указывало на более высокий верхний предел памяти в ложке. летучая мышь.

Если вы используете ложку в окнах и редактируете spoon.bat в строке ниже.

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

Если вы используете кухню или панорамирование, отредактируйте их на этих pan.bat или kitchen.bat соответственно. Если вы используете в linux, измените файлы .sh.