Как вы называете модель данных DynamoDB и Cassanda? - PullRequest
9 голосов
/ 22 марта 2020

В статье DynamoDB в Википедии говорится, что DynamoDB - это база данных " key-value ". Однако, называя ее базой данных «ключ-значение», полностью упускается чрезвычайно фундаментальная особенность DynamoDB - ключа сортировки : ключи состоят из двух частей (ключа секции и ключа сортировки) и элементов с одинаковым ключом секции могут быть эффективно извлечены вместе отсортированными по ключу сортировки.

Cassandra также имеет точно такую ​​же функцию сортировки элементов внутри раздела (которую она называет «ключом кластеризации») и Cassandra Wikipedia В статье для описания используется термин хранилище широких столбцов . Однако, хотя этот термин «широкий столбец» лучше, чем «значение ключа», он все же несколько неуместен, поскольку он описывает более общую ситуацию, когда элемент может иметь очень большое количество несвязанных столбцов - не обязательно отсортированный список отдельных items.

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

1 Ответ

3 голосов
/ 23 марта 2020

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

Даже до Cassandra 3.0 CQL был просто абстракцией поверх оригинальной модели данных Thrift, и в механизме хранения не было понятия строк CQL. Это был просто отсортированный набор столбцов с составным ключом, состоящим из объединенных значений ключей кластеризации. Более подробная информация приведена в этой статье . Теперь имеется встроенная поддержка CQL в механизме хранения, которая позволяет более эффективно хранить модели данных CQL.

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

...