Keyspace (распределенное хранилище данных)

Цифровой объект, объединяющий все семейства столбцов проекта.
Пример пространства ключей с несколькими семействами столбцов.

Пространство ключей (или пространство ключей ) в хранилище данных 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>                                  

Ссылки

  1. ^ Рональд Матис (2010-03-18). "Установка и использование Apache Cassandra с Java Часть 2 (модель данных): Пространства ключей". Sodeso - Software Development Solutions. Архивировано из оригинала 2014-02-03 . Получено 2011-03-28 . Пространства ключей снова довольно просты, с точки зрения СУРБД вы можете сравнить это со своей схемой, обычно у вас есть одно на приложение. Пространство ключей содержит ColumnFamilies. Обратите внимание, однако, что нет никакой связи между ColumnFamilies. Это просто отдельные контейнеры.
  2. ^ "Обзор: Терминология/Сокращения: Пространство ключей". Cassandra Wiki. Архивировано из оригинала 2013-07-23 . Получено 2011-03-31 . [Пространство ключей] Содержит несколько семейств столбцов.
  3. ^ Арин Саркисян (2010-08-23). ​​"WTF is a SuperColumn? An Intro to the Cassandra Data Model". Блог Арина Саркисяна. Архивировано из оригинала 2010-12-31 . Получено 2011-03-25 . Keyspace — это самая внешняя группировка ваших данных. Все ваши ColumnFamily находятся внутри Keyspace. Ваше Keyspace, вероятно, будет названо в честь вашего приложения.
  4. ^ Гай Харрисон (2010-08-23). ​​"Игра с Cassandra и Oracle". Терминология в NoSQL. Guy Harrison's Web bits . Получено 2011-03-25 . В Cassandra:
    • Пространство ключей похоже на схему
    • ColumnFamily примерно похож на таблицу
    Это может сбивать с толку, поскольку каждая база данных NoSQL использует термины, отличные от терминов RDBMS.
  5. ^ Фейгин и др. (2009). «Расширяемое хеширование — быстрый метод доступа к динамическим файлам». ACM Transactions on Database Systems . 41 (3): 315–344 .
  6. ^ Фу и др. «Проблемы безопасности и решения протоколов управления ключами в многоадресной ретрансляционной сети». Труды IEICE по коммуникациям . 94 (5): 1295–1302 .
  • Cassandra – Начало работы (Java)
Retrieved from "https://en.wikipedia.org/w/index.php?title=Keyspace_(distributed_data_store)&oldid=1174309151"