3

Вопрос может быть иначе сформулирован как «сгладить или не сгладить?»Как структура вложенности влияет на производительность запросов DocumentDB?

Если я должен хранить вложенные документы JSON в коллекции DocumentDB, будет ли запрос через эти вложенные структуры выполнять наравне с тем, что они хранят эти вложенные структуры в отдельной коллекции как собственные документы?

Данные, о которых идет речь, будут написаны один раз и (вероятно) никогда не будут обновляться. Производительность отчетов находится в верхней части списка требований.

С одной стороны, хранение данных во вложенной структуре кажется «правильным» способом использования технологии no-schema/no SQL. То есть мы, естественно, хотим связать данные заголовка с подробными данными в одном месте и в контексте. Но может ли он масштабироваться и продолжать выполняться после того, как мы будем писать тысячи строк в минуту при одновременном запуске отчетов по этой коллекции из веб-приложения?

Или, было бы лучше сгладить эти детализированные данные, избыточно сохраняя соответствующие части данных заголовка в каждой строке детальной коллекции? Как разработчик/пользователь долговременного RDBMS, я, как правило, хочу не хранить данные избыточно, но должен ли я отказаться от этой идеи в пользу высокой производительности?

Выполняет ли более плоскую структуру структуры данных в DocumentDB и на какой части поля? То есть, что я отказываюсь от этого, и стоит ли, чтобы производительность была верхним (но не единственным) приоритетом?

ответ

3

На это нет ни одного «правильного» ответа.

Выбор того, следует ли представлять отношения как единый внедренный документ (он же нормализуется) или как ссылки, как в РСУБД (он же нормализуется), сильно зависит от вашего сценария/сценария.

Как правило, вы хотите де-нормализовать сценарии с тяжелым сценарием и нормализовать сценарии с тяжелыми сценами.

Команда DocumentDB только что опубликовала справочный документ по этому вопросу; Я бы рекомендовал дать ему читать: http://azure.microsoft.com/en-us/documentation/articles/documentdb-modeling-data/

+0

Спасибо! Эта статья охватывает именно то, что я искал. –