Метод BatchGetItem
Возвращает атрибуты одного или нескольких элементов из одной или нескольких таблиц. Запрашиваемые элементы нужно указать по первичному ключу.
За один раз вернется до 16 Мб данных или до 100 записей. Например, если запросить 100 записей по 300 Кб каждая, то вернется только 52 записи (чтобы не превышать ограничение в 16 Мб).
Если возвращается частичный (неполный) результат, то оставшиеся записи вернутся в параметре UnprocessedKeys
. Их можно использовать для повторного запроса.
Если из-за недостаточной пропускной способности не вернется ни один элемент, то метод вернет ошибку ProvisionedThroughputExceededException
. Если будет обработан хотя бы один элемент, то метод завершится успешно, а необработанные ключи вернутся в параметре UnprocessedKeys
.
По умолчанию метод выполняет последовательное чтение из каждой таблицы. Если нужно использовать строгое согласованное чтение, то необходимо установить параметр ConsistentRead=true
.
Запрос
Запрос содержит данные в формате JSON.
{
"RequestItems": {
"string" : {
"AttributesToGet": [ "string" ],
"ConsistentRead": boolean,
"ExpressionAttributeNames": {
"string" : "string"
},
"Keys": [
{
"string" : {
"B": blob,
"BOOL": boolean,
"BS": [ blob ],
"L": [
"AttributeValue"
],
"M": {
"string" : "AttributeValue"
},
"N": "string",
"NS": [ "string" ],
"NULL": boolean,
"S": "string",
"SS": [ "string" ]
}
}
],
"ProjectionExpression": "string"
}
},
"ReturnConsumedCapacity": "string"
}
Параметры
Параметр | Описание |
---|---|
RequestItems |
Ассоциативный массив с названиями таблиц, где для каждой таблицы также указан ассоциативный массив с извлекаемыми элементами. Каждый элемент состоит из:
Тип: Строка типа KeysAndAttributes Кол-во записей: максимум 100 элементов. Длина ключа: 3 - 255 символов. Шаблон: [a-zA-Z0-9_.-]+ Обязательно: Да |
ReturnConsumedCapacity |
Нужно ли возвращать информацию о потребляемой мощности.
Тип: Строка Возможные значения: TOTAL | NONE Обязательно: Нет |
Ответ
В случае успеха вернется HTTP с кодом 200.
Запрос возвращает данные в формате JSON.
{
"ConsumedCapacity": [
{
"CapacityUnits": number,
"GlobalSecondaryIndexes": {
"string" : {
"CapacityUnits": number,
"ReadCapacityUnits": number,
"WriteCapacityUnits": number
}
},
"LocalSecondaryIndexes": {
"string" : {
"CapacityUnits": number,
"ReadCapacityUnits": number,
"WriteCapacityUnits": number
}
},
"ReadCapacityUnits": number,
"Table": {
"CapacityUnits": number,
"ReadCapacityUnits": number,
"WriteCapacityUnits": number
},
"TableName": "string",
"WriteCapacityUnits": number
}
],
"Responses": {
"string" : [
{
"string" : {
"B": blob,
"BOOL": boolean,
"BS": [ blob ],
"L": [
"AttributeValue"
],
"M": {
"string" : "AttributeValue"
},
"N": "string",
"NS": [ "string" ],
"NULL": boolean,
"S": "string",
"SS": [ "string" ]
}
}
]
},
"UnprocessedKeys": {
"string" : {
"AttributesToGet": [ "string" ],
"ConsistentRead": boolean,
"ExpressionAttributeNames": {
"string" : "string"
},
"Keys": [
{
"string" : {
"B": blob,
"BOOL": boolean,
"BS": [ blob ],
"L": [
"AttributeValue"
],
"M": {
"string" : "AttributeValue"
},
"N": "string",
"NS": [ "string" ],
"NULL": boolean,
"S": "string",
"SS": [ "string" ]
}
}
],
"ProjectionExpression": "string"
}
}
}
Параметры
Параметр | Описание |
---|---|
ConsumedCapacity |
Потребленные единицы мощности. Возвращается только в том случае, если в запросе был указан параметр ReturnConsumedCapacity со значением TOTAL .Состоит из:
Тип: Массив объектов типа ConsumedCapacity |
Responses |
Ассоциативный массив таблиц, в котором находятся извлеченные записи. Тип: Ассоциативный массив типа AttributeValue .Длина ключа: 3 - 255 символов. Шаблон: [a-zA-Z0-9_.-]+ |
UnprocessedKeys |
Ассоциативный массив таблиц, в котором находятся необработанные записи. Записи приходят в том же виде, как были заданы в запросе в параметре RequestItems . Следовательно, эти значения можно повторно использовать в следующем запросе.Каждый элемент состоит из:
UnprocessedKeys будет пустой.Тип: ассоциативный массив типа KeysAndAttributes .Кол-во записей: максимум 100 элементов. Длина ключа: 3 - 255 символов. Шаблон: [a-zA-Z0-9_.-]+ |
Ошибки
Параметр | Описание |
---|---|
InternalServerError |
Произошла внутренняя ошибка на стороне сервера. Код состояния HTTP: 500 |
ProvisionedThroughputExceededException |
Вы слишком часто отправляете запросы. Попробуйте увеличить интервалы между запросами. Если таких запросов будет не слишком много, Managed Service for YDB постарается обработать их все. Код состояния HTTP: 400 |
RequestLimitExceeded |
Пропускная способность превышает квоту. Код состояния HTTP: 400 |
ResourceNotFoundException |
Указанная таблица не существует. Код состояния HTTP: 400 |
Также могут возникать Общие ошибки, одинаковые для всех методов.