Решение для объемных вставок Cassandra

У меня есть программа java, запущенная как служба, эта программа должна вставлять 50 тыс. Строк / с (1 строка имеет 25 столбцов) в кластер cassandra.

Мой кластер содержит 3 узла, 1 узел имеет 4 ядра процессора (Core i5 2,4 ГГц), 4 ГБ оперативной памяти.

Я использовал Hector api, многопоточность, массовую вставку, но производительность слишком низкая, как ожидалось (около 25 тыс. строк / с).

Любой может предложить другое решение для этого. Есть ли поддержка кассандры, внутренняя объемная вставка (без использования Thrift).


person tnk_peka    schedule 06.06.2012    source источник


Ответы (3)


Astyanax - это Java-клиент высокого уровня для Apache Cassandra. Apache Cassandra - это высокодоступная база данных, ориентированная на столбцы. Astyanax в настоящее время используется в Netflix. Проблемы обычно устраняются как можно быстрее, а выпуски выпускаются часто.

https://github.com/Netflix/astyanax

person phuongdo    schedule 06.06.2012
comment
Что касается 2019 года: Astyanax больше не разрабатывается - person Michal; 09.01.2019

Мне повезло с созданием стабильных файлов и их непосредственной загрузкой. В дистрибутив включен инструмент sstableloader, а также интерфейс JMX. Вы можете создать sstables с помощью класса SSTableSimpleUnsortedWriter.

Подробности здесь.

person libjack    schedule 06.06.2012

Самый быстрый способ массовой вставки данных в Cassandra - это утилита sstableloader, предоставляемая Cassandra начиная с версии 0.8. Для этого вам нужно сначала создать sstables, что возможно с помощью SSTableSimpleUnsortedWriter, подробнее об этом описано здесь

Еще один более быстрый способ - Cassandras BulkoutputFormat для hadoop. С его помощью мы можем написать задание Hadoop для загрузки данных в cassandra. Подробнее об этом массовая загрузка в кассандру с помощью hadoo

person samarth    schedule 06.06.2012