2016-09-08 1 views
0

Я разрабатываю приложение, в котором хранятся вопросы, на которые люди ответили в базе данных nosql. Я использую AWS dynamodb, но размер записи составляет 400 кб. Как хранить более 400 КБ данных. Было бы лучше поставить ссылку на следующую запись в текущей записи? Если у кого-то есть другие мысли или идеи, это было бы здорово.Amazon dynamodb рекорд размер ограничение работа

+0

Какие данные вы пытаетесь сохранить в Dynamodb? Я имею в виду, вы пытаетесь сохранить любые двоичные данные (например, вложения файлов) или обычные строки, числовые данные? – notionquest

+0

все это будет струны прямо сейчас. Я в основном разрабатываю сайт опроса. поэтому я не знаю, сколько вопросов было бы. –

ответ

1

Вместо того чтобы хранить ответы на все вопросы в одном элементе, вы можете хранить каждый ответ в виде отдельного элемента. Например, скажем, что вопросы относятся к опросу, тогда ваша схема таблицы выглядит так:

SurveyId (Hash Key) | Пользователь (хэш-ключ) | Вопрос (ключ диапазона) | Ответ.

Так что если опрос содержит n ответов для пользователя, в таблице dynamoDb будет n элементов. Чтобы найти список всех ответов для пользователя, мы можем запросить на hashkey (surveyId + User). Аналогичный вариант использования обсуждается here.

В зависимости от того, как часто мы превышаем максимальный размер записи, мы можем хранить большие предметы до s3.

С уважением Динеш Solanki

+0

не займет больше времени, чтобы вытащить все вопросы и ответы. Я думал об опросе | userID | массив с вопросами и ответами. Если это больше, чем предел записи, разделите его на n записей со ссылками на следующий узел. –

+1

DynamoDb хранит строки с одним и тем же HashKey на одном и том же разделе, поэтому только один раздел участвует в возврате результата запроса. Кроме того, поскольку вам не нужно фильтровать результаты, производительность не должна быть проблемой, производительность операции Query обсуждается здесь http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#ScanQueryPerformance , Разделение на n записей и поддержание согласованности/атомарности между операциями не является легкой проблемой. Как вы оцениваете и решаете разделить? Какую дополнительную информацию вы добавите для передачи, есть дополнительные строки. – dinesh