Хранение данных в динамической базе

У меня не было файла index.lock для удаления, но для меня работало удаление проверки только для чтения из окна «Атрибуты» диалогового окна «Свойства папки».

1
задан wtj 18 March 2019 в 01:47
поделиться

2 ответа

Таблица 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 ] Вы можете использовать API Query для запроса записей по хеш-ключу таблицы, а также при желании также ключу диапазона

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

0
ответ дан Oh Chin Boon 18 March 2019 в 01:47
поделиться

Хотя 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 может не подойти (хотя я не думаю, что это ваш случай, думаю, стоит упомянуть)

0
ответ дан Thales Minussi 18 March 2019 в 01:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: