AWS DynamoDB — это база данных NOSQL.
Разрешениями можно управлять напрямую через IAM, и его очень удобно использовать с другими сервисами AWS.
Несколько концепций DynamoDB
Ключ раздела: Ключ раздела. Если ключ сортировки отсутствует, ключ раздела должен быть уникальным. Если ключ сортировки имеется, ключ раздела можно повторить.
Ключ сортировки: ключ сортировки.
Составной ключ: собирательное имя ключа раздела и ключа сортировки представляет собой логическую концепцию.
GSI: второй механизм индексации, независимый от ключа раздела и ключа сортировки. Можно создать несколько GSI.
Запросить DyanmoDB с помощью Boto3
Чтобы использовать GSI для запроса данных, вам необходимо указать имя индекса:
Здесь предполагается, что ключ раздела называется key1, ключ сортировки называется sortkey, а GSI называется gsi-index.
import boto3
from boto3.dynamodb.conditions import Attr, Key
def query_app(self, key1: str, sortkey: str):
response = self.table.query(
IndexName='gsi-index',
KeyConditionExpression = Key("key1").eq(key1) & Key("sortkey").begins_with(sortkey),
ScanIndexForward = False
)
code = response.get('ResponseMetadata').get('HTTPStatusCode')
if code == 200:
logging.info(f"query item successfully!")
return response.get("Items")
else:
logging.warning(f"query item fail!, response is {code}")
Разница между запросом и сканированием:
- Запрос использует ключ для запроса. (рекомендовать.)
- scan сканирует всю таблицу, а затем фильтрует. ,
Использованная литература:
Презентация PowerPoint (sides-share.s3.cn-north-1.amazonaws.com.cn)