2017-01-30 6 views
2

Мы генерируем 240 000 записей в секунду и сохраняем файл csv. Теперь мы хотим загрузить их в Кассандру.
я использовал 3 метода:улучшить производительность Массовая загрузка в cassandra

  1. sstableloader: мы генерируем sstable и использовать sstableloader команду, чтобы загрузить их, но этот метод занимает много времени, чтобы закончить и число строк в секунду: 15000

  2. JmxBulkLoader: этот метод лучше, чем sstableloader. Количество строк/с 17 000

  3. копии: не надлежащим для сыпучих и аварии при использовании

конфигурации системы:

CPU: Intel (R) Xeon (R) E5 процессора -2697 v3 @ 2,60 ГГц. 56 Сердечники
Оперативная память: 64 G
Жесткий диск:

1TB local for cassandra nodes and 
10TB in a network drive (data files stored in this hard) 

У нас есть 2 узлов в этой машине.

Спасибо.

+0

когда вы говорите JMX, что именно вы имеете в виду? Вы, кажется, довольно осведомлены по этой теме, это в значительной степени (кроме jmx, которые я не понимаю, что это такое) и написания собственного импортного приложения ... просто теоретически вы можете сгенерировать sstables непосредственно на узлах, а затем вызвать nodetool refresh, но то, что вы описали, в значительной степени это (интересный вопрос), но могут быть некоторые способы, которые я не знаю :) (как всегда) –

+0

Я полагаю, что сохранение в Cassandra будет быстрее, чем сохранение в CSV-файле. Что бы я сделал, используйте некоторый сервис кеши, например redis, а затем сохраните записи в Cassandra. – Gunwant

+0

@ MarkoŠvaljek мы используем jmx для подключения к кассандре из java-драйвера и отправки данных в cassandra. –

ответ