2012-06-25 2 views
4

У меня есть требование, где мне нужна база данных для хранения следующих данных:Кассандра: Колонка Семья против Супер Column семьи

- For each build, store the results of 3 performance runs. The result includes tps and latency. 

Чтения на модели Cassandra данных, это непосредственно сопоставляется супер семьями колонка из следующий формат:

BenchmarkSuperColumnFamily= { 

build_1: { 
    Run1: {1000K, 0.5ms} 
    Run2: {1000K, 0.5ms} 
    Run3: {1000K, 0.5ms} 
} 

build_2: { 
    Run1: {1000K, 0.5ms} 
    Run2: {1000K, 0.5ms} 
    Run3: {1000K, 0.5ms} 
} 
... 

} 

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

PS, я позаимствовал обозначения JSONish из следующего article

ответ

6

The StackOverflow ответ, что вы связаны правильно. Вы не должны использовать SuperColumns в новых приложениях. Однако они существуют для обратной совместимости.

В целом, составные столбцы могут использоваться для имитации любой модели, предоставляемой суперколонками. В основном, они позволяют вам разделить имена столбцов на несколько частей. Так что если вы должны были указать компаратор «CompositeType (UTF8Type, UTF8Type)», ваша модель раной данных в конечном итоге выглядит так:

BenchmarkColumnFamily= { 

    build_1: { 
     (Run1, TPS) : 1000K 
     (Run1, Latency) : 0.5ms 
     (Run2, TPS) : 1000K 
     (Run2, Latency) : 0.5ms 
     (Run3, TPS) : 1000K 
     (Run3, Latency) : 0.5ms 
    } 

    build_2: { 
     ... 
    } 
... 

} 

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

Более подробная информации о составных колоннах: http://www.datastax.com/dev/blog/introduction-to-composite-columns-part-1

+0

есть способ создать такие столбцы через Кассандру Cli? –

+0

К сожалению нет. Вы можете сделать это через api, используя одну из многочисленных клиентских библиотек. Также вы можете сделать это, используя новый интерфейс CQL и инструмент командной строки cqlsh. CQLv3 фактически абстрагирует тот факт, что вы используете составные столбцы вообще. Также CQLv3 все еще бета-версия. Дополнительная информация: http://www.datastax.com/dev/blog/whats-new-in-cql-3-0 – nickmbailey

Смежные вопросы