Как установить ключи раздела DynamoDB

Kak Ustanovit Kluci Razdela Dynamodb



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

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







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



Что такое ключ раздела DynamoDB и почему он важен?

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



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





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

Кроме того, DynamoDB позволяет распределять данные по разделам объемом до 10 ГБ. Таким образом, каждая таблица может иметь один или несколько разделов. Вы можете использовать значение ключа секции в качестве входных данных для внутренней хеш-функции базы данных, а выходные данные хеш-функции определяют секцию, в которой хранится элемент. Кроме того, расположение элемента определяет раздел, в котором он хранится.



Как установить ключи раздела DynamoDB

Установка ключей разделов может быть сложной задачей, если вы еще не поняли концепцию. Тем не менее, этот процесс может быть простым и эффективным, если вы соберете необходимые советы и рекомендации. Ниже приведены некоторые рекомендации, которым следует следовать при настройке ключей разделов.

1. Выберите правильные ключи раздела

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

При настройке ключей разделов DynamoDB рекомендуется использовать атрибуты высокой кардинальности. Атрибуты с высокой кардинальностью содержат отдельные значения для каждого элемента и могут включать в себя employee_id, employee_no, order_id, emailid, customerid или orderid.

2. Используйте соглашение об именах ПК

Ключи разделов часто используют соглашение об именах pk. Этот метод именования гарантирует точный механизм именования без дискриминации по типу или модели представляемого элемента.

Например, хотя у вас может возникнуть соблазн использовать postID и userID в качестве ключей раздела для моделей Post и User в таблице, DynamoDB допускает только один ключ раздела для каждой таблицы. Таким образом, вы не можете использовать два в одной таблице. Обратите внимание, что таблицы без ключей сортировки могут иметь идентификаторы разделов.

3. Используйте составные атрибуты

Для некоторых таблиц лучше использовать составные ключи. То есть вам нужно более одного атрибута для формирования уникальных ключей. Например, вы можете удобно использовать идентификатор_клиента, код_страны и идентификатор_продукта для формирования ключа раздела (идентификатор_клиента#код_страны#идентификатор_продукта). В то же время вы можете использовать order_id в качестве ключа сортировки.

4. Правильно добавляйте случайные числа

Если вы ожидаете огромный объем операций записи для каждого ключа, использование дополнительного префикса или суффикса сделает случаи интенсивного использования более эффективными. Например, вы можете использовать номер счета вместе с набором случайных чисел в качестве ключа раздела. Не забудьте разделить различные разделы вашего ключа раздела. Например, InvoiceNumber#125656#0 в качестве ключа раздела идеально подходит для интенсивного использования с тысячами операций записи в секунду.

Создайте ключ раздела DynamoDB

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

AttributeName=строка,KeyType=строка ...

В данном синтаксисе имя атрибута является фактическим именем атрибута, а тип атрибута может быть строкой (S), числом (N) или двоичным (B).

Вы также можете использовать синтаксис JSON, как показано ниже:

[

{

'ИмяАтрибута': 'строка',

«Тип ключа»: «ХЭШ»

}

...

]

Какой бы синтаксис вы ни выбрали, роль атрибута берет на себя функция HASH, поскольку мы создаем ключ раздела. Напротив, тип ключа предполагает функцию RANGE при создании ключей сортировки.

Наконец, также можно изменить ключ раздела с помощью следующей утилиты:

DynamoDBClient.updateItem({
'ИмяТаблицы': 'имя_моейТаблицы',
'Ключ': {
'пк': {
'S': 'my_PartitionKey'
}
},
'UpdateExpression': 'SET #emailaddress = :emailaddress',
'ExpressionAttributeNames': {
'#email': 'адрес электронной почты'
},
'ExpressionAttributeValues': {
':Адрес электронной почты': {
'С': ' [электронная почта защищена] '
}
}
})

Данная утилита обновляет ваш атрибут электронной почты, чтобы он выглядел так, как у вас есть в [электронная почта защищена] для элемента, где ключ раздела (pk) равен my_PartitionKey.

Заключение

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