Экспорт большого количества данных из Cassandra в CSV
Я использую Cassandra 2.0.9 для хранения довольно больших объемов данных, допустим, 100Gb, в одном семействе столбцов. Я бы хотел быстро экспортировать эти данные в CSV. Я пробовал:
- sstable2json - он создает довольно большие файлы json, которые трудно разобрать - поскольку инструмент помещает данные в одну строку и использует сложную схему (например, файл данных 300 Мб = ~ 2 Гб json), требуется много времени, чтобы свалить, и Кассандра любит менять имена исходных файлов по своему внутреннему механизму.
- COPY - вызывает таймауты на довольно быстрых экземплярах EC2 для большого количества записей
- CAPTURE - как указано выше, вызывает тайм-ауты
- читает с разбивкой на страницы. Я использовал timeuuid для него, но он возвращает около 1,5 тыс. записей в секунду
Я использую экземпляр Amazon Ec2 с быстрым хранением, 15 ГБ ОЗУ и 4 ядрами
Есть ли лучший вариант для экспорта гигабайт данных из Cassandra в CSV?
Ответы
Ответ 1
Потому что использование COPY будет довольно сложным, когда вы пытаетесь экспортировать таблицу с миллионами строк из Cassandra, поэтому я сделал это, чтобы создать простой инструмент для получения фрагмента данных с помощью фрагмента (paginated) из таблицы cassandra и экспорта это в CSV.
Посмотрите на мое примерное решение, используя java-библиотеку из datastax.