Я бежал с той же проблемой и не имеют хорошее общее решение -Правильный способ передать миллионы строк из таблицы исходной базы данных в таблице базы данных назначения
Сценарий:
- У меня есть исходная таблица в базе данных (например, MS SQL Server), у которой есть несколько миллионов строк. С общей суммой данных таблицы Gb.
- Я хочу, чтобы вставить эти строки в таблицу назначения в другой системе. Это часть Я чувствую себя комфортно и, кажется, хорошо работает.
Проблема в том, что запуск одного потока для чтения всех X миллионов строк в одном select/connection всегда сталкивается с проблемами. Поэтому я хотел бы, чтобы Pentaho позволил мне сказать сделать несколько выборок и обработать строки 100K или 500K на «пакет» и продолжать обрабатывать, пока не будет больше строк.
Я могу запрограммировать простой скрипт для запуска pan.sh с именованными параметрами для стартовой строки и размера партии - это отлично работает, но мне нужно предварительно вычислить шаги сценария и фактические номера исходных строк.
В идеале я хотел бы, чтобы Pentaho установил «количество копий» и размер партии на шаге ввода таблицы, чтобы он был автоматическим!
У кого-то есть пример определения заданий, который подсчитывает количество строк для таблицы, а затем «циклирует» вызов преобразования до тех пор, пока все строки не будут обработаны? Возможно, некоторые части партий могут работать параллельно для дополнительного кредита.
Ну, это не совсем автоматизировано, но PDI может выполнять [разделение] (http://wiki.pentaho.com/display/EAI/Partitioning+data+with+PDI). Эта статья посвящена разделению после того, как вы прочитали данные. Если вы щелкните правой кнопкой мыши на шаге «Вход в таблицу», выбор разделов доступен, но я не знаю, будет ли это работать на шаге ввода таблицы. –
Это интригует - но это касается данных после того, как они были превращены в строки - как вы говорите, в идеале я хочу, чтобы разделить шаг ввода таблицы, чтобы вытащить разделы исходной таблицы. – malsmith
Будем надеяться, что @codek увидит это сообщение. –