В этой статье есть несколько проблем. Помогите улучшить ее или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти сообщения )
|
Пространство ключей (или пространство ключей ) в хранилище данных NoSQL — это объект, который объединяет все семейства столбцов проекта. [1] [2] Это самая внешняя группировка данных в хранилище данных. [3] Она напоминает концепцию схемы в системах управления реляционными базами данных . [4] Обычно на каждое приложение приходится одно пространство ключей.
Пространство ключей может содержать семейства столбцов или суперстолбцы . Каждый суперстолбец содержит одно или несколько семейств столбцов, а каждое семейство столбцов содержит по крайней мере один столбец. Пространство ключей является наивысшей абстракцией в распределенном хранилище данных . Это имеет основополагающее значение для сохранения структурной эвристики при динамическом извлечении данных. [5] Несколько алгоритмов протокола ретрансляции интегрированы в простую структуру. [6]
Пространство ключей имеет такое же значение, как и схема в базе данных. Однако, в отличие от схемы, оно не предусматривает никакой конкретной структуры, как это известно в модели «сущность-связь», широко используемой в реляционных моделях данных . Например, содержимое пространства ключей может быть семействами столбцов, каждое из которых имеет разное количество столбцов, или даже разными столбцами. Таким образом, семейства столбцов, которые каким-то образом связаны с концепцией строки в реляционных базах данных, не предусматривают никакой фиксированной структуры. Единственное, что является одинаковым со схемой, это то, что она также содержит ряд «объектов», которые являются таблицами в системах СУРБД, а здесь — семействами столбцов или суперстолбцами.
Таким образом, в распределенных хранилищах данных вся нагрузка по обработке строк, которые могут даже меняться от обновления к обновлению хранилища данных, ложится на плечи программистов.
В качестве примера мы показываем ряд семейств столбцов в пространстве ключей. CompareWith
Ключевое слово определяет, как выполняется сравнение столбцов. В примере выбран стандарт UTF-8AsciiType
. Существуют и другие способы сравнения, такие как , BytesType
, LongType
, TimeUUIDType
.
<Keyspace Name= "DeliciousClone" > <KeysCachedFraction> 0.01 </KeysCachedFraction> < ColumnFamily CompareWith = "UTF8Type" Name= "Users" /> <ColumnFamily CompareWith= "UTF8Type" Name= "Bookmarks" /> <ColumnFamily CompareWith= "UTF8Type" Name= "Tags" /> <ColumnFamily CompareWith= "UTF8Type" Name= "UserTags" /> <ColumnFamily CompareWith= "UTF8Type" CompareSubcolumnsWith= "TimeUUIDType" ColumnType= "Super" Name= "UserBookmarks" /> </Keyspace>
Другой пример демонстрирует упрощенную модель данных клона Twitter :
< Имя пространства ключей = "TwitterClone" > <KeysCachedFraction> 0,01 </KeysCachedFraction> <ColumnFamily CompareWith = "UTF8Type" Имя = "Пользователи" /> <ColumnFamily CompareWith = " UTF8Type " Имя = " Аудиты пользователей " /> <ColumnFamily CompareWith = "UTF8Type" Имя = "Время UUIDType " ColumnType = "Super" Имя = "Отношения пользователей" /> <ColumnFamily CompareWith = "UTF8Type" Имя = "Имена пользователей" /> <ColumnFamily CompareWith = "UTF8Type" Имя = "Статусы" /> <ColumnFamily CompareWith = "UTF8Type" Имя = "Аудиты статуса" /> <ColumnFamily CompareWith = "UTF8Type" CompareSubcolumnsWith= "TimeUUIDType" ColumnType= "Super" Name= "StatusRelationships" /> </Keyspace>
Пространства ключей снова довольно просты, с точки зрения СУРБД вы можете сравнить это со своей схемой, обычно у вас есть одно на приложение. Пространство ключей содержит ColumnFamilies. Обратите внимание, однако, что нет никакой связи между ColumnFamilies. Это просто отдельные контейнеры.
[Пространство ключей] Содержит несколько семейств столбцов.
Keyspace — это самая внешняя группировка ваших данных. Все ваши ColumnFamily находятся внутри Keyspace. Ваше Keyspace, вероятно, будет названо в честь вашего приложения.
В Cassandra:
Это может сбивать с толку, поскольку каждая база данных NoSQL использует термины, отличные от терминов RDBMS.
- Пространство ключей похоже на схему
- ColumnFamily примерно похож на таблицу