Я использую интеграцию данных Pentaho для создания преобразования из xlsx-файлов в mysql, но я не могу импортировать данные из больших файлов с помощью Excel 2007 xlsx(apache POI Straiming)
. Это избавляет меня от ошибок в памяти.Извлечь данные из больших файлов excel
ответ
Вы попробовали этот вариант?
Расширенные настройки -> Режим Generation -> Меньше потребление памяти в режиме большой первенствует (Event
(Вы должны проверить «Read Excel2007 формат файла» первый)
Я бы порекомендовал вам увеличить 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.
Я бы рекомендовал сначала преобразовать XLSX в CSV. Разделите CSV на 10K records-ish. Импортируйте один файл CSV за раз. Если это вызывает проблемы, разделите CSV на 1000 записей и повторите попытку. Я бы рекомендовал сначала начать этот маршрут. – zedfoxus
Я успешно работал с файлами XLS, когда потоковая передача POI падает с файлами XLSX. – bolav
Несмотря на доступ к большим файлам, Pentaho, похоже, исчерпал память. Вам нужно увеличить размер java-памяти, увеличив значение -Xmx, отредактировав файл spoon.bat или spoon.sh. Проверьте этот [блог] (https://anotherreeshu.wordpress.com/2014/11/27/memory-handling-in-pentaho-data-integration/) – Rishu