У меня не было файла index.lock для удаления, но для меня работало удаление проверки только для чтения из окна «Атрибуты» диалогового окна «Свойства папки».
Таблица DynamoDB
Во-первых, вам нужно будет создать DynamoDB Table
. Для этого вам понадобится минимально иметь таблицу Hash Key
, которая действует как первичный ключ таблицы, вы также можете иметь необязательный Range Key
, который действует как составной первичный ключ таблицы
. boxname
, кажется, хорошо вписывается в таблицу Hash Key
Вы можете сразу же создать DynamoDB Table
только с ключом хэширования, так как все остальные атрибуты не нужно указывать заранее, новые / дополнительные атрибуты могут быть добавлены на лету при создании новых записей
Создать запись
Вы можете использовать API PutItem
Для создания записи в DynamoDB [1122 ]
https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html
Записи запросов
[1125 ] Вы можете использовать APIQuery
для запроса записей по хеш-ключу таблицы, а также при желании также ключу диапазона
https://docs.aws.amazon.com/amazondynamodb/latest/APIReference /API_Query.html
Сканирование записей [112 7]
Используйте API Scan
для сканирования записей по любым атрибутам Non Key
, когда вы не можете извлечь записи на основе таблиц Hash Key
и / или Range Key
. Обычно это не так. Рекомендуется создать структуру таблиц, в которой интенсивно используется API-интерфейс сканирования, поскольку он буквально выполняет операцию сканирования. Вместо этого рекомендуется структурировать таблицу, оптимизированную для операций с запросами
https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html
[ 1139] Получить запись
Вы можете использовать API GetItem
для получения одной записи по хеш-ключу таблицы и, опционально, также по ключу диапазона
https: / /docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html
Надеюсь, что приведенная выше информация полезна для начала работы с DynamoDB
Хотя boxname
уникален, я категорически не согласен с тем, что он подходит для хеш-ключа (согласно ответу @ OhChinBoon).
Поскольку boxname
- это только имя, это означает, что оно генерируется неравномерно (например, UUID). Представьте, что ваши boxname
были как Johan/Johanan/Johann/Johannes/Johdy/John
. DynamoDB будет очень тяжело запросить эти ключи, если ваша таблица станет больше.
Я предлагаю вам добавить в вашу структуру новый атрибут, который будет отвечать за ваш хэш-ключ. Давайте назовем это id
.
Теперь, если вам нужно запросить boxname
, вы можете просто создать на нем Глобальный вторичный индекс (GSI), что позволит избежать дорогостоящих операций, таких как сканирование (см. DynamoDB Best Practices). при необходимости). Используйте сканирование только в крайнем случае.
Исходя из вышеизложенного, ваша структура будет выглядеть следующим образом:
{
"id": "7ba6d8b8-afef-440e-98a2-fee38a4e3381" (hash key)
"boxname": "foo" (GSI),
"contents": [{
"itemid": "1",
"itemname": "apple",
"itemamount": "7",
"itemdateadded": "03-17-2019"
}]
}
Имейте в виду, что вы можете создавать GSI только для атрибутов верхнего уровня, то есть вы не можете создать GSI для атрибута внутри JSON / массив. Итак, если вам в конце концов понадобится запросить что-то внутри contents
, то DynamoDB может не подойти (хотя я не думаю, что это ваш случай, думаю, стоит упомянуть)