Итак, у меня есть таблица dynamodb с основным столбцом раздела раздела, foo_id
и без основного ключа сортировки. У меня есть список значений foo_id
, и вы хотите получить наблюдения, связанные с этим списком идентификаторов.Как batch_get_item много элементов сразу задают список значений основного ключа кластера
Я решил, что лучший способ сделать это (?) - использовать batch_get_item()
, но это не работает для меня.
# python code
import boto3
client = boto3.client('dynamodb')
# ppk_values = list of `foo_id` values (strings) (< 100 in this example)
x = client.batch_get_item(
RequestItems={
'my_table_name':
{'Keys': [{'foo_id': {'SS': [id for id in ppk_values]}}]}
})
Я использую SS
, потому что я передаю список строк (список foo_id
значений), но я получаю:
ClientError: An error occurred (ValidationException) when calling the
BatchGetItem operation: The provided key element does not match the
schema
Так я предполагаю, что означает, что он думает foo_id
содержит вместо строковых значений, что неверно.
-> Правильно ли эта интерпретация? Каков наилучший способ пакетного запроса для группировки основных значений ключа раздела?
выше ответ работает только после того, как мы изменяем dynamodb.batch_get_item к dynamodb.meta.client.batch_get_item, как метод batch_get_item существует только на клиенте не на ресурсе. –