Что такое база данных «ключ-значение»?
Базы данных «ключ‑значение»
База данных «ключ-значение» – это тип нереляционной базы данных, также известной как база данных NoSQL, в которой для хранения данных используется простой метод «ключ-значение». Это дает возможность хранить данные как совокупность пар «ключ‑значение», в которых ключ служит уникальным идентификатором. Как ключи, так и значения могут представлять собой что угодно: от простых до сложных составных объектов. Базы данных «ключ-значение» (или хранилища «ключ‑значение») поддерживают высокую разделяемость и обеспечивают беспрецедентное горизонтальное масштабирование, недостижимое при использовании других типов баз данных.
Page Topics
Каковы функции баз данных «ключ-значение»? Каковы варианты использования баз данных «ключ-значение»? Как работают базы данных «ключ-значение»? Каковы функции баз данных «ключ-значение»? Каковы ограничения баз данных «ключ-значение»? Как AWS может удовлетворить ваши требования по работе с базой данных «ключ-значение»?Каковы функции баз данных «ключ-значение»?
Open allКаковы функции баз данных «ключ-значение»?
В зависимости от выбранного решения ваше хранилище «ключ-значение» может иметь несколько дополнительных функций, перечисленных ниже.
Поддержка сложных типов данных
Хранилища «ключ-значение» поддерживают определенные типы данных, такие как целые числа и текст. Однако многие из них также могут поддерживать более сложные объекты, такие как массивы, вложенные словари, изображения, видео и полуструктурированные данные. Предоставление базе данных дополнительной информации о ваших данных позволяет увеличить объем хранилища и оптимизировать производительность запросов.
Нет необходимости в объединении таблиц
Базам данных «ключ-значение» нет необходимости выполнять ресурсоемкое объединение таблиц. Их гибкость позволяет разместить всю необходимую информацию в одной таблице. Это одна из причин, по которой хранилища «ключ-значение» работают так хорошо.
Ключи сортировки
В хранилищах «ключ-значение» можно сортировать ключи, чтобы систематизировать данные и разбивать их на разделы. Например, ключи можно отсортировать следующими образами:
- В алфавитном или цифровом порядке
- Хронологически
- По размеру данных
Рассмотрим хранилище «ключ-значение», в котором в качестве уникального ключа используется адрес электронной почты клиента. Адреса электронной почты можно сортировать в алфавитном порядке, поэтому все списки адресов электронной почты, начинающихся на буквы A-J, хранятся на сервере № 1, на K-S – на сервере № 2 и так далее.
Поддержка вторичного ключа
В некоторых хранилищах «ключ-значение» можно определить два или более разных ключа либо вторичных индекса для доступа к одним и тем же данным. Например, вы можете хранить данные клиентов по ключевым адресам электронной почты и ключевым номерам телефонов.
Репликация
Многие хранилища «ключ-значение» предлагают встроенную поддержку репликации путем автоматического копирования данных между несколькими узлами хранения. Это помогает автоматически восстанавливать данные – в случае сбоя сервера данные останутся в вашем распоряжении.
поддержка разделов;
Многие хранилища «ключ-значение» предлагают встроенную поддержку репликации путем автоматического копирования данных между несколькими узлами хранения. Это помогает автоматически восстанавливать данные – в случае сбоя сервера данные останутся в вашем распоряжении.
Поддержка ACID
Принцип ACID (атомарность, непротиворечивость, изолированность, долговечность) – это свойства базы данных, которые обеспечивают точность и надежность данных при любых обстоятельствах. Например, если вы последовательно вносите несколько изменений в данные, то атомарность требует, чтобы все изменения проходили по порядку. Если не удается одно изменение, то не удаются и все остальные.
Расширенные базы данных «ключ-значение» обеспечивают встроенную поддержку принципа ACID на стороне сервера. Благодаря этому разработчики могут удобно и без ошибок вносить изменения в большое число элементов в пределах одной или нескольких таблиц. При поддержке транзакций разработчики могут использовать возможности масштабирования, производительности и прочие корпоративные преимущества сервиса при выполнении большего числа критически важных рабочих нагрузок.
Каковы варианты использования баз данных «ключ-значение»?
Open allКаковы варианты использования баз данных «ключ-значение»?
Системы баз данных «ключ-значение» можно использовать в качестве основных для приложений или решения нишевых задач. Ниже мы приводим несколько примеров использования базы данных «ключ-значение».
Управление сессиями
Основанное на сессиях приложение (например, интернет‑приложение) запускает сессию после входа пользователя. Оно активно до тех пор, пока пользователь не выйдет из системы или не истечет время сессии. В течение этого периода приложение хранит все атрибуты пользователя, связанные с сессией, либо в основной памяти, либо в базе данных. Данные сессии пользователя могут включать информацию профиля, сообщения, индивидуальные данные и темы, рекомендации, таргетированные рекламные кампании и скидки.
Каждая сессия пользователя имеет уникальный идентификатор. Данные сессий всегда запрашиваются только по первичному ключу, поэтому для их хранения отлично подходит быстрое хранилище пар «ключ‑значение». В целом базы данных на основе пар «ключ‑значение» могут снижать накладные расходы в расчете на страницу по сравнению с реляционными базами данных.
Корзина интернет‑магазина
Сайт интернет‑магазина может получать миллиарды заказов за считанные секунды во время праздничного сезона покупок. Используя базы данных «ключ‑значение», можно обеспечить необходимое масштабирование при существенном увеличении объемов данных и чрезвычайно интенсивных изменениях состояния. Такие базы данных также позволяют одновременно обслуживать миллионы пользователей благодаря распределенной обработке и хранению данных. Хранилища «ключ‑значение» также обладают встроенной избыточностью, что позволяет справляться с потерей узлов хранилища.
Механизм хранения метаданных
Хранилище «ключ-значение» может выступать в качестве базового уровня хранения для более высоких уровней доступа к данным. Например, можно увеличить пропускную способность и возможности параллельного запуска рабочих нагрузок мультимедиа и сферы развлечений, таких как потоковая передача видео в реальном времени и интерактивный контент. Кроме того, у вас появится возможность создать собственную игровую платформу с данными игроков, историей игровых сеансов и таблицами лидеров для миллионов одновременных пользователей.
Кэширование
Для временного хранения данных с целью их быстрого извлечения можно использовать базу данных «ключ-значение». Например, приложения социальных сетей могут хранить часто используемые данные, такие как контент новостной ленты. Системы кэширования данных в памяти также используют хранилища «ключ-значение» для ускорения ответов приложений.
Как работают базы данных «ключ-значение»?
Open allКак работают базы данных «ключ-значение»?
Базы данных «ключ-значение» работают по принципу организации всех данных в виде набора пар «ключ-значение». Ключ можно рассматривать как вопрос, а значение – как ответ. В приведенном ниже примере первичный ключ состоит из двух ключей: идентификатора продукта и типа. Идентификатор продукта – это ключ с описанием секции, в которой будет храниться объект. Тип – это ключ сортировки, определяющий порядок хранения элементов на диске. Комбинация ключа секции и ключа сортировки образует уникальный первичный ключ, который соответствует одному значению в базе данных.
В этом примере книга объектов данных имеет такие атрибуты, как название, автор и дата публикации. У каждого объекта данных книги есть ключ BookID. Можно напрямую связать BookID и ассоциированный с ним объект книги в хранилище «ключ-значение». Также вы можете получить данные, просмотрев BookID в таблице. Кроме того, каждый элемент имеет собственную схему, что делает хранилища «ключ-значение» очень гибкими для хранения данных различной структуры.
Каковы функции баз данных «ключ-значение»?
Open allКаковы функции баз данных «ключ-значение»?
В зависимости от выбранного решения ваше хранилище «ключ-значение» может иметь несколько дополнительных функций, перечисленных ниже.
Поддержка сложных типов данных
Хранилища «ключ-значение» поддерживают определенные типы данных, такие как целые числа и текст. Однако многие из них также могут поддерживать более сложные объекты, такие как массивы, вложенные словари, изображения, видео и полуструктурированные данные. Предоставление базе данных дополнительной информации о ваших данных позволяет увеличить объем хранилища и оптимизировать производительность запросов.
Нет необходимости в объединении таблиц
Базам данных «ключ-значение» нет необходимости выполнять ресурсоемкое объединение таблиц. Их гибкость позволяет разместить всю необходимую информацию в одной таблице. Это одна из причин, по которой хранилища «ключ-значение» работают так хорошо.
Ключи сортировки
В хранилищах «ключ-значение» можно сортировать ключи, чтобы систематизировать данные и разбивать их на разделы. Например, ключи можно отсортировать следующими образами:
- В алфавитном или цифровом порядке
- Хронологически
- По размеру данных
Рассмотрим хранилище «ключ-значение», в котором в качестве уникального ключа используется адрес электронной почты клиента. Адреса электронной почты можно сортировать в алфавитном порядке, поэтому все списки адресов электронной почты, начинающихся на буквы A-J, хранятся на сервере № 1, на K-S – на сервере № 2 и так далее.
Поддержка вторичного ключа
В некоторых хранилищах «ключ-значение» можно определить два или более разных ключа либо вторичных индекса для доступа к одним и тем же данным. Например, вы можете хранить данные клиентов по ключевым адресам электронной почты и ключевым номерам телефонов.
Репликация
Многие хранилища «ключ-значение» предлагают встроенную поддержку репликации путем автоматического копирования данных между несколькими узлами хранения. Это помогает автоматически восстанавливать данные – в случае сбоя сервера данные останутся в вашем распоряжении.
поддержка разделов;
Многие хранилища «ключ-значение» предлагают встроенную поддержку репликации путем автоматического копирования данных между несколькими узлами хранения. Это помогает автоматически восстанавливать данные – в случае сбоя сервера данные останутся в вашем распоряжении.
Поддержка ACID
Принцип ACID (атомарность, непротиворечивость, изолированность, долговечность) – это свойства базы данных, которые обеспечивают точность и надежность данных при любых обстоятельствах. Например, если вы последовательно вносите несколько изменений в данные, то атомарность требует, чтобы все изменения проходили по порядку. Если не удается одно изменение, то не удаются и все остальные.
Расширенные базы данных «ключ-значение» обеспечивают встроенную поддержку принципа ACID на стороне сервера. Благодаря этому разработчики могут удобно и без ошибок вносить изменения в большое число элементов в пределах одной или нескольких таблиц. При поддержке транзакций разработчики могут использовать возможности масштабирования, производительности и прочие корпоративные преимущества сервиса при выполнении большего числа критически важных рабочих нагрузок.
Каковы ограничения баз данных «ключ-значение»?
Open allКаковы ограничения баз данных «ключ-значение»?
Базы данных «ключ-значение» требуют некоторых компромиссов, как и при выборе любой технологии.
Отсутствие сложных запросов
Поскольку базы данных «ключ-значение» не поддерживают сложные запросы, разработчики должны решать эту проблему с помощью кода. В операциях с данными в основном используются простые термины, такие как get, put и delete. Существуют ограничения на фильтрацию и сортировку данных перед доступом к ним.
Управление схемой
Хранилище «ключ-значение» спроектировано так, что оно не навязывает разработчикам схему. Любой может изменить ее в программе базы данных. Команды разработчиков должны систематически планировать модель данных, чтобы избежать проблем в долгосрочной перспективе. Отсутствие жесткой схемы также означает, что приложение отвечает за правильную интерпретацию потребляемых данных. Эту схему часто называют «схемой при чтении».
Как AWS может удовлетворить ваши требования по работе с базой данных «ключ-значение»?
Open allКак AWS может удовлетворить ваши требования по работе с базой данных «ключ-значение»?
Amazon DynamoDB – это одна из самых популярных баз данных «ключ-значение», созданная для запуска высокопроизводительных приложений в любом масштабе. Это полностью управляемая многорегиональная и многоактивная база данных, которая предоставляет перечисленные далее функции.
- Безграничная масштабируемость, включая масштабирование до нуля, с постоянной задержкой в несколько миллисекунд.
- Бессерверная система без обновления версий, окон обслуживания, серверов и программного обеспечения для управления.
- Глобальные таблицы DynamoDB обладают доступностью на уровне 99,999 % и обеспечивают активную репликацию, что позволяет создавать глобально распределенные приложения с локальной производительностью чтения.
- Высокая безопасность и надежность: шифрование по умолчанию в состоянии покоя, восстановление на момент времени, резервное копирование и восстановление по требованию и многое другое.
- Простота в использовании благодаря интеграции со многими сервисами AWS, включая пакетный импорт/экспорт из Amazon S3, Потоки данных Amazon Kinesis, Amazon Cloudwatch и другие.
С помощью этого пошагового руководства по созданию таблицы NoSQL и выполнению запросов можно настроить и запустить базу данных DynamoDB всего за 10 минут. Начните работу с базами данных «ключ-значение» на AWS, создав бесплатный аккаунт уже сегодня.