Как использовать лимиты в DynamoDB - PullRequest
0 голосов
/ 17 мая 2019

У меня есть таблица DynamoDb customers.

В этой таблице у меня 20 миллионов строк данных.

Схема таблицы:

  • Ключ раздела- group_id
  • Ключ сортировки - customer_email

У меня есть атрибут с именем

     "assigned_lists": [
        "e9d55940-77da-11e9-9c25-df4d7393de10",
        ...
     ] 

в этой таблице.assigned_lists - это тип списка строк.Я хочу того клиента, который принадлежит к какой-то assigned_lists.Просто я искал функцию содержимого динамо-базы данных

 FilterExpression: "contains(#list, :searchForThisList)" 

Я запрашиваю на этой таблице ограничение в 100, значит мне нужно 100 клиентов, которые принадлежат данному assigned_lists один клиент может быть в несколькихassigned_lists поэтому я использую тип данных LIST.

Мой подход к ограничению:

Ограничение: 100,

        Dynamo.query(params, (err,data)=>{
          if (typeof data.LastEvaluatedKey != "undefined") {
             if (data.Count < params.Limit) { //calculating that we get all the data or not

                    params.ExclusiveStartKey = data.LastEvaluatedKey;
                    params.Limit -= data.Count; //Setting the new limit for the next query
                    dynamoDb.query(params, againComeHere);
                    } else {
                       //my process with the data
                    }
        })

У меня есть несколько вопросов:

Примечание: Я новичок в DynamoDB

1. Использовал ли я тонкую логику для ограничения?Поскольку генерация результатов занимает более 2 минут, и мне нужно показать их на моем веб-сайте

2. Является ли DynamoDb правильной базой данных для меня?

Мне нужны ответы.

...