2017-01-25 3 views
1

Я работаю над этой новой задачей, где мой входной файл csv содержит от 200 до 300 миллионов записей. Мое требование состоит в том, чтобы сортировать входящие данные, выполнять поиск, получать ключевое значение и вставлять в целевую таблицу. Одно из предложений заключалось в том, чтобы написать java-плагин, который будет сортировать и хранить данные в нескольких файлах temp (скажем, миллион каждый) и извлекать оттуда. Я думал использовать шаг сортировки в пентахо и установить количество копий для начала. Но я не уверен, какой лучший подход. Может ли кто-нибудь предложить, как это сделать. Благодарю.Лучший способ сортировать 200-300 миллионов записей в Пентахо?

ответ

2

Я использовал PDI для сортировки этого множества строк. Шаг Sort отлично работает, и это может быть неудобно. Я установил свой «Свободный порог памяти (в%)» до ~ 50. Этот шаг будет генерировать потоки временных файлов в вашем «Sort-directory»; если сбой работы (как правило, из-за нехватки памяти), вам придется вручную удалить временные файлы.

Если бы мне пришлось это сделать снова, я бы, вероятно, установил «Сжимать файлы TMP»? поскольку множественные сбои вывели меня из дискового пространства. Удачи!

Пользовательский вид на Java может дать вам лучшую производительность, но время разработки будет значительным. Если вы собираетесь сортировать это количество строк ежедневно/еженедельно, что бы это ни было, это, вероятно, стоит того. Если нет, просто придерживайтесь PDI Sort.

+0

Я пробовал несколько тестов с шагом pentaho, он отлично работает, когда я использую шаг генератора строк, но зависает или падает, когда я использую вход cvs. Не знаю, почему. – DUnkn0wn1

+0

Возможно, из-за размера вашего набора данных. Убедитесь, что «ленивое преобразование» выключено. Попробуйте настроить настройку порога свободной памяти. –

+0

Спасибо. Это помогло. Уменьшение размера буфера также помогает. – DUnkn0wn1

Смежные вопросы