Является ли это хорошей стратегией в отношении ключа разделов в Cosmos Db с арендой?

Я хочу разделить данные для упрощения управления GDPR и т. д. Поэтому я подумал о том, чтобы иметь по одной MongoDb с CosmosDb для каждого микросервиса. Итак, 10 микросервисов — это 10 баз данных MongoDb.

Тогда мне нужна поддержка нескольких арендаторов. Поэтому я подумал, что у каждого арендатора может быть своя коллекция внутри баз данных. (Общая пропускная способность).

Таким образом, один сервис имеет одну базу данных и множество коллекций. Если 100 клиентов, это 100 коллекций.

Но тогда мне нужен способ хранить мои документы. Поэтому я подумал, что каждый тип может быть моим ключом раздела. Нравиться. "Ворота", "Заказ", "Пользователь" и т.д...

Раньше я использовал один db для каждого клиента, но стоимость была проблемой.

Я не хочу совместно использовать данные жильцов, поэтому думаю об этом разделении. И я могу легко позволить разработчикам быть собственным арендатором в системе, чтобы они не запрашивали данные других арендаторов по ошибке.

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

GateServiceDb
   3343-414-1441-141441 (Tenant collection)
        Gate - Partion (Document type)
        Entrence - Partion (Document type)
        ...
   3252-532-252-141441 (Tenant collection)
        Gate - Partion (Document type)
        Entrence - Partion (Document type)
        ...
   123-445-1441-141441 (Tenant collection)
        Gate - Partion (Document type)
        Entrence - Partion  (Document type)
        ...
   ...

Насколько я знаю, нет ограничений на количество коллекций, которые вы можете создать, но просто хочу поделиться тем, что ключ раздела CosmosDB имеет ограничение в 10 ГБ. Я не могу вспомнить, какой из них физический или логический.

jtabuloc 08.04.2019 09:00
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
569
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

Итак, возвращаясь к вашему исходному вопросу, один сервис имеет одну базу данных и множество коллекций,

Знаете ли вы, будет ли ваше приложение и данные достаточно большими, чтобы вы захотели разделить одну БД на каждую службу Micro, или это будет работать как одна коллекция для каждой службы Micro?

Ваш другой вопрос «Я не могу найти ограничения на количество коллекций» :

Как вы, возможно, уже знаете, коллекция — это контейнер для ваших документов JSON. Коллекции также являются единицей разделения и границы DocumentDB для выполнения запросов и транзакций. Каждая коллекция обеспечивает зарезервированное количество пропускной способности. Вы можете масштабировать свое приложение как с точки зрения хранилища, так и с точки зрения пропускной способности, добавляя больше коллекций и распределяя документы по ним.

Каковы ограничения хранилища Azure Cosmos DB?

Общий объем данных, которые контейнер может хранить в Azure Cosmos DB, не ограничен.

Каковы ограничения пропускной способности Azure Cosmos DB?

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

Спасибо :) Вроде такой же вывод делаю и я. Так что я теперь спросил клиентов об этом. Как они видят организационные структуры клиентов. Арендатором может быть крупная компания с множеством других компаний.

Jnormen 08.04.2019 08:51

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

Mohit Verma 08.04.2019 08:54

Другие вопросы по теме