2013-07-29 2 views
0

Я пытаюсь создать платформу для теста, который я запускаю для клиента, который включает Cassandra в качестве базы данных для массовой загрузки с пропускной способностью. Существует огромное количество показателей (временных рядов) для хранения и вычисления каждой метрики, которая должна храниться как семейство CQLTable/Column.
Первая проблема заключается в том, что создание их всех (~ 10M метрики) занимает несколько дней (работает 4-узловой куб). Я попытался использовать executemany (python cql) для наращивания, но «время обслуживания» латентности примерно одинаково. Может ли кто-нибудь посоветовать лучший способ сделать это?Cassandra Create Table/CF latency

ответ

0

Вам не следует создавать отдельное семейство столбцов для каждого - семейства столбцов 10M слишком много, поскольку для каждого CF используются фиксированные ресурсы.

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

create table metrics (
    metric text, 
    day timestamp, 
    time timestamp, 
    value text, 
    primary key ((metric, day)) 
); 

На следующий день поле там шард метрики от дня, так что не все они в конечном итоге в той же строке для заданной метрики.