🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Концепции
  • Home
  • Docs
  • Концепции

  • Многопользовательская сеть

Стратегии работы с несколькими арендаторами

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

Milvus разработан для поддержки многопользовательского доступа на уровне баз данных, коллекций или разделов. Цель многопользовательской аренды - отделить данные и ресурсы друг от друга. Реализация многопользовательского доступа на разных уровнях позволяет достичь различной степени изоляции, но также влечет за собой различные накладные расходы. Здесь мы расскажем о компромиссах между ними.

Мультитенантность, ориентированная на базу данных

Начиная с версии 2.2.9 Milvus, вы можете создавать несколько баз данных в одном кластере Milvus. Эта возможность позволяет добиться ориентированной на базы данных многопользовательской аренды, назначая базу данных для каждого арендатора, чтобы они могли создавать свои собственные коллекции. Такой подход обеспечивает наилучшую изоляцию данных и ресурсов для арендаторов, однако он ограничен максимум 64 базами данных в одном кластере.

Мультитенантность, ориентированная на коллекции

Существует два возможных пути достижения ориентированной на коллекции многопользовательской среды.

Одна коллекция для всех арендаторов

Использование одной коллекции для реализации многопользовательского доступа путем добавления поля tenant для различения арендаторов - простой вариант. При выполнении поиска ANN для конкретного арендатора добавьте выражение фильтра, чтобы отсеять все сущности, принадлежащие другим арендаторам. Это самый простой способ добиться многопользовательского доступа. Однако имейте в виду, что производительность фильтра может стать узким местом ANN-поиска. Чтобы повысить производительность поиска, можно оптимизировать многопользовательскую работу, ориентированную на разделы.

Одна коллекция для каждого арендатора

Другой подход заключается в создании коллекции для каждого арендатора для хранения его собственных данных, вместо того чтобы хранить данные всех арендаторов в одной коллекции. Это обеспечивает лучшую изоляцию данных и производительность запросов. Однако следует помнить, что такой подход требует больше ресурсов для планирования и ограничен максимум 10 000 коллекций в кластере.

Ориентированное на разделы многопользовательское использование

Существует два способа достижения ориентированной на разделы многопользовательской сети:

Один раздел на одного арендатора

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

Мультиарендаторство на основе ключей разделов

В Milvus 2.2.9 появилась новая функция под названием "ключ раздела". При создании коллекции назначьте поле арендатора и сделайте его полем ключа раздела. Milvus будет хранить сущности в разделе в соответствии с хэш-значением поля ключа раздела. При выполнении поиска по ANN Milvus будет искать только в том разделе, который содержит ключ раздела. Это значительно сокращает объем поиска и обеспечивает более высокую производительность по сравнению с поиском без ключа раздела.

Эта стратегия снимает ограничение на максимальное количество арендаторов, которое может поддерживать коллекция Milvus, и значительно упрощает управление ресурсами, поскольку Milvus автоматически управляет разделами за вас.

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

Изоляция данныхПроизводительность поискаМаксимальное количество арендаторовРекомендуемые сценарии
Ориентированная на базу данныхСильныйСильный64Для тех, кому требуется, чтобы коллекции менялись в зависимости от проекта, особенно подходит для изоляции данных между отделами вашей организации.
Одна коллекция для всехСлабаяСредняяН/АДля тех, кто имеет ограниченные ресурсы и нечувствителен к изоляции данных.
Одна коллекция на одного арендатораСильнаяСильнаяМенее 10 000Для тех, у кого менее 10 000 арендаторов на кластер.
Один раздел на одного арендатораСреднийСильный1,024Для тех, у кого менее 1 024 арендаторов на кластер.
на основе ключей разделовСреднийСильная10,000,000+Для тех, кто прогнозирует быстрый рост числа арендаторов до миллионов.

Что дальше

Управлениесхемамибаз данных

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?