Дизайн статической колонны Cassandra

Как статические столбцы хранятся внутри cassandra? Может ли кто-нибудь опубликовать пример, в котором обсуждается реализация дизайна статического столбца в cassandra?


person Sachin Janani    schedule 27.02.2015    source источник
comment
Я уже искал в Интернете документацию, но не могу найти никаких подробностей, связанных с внутренней структурой.   -  person Sachin Janani    schedule 28.02.2015


Ответы (1)


Почему бы нам не взглянуть на структуру таблицы со статическими столбцами на диске и не выяснить?

cqlsh:test> CREATE TABLE test (k int, v int, s int static, d int, PRIMARY KEY(k,v))

cqlsh:test> INSERT INTO test (k, v, s, d) VALUES ( 1, 1 ,20, 1 );
cqlsh:test> INSERT INTO test (k, v, s, d) VALUES ( 1, 3 ,21, 2 );
cqlsh:test> INSERT INTO test (k, v, s, d) VALUES ( 1, 2 ,21, 2 );

Выйдите из C* и запустите nodetool flush, чтобы создать наши sstables. Запустите sstable2json для файла .db, созданного в каталоге данных.

[
{"key": "1", <--- K=1 Partition
 "cells": [[":s","21",1425050917842350], <---- Our Static Column
           ["1:","",1425050906896717], < --- C=1 row
           ["1:d","1",1425050906896717], < --- C=1, D=1 value
           ["2:","",1425050917842350], < --- C=2 row
           ["2:d","2",1425050917842350], < --- C=2, D=2 value
           ["3:","",1425050912874025], <--- C=3 Row
           ["3:d","2",1425050912874025]]} <--- C=3, D=2 Value
]

Вы можете видеть, что в Cassandra этот статический столбец хранится в ячейке с заголовком «Пусто: Имя_столбца» в самом начале нашего раздела. В отличие от всех других ячеек, в имени ячейки нет информации о c (наш столбец кластеризации), поэтому все значения c по-прежнему будут изменять один и тот же статический столбец с

Дополнительные сведения о том, почему это так, см. в JIRA по адресу https://issues.apache.org/jira/browse/CASSANDRA-6561 и сообщение в блоге по адресу http://www.datastax.com/dev/blog/cql-in-2-0-6

person RussS    schedule 27.02.2015