Фильтр подпунктов DynamoDB с использованием .Net Core API - PullRequest
0 голосов
/ 29 января 2019

Прежде всего, у меня есть такая структура таблицы,

Users:{
        UserId
        Name
        Email
        SubTable1:[{
                    Column-111
                    Column-112
                },
                {
                    Column-121
                    Column-122
            }]
        SubTable2:[{
                    Column-211
                    Column-212
                },
                {
                    Column-221
                    Column-222
            }]
    }

Поскольку я новичок в DynamoDB, у меня есть пара вопросов по этому поводу:
1. Могу ли я создать структурукак это?
2. Можем ли мы установить первичный ключ для подтаблиц?
3. К счастью, я нашел вспомогательный класс DynamoDB для выполнения некоторых операций в моей БД.
https://www.gopiportal.in/2018/12/aws-dynamodb-helper-class-c-and-net-core.html
Но не надознаете, как получить только перикулярную подтаблицу
4. Можем ли мы получить только определенные столбцы из моей основной таблицы?Также необходимо предложение для подтаблиц

Примечание: я использую язык .net core c # для связи с DynamoDB.

1 Ответ

0 голосов
/ 29 января 2019
  1. Могу ли я создать подобную структуру?

Да

Можем ли мы установить первичный ключ для подтаблиц?

Нет, ключ хеша может быть установлен только для скалярных атрибутов верхнего уровня (String, Number и т. Д.)

К счастью, я нашел вспомогательный класс DynamoDB для выполнения некоторых операций с моей БД.https://www.gopiportal.in/2018/12/aws-dynamodb-helper-class-c-and-net-core.html Но вы не знаете, как получить только перикулярный подтаблицу

Когда вы говорите подтаблицы, я предполагаю, что вы имеете в виду тип данных Array в приведенной выше таблице примеров.Чтобы получить данные из таблицы DynamoDB, вам нужен хеш-ключ для использования Query API.Если у вас нет хеш-ключа, вы можете использовать Scan API, который сканирует всю таблицу.API-интерфейс сканирования является дорогостоящей операцией.

GSI (Глобальный вторичный индекс) может быть создан, чтобы избежать операции сканирования.Однако его можно создать только для скалярных атрибутов.GSI не может быть создан для атрибута Array.

Другой вариант - изменить таблицу соответствующим образом, чтобы она соответствовала вашему шаблону доступа к запросу.

Можно ли извлечь только определенные столбцы измой основной стол?Также нужно предложение для подтаблиц

Да, вы можете выбрать определенные столбцы, используя ProjectionExpression.Таким образом, вы получите только обязательные атрибуты в наборе результатов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...