Потребление памяти поколения Cassandra SSTables / доступное сжатие?

Я создаю Cassandra SSTables, используя образец массовой загрузки, представленный на веб-сайте DataStax. http://www.datastax.com/dev/blog/bulk-loading

Мой вопрос в том, сколько места на диске в идеале занимают файлы SSTable? В моем случае мой CSV-файл данных составляет 40 ГБ, а общее дисковое пространство, используемое SStables для этого конкретного файла, составляет около 250 ГБ. Есть ли что-то, чего мне не хватает при создании этих таблиц? Существуют ли какие-либо параметры сжатия для создания sstables?

Второй шаг, когда я загружаю sstables с помощью sstableloader, работает отлично, и данные доступны для запросов в CQL.

Кроме того, я хотел бы знать, существуют ли какие-либо другие методы импорта больших данных в cassandra, кроме метода массовой загрузки, о котором я упоминал выше.


person amey    schedule 15.05.2013    source источник


Ответы (1)


Прежде всего проверьте, включено ли сжатие. Как это проверить?

Если sstable сжат, он будет иметь компонент CompressionInfo.db (т. е. один из файлов, составляющих sstable, с окончанием --CompressionInfo.db). Если такого файла нет, то он не сжат.

Для получения дополнительной информации о сжатии проверьте это.

Переходя к последнему вопросу, есть другая альтернатива методу массовой загрузки, используйте команду COPY. См. документацию.

person abhi    schedule 15.05.2013
comment
Спасибо, Абхи. Я понимаю параметр сжатия, который можно указать при создании семейства столбцов; но повлияет ли это на способ создания SStables с использованием Cassandra IO API? единственные аргументы, необходимые для создания sstables, — это пространство ключей и имя семейства столбцов. Кроме того, я пробовал команду COPY ранее, но для этого требуется, чтобы CSV имел структуру в кавычках, например, aa, bb ... Можете ли вы поделиться, какие методы вы используете для загрузки данных в Cassandra? - person amey; 15.05.2013
comment
Да, это обязательно повлияет. Попробуй это и Нет, никакой другой механизм для загрузки, кроме этих двух. - person abhi; 15.05.2013
comment
@amey я не использую задания массовой загрузки. Я предпочитаю делать это вручную, используя потоки, так как мне приходится поддерживать множество столбцов счетчиков. - person abhi; 17.05.2013
comment
так вы используете Hector/Astyanax для объемных вставок? Какова производительность при этом, в том смысле, сколько времени требуется, например, для 10 ГБ данных? - person amey; 17.05.2013
comment
зависит от спецификации системы, в моем случае я могу писать до 2000 записей/ядро/секунду, так как мои записи довольно сложны. Теперь вы можете представить, сколько будет точно времени для загрузки 10 ГБ данных. - person abhi; 17.05.2013
comment
Спасибо за понимание, Абхи. Используете ли вы какой-либо клиент Cassandra, такой как Hector, для записи записей? - person amey; 18.05.2013
comment
я предпочитаю астианакс. Недавно подумывал о переходе на java-драйвер datastax, увидев его простой API. - person abhi; 18.05.2013