Создание вашей базы данных на AWS (часть 3)

Опубликовано: 7 Марта, 2023
Создание вашей базы данных на AWS (часть 3)

  • Создание базы данных на AWS (часть 2)
  • Создание вашей базы данных на AWS (часть 4)

Введение

В части 1 этой серии мы обсудили эволюцию цифровой базы данных, а также преимущества и недостатки относительно нового явления облачной базы данных или DBaaS (база данных как услуга). Затем мы представили краткий обзор Amazon Relational Database Service (RDS), который лучше всего подходит для традиционных структурированных баз данных, построенных на языке структурированных запросов (SQL). Во второй части мы продолжили это обсуждение, изучив, как работать с экземпляром RDS в виртуальном частном облаке (VPC) и как переместить экземпляр базы данных в VPC, если он еще не находится в нем.

Сказать «нет» SQL

Язык структурированных запросов (SQL) был основой традиционных баз данных с тех пор, как он был разработан IBM, а затем использован реляционным программным обеспечением, которое позже стало Oracle, в первой коммерческой реализации. SQL был принят в качестве стандарта ANSI (Американским национальным институтом стандартов) в 1986 году и ISO (Международной организацией по стандартизации) в 1987 году. Oracle по-прежнему занимает первое место по количеству лицензий на базы данных. Microsoft SQL Server был впервые выпущен в 1989 году и на протяжении десятилетий также был популярным приложением для обслуживания баз данных. MySQL — это альтернатива базе данных с открытым исходным кодом, получившая большое распространение за годы после ее выпуска в 1995 году; она была приобретена Sun в 2008 году, а затем Sun была приобретена Oracle в 2009 году.

Базы данных на основе SQL имеют множество приверженцев и миллионы установок. Однако они не являются лучшим выбором для всех типов данных. Отсюда появление NoSQL — модели нереляционной базы данных, которая позволяет хранить и извлекать данные способами, отличными от традиционного табличного метода. Существует несколько различных типов баз данных NoSQL, включая документ, столбец, ключ-значение и график, а также базы данных с несколькими моделями.

NoSQL не обязательно означает, что SQL не используется; в некоторых реализациях «НЕТ» интерпретируется как «Не только», поэтому, другими словами, эти базы данных могут поддерживать структурированные запросы. В некоторых случаях NoSQL имеет преимущества в производительности, хотя реляционные базы данных могут быть быстрее в других обстоятельствах. NoSQL больше подходит для хранения больших данных.

Сказать «Привет» Динамо

DynamoDB — это служба базы данных NoSQL, которая поддерживает два типа NoSQL: модели данных документа и ключ-значение. DynamoDB Local — это небольшая клиентская версия DynamoDB, которую можно установить на локальный компьютер, если вы являетесь разработчиком, чтобы упростить создание приложений, использующих DynamoDB API. Это позволяет вам пользоваться преимуществами производительности при работе на локальном компьютере и экономить деньги на хранении данных и передаче данных во время разработки приложения. Вам даже не нужно иметь подключение к Интернету в процессе разработки. Затем, когда вы будете готовы к его развертыванию, вы можете перенаправить его в DynamoDB. Вы можете загрузить DynamoDB Local в виде исполняемого Java-архива, который будет работать на компьютерах с Windows, Mac или Linux, на которых установлен Java Runtime Engine (JRE) v6 или более поздней версии. Дополнительные сведения о DynamoDB Local см. на веб-сайте AWS.

С помощью AWS и DynamoDB вы можете запросить пропускную способность, и ресурсы будут автоматически предоставлены для достижения этой скорости. Вы сами решаете, сколько ресурсов вам потребуется для операций чтения и записи при создании таблицы в DynamoDB, и платите фиксированную почасовую ставку в зависимости от выбранной зарезервированной емкости.

Создание таблиц

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

Чтобы использовать DynamoDB, вам сначала нужно создать таблицы для хранения ваших данных. Поскольку это база данных NoSQL, различные элементы в вашей таблице могут иметь любое количество атрибутов. После того, как вы создадите таблицу, вам нужно будет написать код для извлечения элементов из таблицы. Если вы хотите иметь возможность запрашивать таблицу, вам нужно сделать первичный ключ хеш-типом и диапазоном.

Если у вас уже есть таблицы, созданные в DynamoDB, в консоли отобразится список этих таблиц. Если нет, вам нужно будет их создать. Если вы впервые используете DynamoDB и у вас нет созданных таблиц, при открытии консоли DynamoDB появится мастер «Приступая к работе с Amazon DynamoDB», и вы сможете нажать кнопку «Создать таблицу», чтобы начать работу. Эта страница также содержит ссылки на дополнительные сведения о выборе первичного ключа, настройке выделенной пропускной способности и создании таблицы с сигналами тревоги.

Нажатие кнопки «Создать таблицу» приведет к появлению мастера «Создать таблицу», где вы можете ввести имя таблицы и выбрать тип первичного ключа (хэш или хэш и диапазон). Если вы выберете Хэш и диапазон, вам нужно будет ввести имя атрибута хеша и тип для хэша и диапазона. Если вы выбрали тип хеша, вам просто нужно указать имя атрибута хэша и тип атрибута.

Первичный хеш-ключ имеет только один атрибут (хэш-атрибут), на основе которого DynamoDB создает неупорядоченный хэш-индекс. С первичным ключом хеша и диапазона есть два атрибута: атрибут хэша и атрибут диапазона. Неупорядоченный хеш-индекс создается для хеш-атрибута. Индекс отсортированного диапазона создается для атрибута диапазона.

В зависимости от того, какую таблицу вы создаете, вам может потребоваться создать локальный вторичный индекс, чтобы вы могли выполнять запросы к атрибуту, который не является частью первичного ключа. Для этого необходимо заполнить поля «Тип индекса», «Ключ диапазона индекса» и «Имя индекса» и добавить индекс в таблицу.

Затем вы вводите желаемую пропускную способность предоставления, как описано выше. Вы можете установить флажок, чтобы помочь мне оценить выделенную пропускную способность, или ввести свои собственные оценки в поля «Чтение единиц емкости» и «Запись единиц емкости». Учитывайте размеры элементов, ожидаемую скорость запросов на чтение и запись, согласованность и наличие локальных вторичных индексов. Подробную информацию об оценке пропускной способности можно найти на веб-сайте AWS.

Вы можете настроить оповещения о пропускной способности через CloudWatch, который сообщит вам по электронной почте, когда вы достигнете 80 процентов настроенной пропускной способности.

Когда статус таблицы отображается как Активный, все готово. После создания таблиц вы можете увеличить или уменьшить значения пропускной способности чтения и записи, которые вы указали при создании таблиц, с помощью запроса UpdateTable.

Предметы и атрибуты

Элемент в контексте таблиц DynamoDB — это группа атрибутов, каждый из которых имеет имя и хотя бы одно значение. Атрибут может иметь несколько значений (набор значений).

Атрибуты могут иметь три типа данных: скалярный (число, строка, двоичный, логический, пустой), документ (список и карта) или многозначный (набор строк, набор чисел, двоичный набор). Количество атрибутов, которые может иметь элемент, ограничивается только ограничением размера элемента в 400 КБ.

Нет схемы ни для одного из элементов таблицы, кроме первичного ключа.

Чтение и запись элементов выполняются с помощью операций GetItem и PutItem. Вы также можете внести изменения в атрибуты существующего элемента с помощью операции UpdateItem и удалить элемент с помощью операции DeleteIteam. Вы должны указать весь первичный ключ для каждой из операций.

Вы также можете использовать запрос GetBatchItem для чтения до ста элементов, а BatchWriteItem можно использовать для добавления или удаления нескольких элементов. Условную запись можно использовать в ситуациях, когда несколько клиентов могут получить доступ и попытаться внести изменения в элементы одновременно, чтобы установить условия, которые должны быть выполнены до завершения операции.

Вы можете узнать больше о чтении и записи элементов с помощью выражений на веб-сайте AWS.

Запрос и сканирование

Вы можете искать данные в таблицах DynamoDB, используя операции Query и Scan. Запрос выполняет поиск по значениям атрибутов первичного ключа и поддерживает набор операторов сравнения. Вы можете использовать выражения фильтра, чтобы сузить результаты. Операция сканирования проверяет все элементы в таблице или вторичном индексе и возвращает все атрибуты данных для каждого элемента, если вы не используете параметр ProjectionExpression для ограничения возврата.

Вы можете использовать фильтры с запросами сканирования так же, как и с запросами запросов. Вы можете использовать операции Query и Scan для таблиц или вторичных индексов. Вы также можете использовать значение Limit для управления количеством элементов в возвращаемых результатах.

Запрос, как правило, быстрее, чем сканирование, потому что операция сканирования сканирует всю таблицу или вторичный индекс, а затем отфильтровывает значения, поэтому производительность может снизиться при работе с большими таблицами и индексами. Дополнительные сведения об использовании операций Query и Scan см. на веб-сайте AWS.

Резюме

В этой части 3 этой серии, посвященной параметрам базы данных AWS, мы познакомили вас с предложением Amazon NoSQL, DynamoDB, и представили краткий обзор того, как вы создаете и работаете с таблицами, элементами и атрибутами, а также как использовать операции Query и Scan для поиска. база данных. В части 4 мы рассмотрим AWS Redshift, предназначенный для обработки больших данных.

  • Создание базы данных на AWS (часть 2)
  • Создание вашей базы данных на AWS (часть 4)