Внедрение многопользовательской аренды
В Milvus многопользовательская среда означает, что несколько клиентов или команд, называемых арендаторами,используют один и тот же кластер, сохраняя при этом изолированные среды данных.
Milvus поддерживает четыре стратегии многопользовательской работы, каждая из которых предлагает различные компромиссы между масштабируемостью, изоляцией данных и гибкостью. В этом руководстве мы рассмотрим каждый вариант и поможем вам выбрать наиболее подходящую стратегию для вашего случая использования.
Стратегии многопользовательской работы
Milvus поддерживает многопользовательскую работу на четырех уровнях: База данных, Коллекция, Раздел и Ключ раздела.
Мультиарендность на уровне базы данных
При многопользовательстве на уровне базы данных каждый арендатор получает соответствующую базу данных, содержащую одну или несколько коллекций.
Многоарендность на уровне базы данных
Масштабируемость: Стратегия многопользовательской аренды на уровне базы данных по умолчанию поддерживает максимум 64 арендатора.
Изоляция данных: Данные в каждой базе данных полностью разделены, что обеспечивает изоляцию данных корпоративного уровня, идеальную для регулируемых сред или клиентов со строгими требованиями к соблюдению нормативных требований.
Гибкость: В каждой базе данных могут быть коллекции с различными схемами, что обеспечивает гибкую организацию данных и позволяет каждому арендатору иметь собственную схему данных.
Другие: Эта стратегия также поддерживает RBAC, позволяя осуществлять тонкий контроль над доступом пользователей для каждого арендатора. Кроме того, вы можете гибко загружать или освобождать данные для определенных арендаторов, чтобы эффективно управлять "горячими" и "холодными" данными.
Многопользовательская лицензия на уровне коллекции
При многопользовательской системе на уровне коллекций каждому арендатору назначается своя коллекция, что обеспечивает надежную изоляцию данных.
Мультиарендность на уровне коллекций
Масштабируемость: Поскольку кластер по умолчанию может содержать до 65 536 коллекций, эта стратегия позволяет разместить такое же количество арендаторов в кластере.
Изоляция данных: Коллекции физически изолированы друг от друга. Эта стратегия обеспечивает надежную изоляцию данных.
Гибкость: Эта стратегия позволяет каждой коллекции иметь собственную схему, что позволяет разместить арендаторов с различными схемами данных.
Другие: Эта стратегия также поддерживает RBAC, позволяя осуществлять гранулярный контроль доступа для арендаторов. Кроме того, вы можете гибко загружать или освобождать данные для определенных арендаторов, чтобы эффективно управлять "горячими" и "холодными" данными.
Многопользовательская лицензия на уровне разделов
При многопользовательской системе на уровне разделов каждый арендатор назначается на созданный вручную раздел в общей коллекции.
Многопользовательская аренда на уровне разделов
Масштабируемость: Коллекция может содержать до 1 024 разделов, что позволяет разместить в ней такое же количество арендаторов.
Изоляция данных: Данные каждого арендатора физически разделены разделами.
Гибкость: Эта стратегия требует, чтобы все арендаторы использовали одну и ту же схему данных. А разделы необходимо создавать вручную.
Другие: RBAC не поддерживается на уровне разделов. К арендаторам можно обращаться как по отдельности, так и через несколько разделов, что делает этот подход хорошо подходящим для сценариев с агрегированными запросами или аналитикой по сегментам арендаторов. Кроме того, вы можете гибко загружать или освобождать данные для определенных арендаторов, чтобы эффективно управлять "горячими" и "холодными" данными.
Многопользовательская аренда на уровне ключа раздела
При этой стратегии все арендаторы используют единую коллекцию и схему, но данные каждого арендатора автоматически распределяются по 16 физически изолированным разделам на основе значения ключа раздела. Хотя каждый физический раздел может содержать несколько арендаторов, данные разных арендаторов остаются логически разделенными.
Уровень ключа раздела Много арендаторов
Масштабируемость: Стратегия на уровне ключа раздела предлагает наиболее масштабируемый подход, поддерживающий миллионы арендаторов.
Изоляция данных: Эта стратегия обеспечивает относительно слабую изоляцию данных, поскольку несколько арендаторов могут совместно использовать физический раздел.
Гибкость: Поскольку все арендаторы должны использовать одну и ту же схему данных, эта стратегия обеспечивает ограниченную гибкость данных.
Другие: RBAC не поддерживается на уровне ключей разделов. К арендаторам можно обращаться как по отдельности, так и через несколько разделов, что делает этот подход хорошо подходящим для сценариев с агрегированными запросами или аналитикой по сегментам арендаторов.
Выбор правильной стратегии многопользовательской аренды
В таблице ниже представлено комплексное сравнение между четырьмя уровнями стратегий многопользовательской эксплуатации.
Уровень базы данных |
Уровень коллекции |
Уровень разделов |
Уровень ключей разделов |
|
|---|---|---|---|---|
Изоляция данных |
Физическая |
Физическая |
Физический |
Физический + логический |
Максимальное количество арендаторов |
По умолчанию 64. Вы можете увеличить его, изменив параметр |
По умолчанию 65 536. Вы можете увеличить его, изменив параметр |
До 1 024 на коллекцию. |
Миллионы |
Гибкость схемы данных |
Высокая |
Средняя |
Низкая |
Низкий |
Поддержка RBAC |
Да |
Да |
Нет |
Нет |
Производительность поиска |
Сильный |
Сильная |
Средняя |
Средняя |
Поддержка межарендного поиска |
Нет |
Нет |
Да |
Да |
Поддержка эффективной работы с "горячими" и "холодными" данными |
Да |
Да |
Да |
Нет В настоящее время стратегия на уровне ключей разделов не поддерживается. |
При выборе стратегии многопользовательской работы в Milvus необходимо учитывать несколько факторов.
Масштабируемость: Ключ раздела > раздел > коллекция > база данных
Если вы планируете поддерживать очень большое количество арендаторов (миллионы и более), используйте стратегию на уровне ключа раздела.
Сильные требования к изоляции данных: База данных = Коллекция > Раздел > Ключ раздела
Выбирайте стратегии на уровне базы данных, коллекции или раздела, если у вас строгие требования к физической изоляции данных.
Гибкая схема данных для данных каждого арендатора: База данных > Коллекция > Раздел = Ключ раздела
Стратегии на уровне базы данных и на уровне коллекции обеспечивают полную гибкость схем данных. Если структуры данных ваших арендаторов отличаются, выбирайте многопользовательский режим на уровне базы данных или на уровне коллекции.
Другие
Производительность: Производительность поиска определяется различными факторами, включая индексы, параметры поиска и конфигурацию машины. Milvus также поддерживает настройку производительности. Рекомендуется протестировать фактическую производительность перед выбором стратегии многопользовательской работы.
Эффективная обработка "горячих" и "холодных" данных: В настоящее время стратегии на уровне баз данных, коллекций и разделов поддерживают работу с "горячими" и "холодными" данными.
Поиск между арендаторами: Только стратегии на уровне разделов и разделов-ключей поддерживают межпользовательские запросы.