Каковы недостатки / преимущества наличия контейнера для каждого типа документа в cosmosdb? - PullRequest
0 голосов
/ 13 июля 2020

Я разрабатываю базу данных cosmos DB, я сохранил все различные типы документов в одном контейнере и добавил свойство type, чтобы различать типы документов. Я знаю несколько преимуществ этого подхода к моделированию базы данных:

  • Низкая стоимость
  • Поддержка транзакций с документами одного раздела

Теперь мой начальник, кто Приезжает из SQL земля хочет, чтобы у меня были контейнеры для каждого типа документов. Но я не знаю, в чем преимущество или недостаток такого подхода? Я пробовал искать, но нигде не получил четкого ответа. Кроме того, я хотел бы знать, в чем заключается недостаток моего подхода.

1 Ответ

1 голос
/ 13 июля 2020

Для этого нет преимущества, и это анти-шаблон для этого типа базы данных. Данные в хранилище данных № SQL должны быть организованы в зависимости от того, как к ним обращаться. Нормализация для оптимизации хранилища имела смысл 50 лет go, когда впервые появились реляционные базы данных. Но сегодня хранилище дешево по сравнению с вычислениями.

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

Существует множество материалов, в которых объясняются эти концепции и почему вы не используете Cosmos DB как реляционную базу данных. Я настоятельно рекомендую вашему начальнику взглянуть на приведенные ниже ссылки. Чрезвычайно важно понять эти концепции перед использованием базы данных, такой как Cosmos DB.

Моделирование данных в Azure Cosmos DB

Как моделировать и секционировать данные о Azure Cosmos DB на реальном примере

Ignite 2019 Session Моделирование и разбиение данных в Azure Cosmos DB: что нужно знать каждому пользователю реляционной базы данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...