Я относительно новичок в Пентахо. Я работаю над заданием с 35 параллельными преобразованиями, каждое преобразование считывает около 1 миллиона данных из базы данных MySQL и сохраняет их в другой базе данных (MSSQL).
Но через несколько минут он выходит из строя и показывает: java.lang.OutOfMemoryError: GC overhead limit exceeded
.
Я хотел знать, как я могу упростить этот процесс и есть ли способ прочитать данные пакетным методом или я могу использовать цикл в преобразовании, чтобы данные считывались фрагментом (скажем, 5000) в каждом преобразовании .
Кроме того, как лучше всего читать большие данные из таблицы, когда так много преобразований выполняется параллельно? И как значение «Число строк в наборе строк» влияет на производительность для огромных данных.
Я попробовал кое-что из форума, но заметных улучшений не получил.
http://forums.pentaho.com/showthread.php?160467-how-to-improve-performance-of-Table-input-Table-output-step
http://forums.pentaho.com/showthread.php?85626-Kettle-4-2-0-Stable-Table-Input-does-full-table-read
http://forums.pentaho.com/showthread.php?59364-Optimum-Nr-of-Rows-in-Rowset
Пожалуйста, дайте мне знать, если я могу поделиться более подробной информацией для лучшего объяснения.
Заранее спасибо!