Столбец (хранилище данных)
Столбец объект распределенного хранилища данных — это NoSQL- самого низкого уровня в пространстве ключей . Это кортеж ( пара ключ-значение ), состоящий из трех элементов:
- Уникальное имя: используется для ссылки на столбец.
- Значение: содержимое столбца. Он может иметь разные типы, например
AsciiType
,LongType
,TimeUUIDType
,UTF8Type
среди других. - Временная метка : системная временная метка, используемая для определения допустимого содержимого.
Использование
[ редактировать ]Столбец используется в качестве хранилища значений и имеет метку времени, которая используется для того, чтобы отличать действительный контент от устаревшего. Согласно теореме CAP , распределенные хранилища данных не могут гарантировать согласованность , поскольку доступность и устойчивость к разделению являются более важными вопросами. Таким образом, хранилище данных или программист приложения будут использовать метку времени, чтобы определить, какие из сохраненных значений в узлах резервного копирования являются актуальными.
Некоторые хранилища данных, такие как Riak , могут использовать более сложные векторные часы вместо метки времени для разрешения устаревшей информации.
Отличия от реляционной базы данных
[ редактировать ]В реляционных базах данных столбец — это часть реляционной таблицы, которую можно увидеть в каждой строке таблицы. Это не относится к распределенным хранилищам данных, где понятие таблицы существует лишь смутно. Столбец может быть частью ColumnFamily , который в лучшем случае напоминает реляционную строку, но может появляться в одной строке, а не в других. Кроме того, количество столбцов может меняться от строки к строке, а новые обновления модели хранилища данных также могут изменять количество столбцов. Таким образом, вся работа по учёту изменений возлагается на программиста приложения.
Примеры
[ редактировать ]три определения столбцов в формате JSON Ниже приведены :
{
street: {name: "street", value: "1234 x street", timestamp: 123456789},
city: {name: "city", value: "san francisco", timestamp: 123456789},
zip: {name: "zip", value: "94107", timestamp: 123456789},
}