Магазины семейства колонок, такие как Bigtable и Cassandra, имеют очень ограниченные возможности запросов.Приложение отвечает за ведение индексов для запроса более сложной модели данных.
Базы данных документов позволяют запрашивать содержимое, а не только ключ.Он также будет управлять индексами для вас, уменьшая сложность вашего приложения.
Доменный дизайн проповедует использование агрегатов и объектов значений. Как указывает Айенде , (сложные) агрегаты являются очень естественными кандидатами для хранения в виде одного документа, вместо их нормализации по нескольким таблицам или семействам столбцов.Это уменьшит сложность вашего слоя постоянства.Также меньше шансов, что связанные данные будут разбросаны по нескольким узлам, поскольку все данные содержатся в одном документе.
Если вашему приложению необходимо хранить полиморфные объекты, базы данных документов также являются хорошим кандидатом.Конечно, это также может храниться в Кассандре, но у вас не будет столько возможностей для запросов.По крайней мере, не из коробки.
Думайте о базе данных документов как о роскошном спортивном автомобиле.Он не нуждается в профессиональном водителе (читай: сложное приложение), чтобы доставить вас от А до Б, у него есть такие функции, как кондиционер и удобные сиденья, и он преодолеет трассу с высокой масштабируемостью в приемлемое время.Однако, если вы хотите установить рекорд круга на трассе с высокой масштабируемостью, вам понадобится профессиональный водитель и высоко оптимизированный автомобиль (например, Cassandra), в котором отсутствуют такие функции, как кондиционер.