Я разрабатываю приложение, в котором хранятся вопросы, на которые люди ответили в базе данных nosql. Я использую AWS dynamodb, но размер записи составляет 400 кб. Как хранить более 400 КБ данных. Было бы лучше поставить ссылку на следующую запись в текущей записи? Если у кого-то есть другие мысли или идеи, это было бы здорово.Amazon dynamodb рекорд размер ограничение работа
ответ
Вместо того чтобы хранить ответы на все вопросы в одном элементе, вы можете хранить каждый ответ в виде отдельного элемента. Например, скажем, что вопросы относятся к опросу, тогда ваша схема таблицы выглядит так:
SurveyId (Hash Key) | Пользователь (хэш-ключ) | Вопрос (ключ диапазона) | Ответ.
Так что если опрос содержит n ответов для пользователя, в таблице dynamoDb будет n элементов. Чтобы найти список всех ответов для пользователя, мы можем запросить на hashkey (surveyId + User). Аналогичный вариант использования обсуждается here.
В зависимости от того, как часто мы превышаем максимальный размер записи, мы можем хранить большие предметы до s3.
С уважением Динеш Solanki
не займет больше времени, чтобы вытащить все вопросы и ответы. Я думал об опросе | userID | массив с вопросами и ответами. Если это больше, чем предел записи, разделите его на n записей со ссылками на следующий узел. –
DynamoDb хранит строки с одним и тем же HashKey на одном и том же разделе, поэтому только один раздел участвует в возврате результата запроса. Кроме того, поскольку вам не нужно фильтровать результаты, производительность не должна быть проблемой, производительность операции Query обсуждается здесь http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#ScanQueryPerformance , Разделение на n записей и поддержание согласованности/атомарности между операциями не является легкой проблемой. Как вы оцениваете и решаете разделить? Какую дополнительную информацию вы добавите для передачи, есть дополнительные строки. – dinesh
Какие данные вы пытаетесь сохранить в Dynamodb? Я имею в виду, вы пытаетесь сохранить любые двоичные данные (например, вложения файлов) или обычные строки, числовые данные? – notionquest
все это будет струны прямо сейчас. Я в основном разрабатываю сайт опроса. поэтому я не знаю, сколько вопросов было бы. –