Путь к хранилищу Apache Cassandra 2.1.17

Устанавливаем новый кластер cassandra 2.1.17, и когда я создаю свое приложение KS, я вижу пути, созданные следующим образом:

<data directory>/<KS>/<CF>-<some-large-key>

С каким-то большим ключом, например:

8feb16f00fb711e7a670c3184f09fbe0
7588a2500fb711e7a670c3184f09fbe0

eta. В наших текущих кластерах 2.1.15 (с KS, созданными под v.2.0.x) используются только:

<data directory>/<KS>/<CF>

Хотите знать, почему разница?


person Steffen Winther Sørensen    schedule 23.03.2017    source источник


Ответы (1)


Это из документации по версии 3, но этот принцип применим и к 2.1 (не может попасть в сохраненную в Google версию 2.1, потому что datastax устанавливает файл роботов):

https://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlHowDataWritten.html

Давайте разберемся:

/data/data/ks1/cf1-5be396077b811e3a3ab9dc4b9ac088d/la-1-big-Data.db 

представляет файл данных.

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

Шестнадцатеричная строка, 5be396077b811e3a3ab9dc4b9ac088d в этом примере, добавляется к именам таблиц для представления уникальных идентификаторов таблиц.

почему уникальные идентификаторы таблиц?

Когда есть обновления схемы таблицы (семейства столбцов), узлы сначала должны согласовать схему новых таблиц, они используют этот uuid, чтобы узнать, в какой версии таблиц схемы хранятся. Вы можете перекрестно проверить идентификаторы uuid в именах cf с помощью следующего запроса:

select keyspace_name, table_name, id from system_schema.tables;
person Marko Švaljek    schedule 23.03.2017
comment
Спасибо за объяснение! - person Steffen Winther Sørensen; 24.03.2017