🚀 Try Zilliz Cloud, the fully managed Milvus, for free—experience 10x faster performance! Try Now>>

milvus-logo
LFAI
フロントページへ
  • コンセプト

マルチテナント戦略

多くのユースケースにおいて、開発者は1つのMilvusクラスタを運用し、数人の製品チームや数百万人のエンドユーザなど、複数のテナントにサービスを提供したいと考えています。このガイドでは、Milvusでマルチテナントを実現するためのいくつかの戦略について説明します。

Milvusはデータベース、コレクション、またはパーティションレベルでマルチテナンシーをサポートするように設計されています。マルチテナントの目的は、データとリソースを互いに分離することです。異なるレベルでマルチテナンシーを実装することにより、異なる分離の程度を達成することができますが、異なるオーバーヘッドも伴います。ここではそのトレードオフについて説明する。

データベース指向マルチテナンシー

Milvusバージョン2.2.9以降、1つのMilvusクラスタに複数のデータベースを作成することができるようになりました。この機能により、テナントごとにデータベースを割り当て、テナントごとにコレクションを作成することで、データベース指向のマルチテナントを実現することができます。このアプローチはテナントにとって最適なデータとリソースの分離を提供しますが、1クラスタに最大64データベースまでという制限があります。

コレクション指向のマルチテナント

コレクション指向のマルチテナントを実現するには2つの方法が考えられます。

すべてのテナントに1つのコレクション

テナントを区別するためにテナント・フィールドを追加することで、単一のコレクションを使用してマルチテナントを実装するのは簡単なオプションです。特定のテナントに対してANN検索を行う場合、フィルタ式を追加して、他のテナントに属するすべてのエンティティをフィルタリングします。これは、マルチテナントを実現する最も簡単な方法です。ただし、フィルタのパフォーマンスがANN検索のボトルネックになる可能性があることに注意してください。検索パフォーマンスを向上させるには、以下のパーティション指向のマルチテナントで最適化できます。

テナントごとに1つのコレクション

すべてのテナントのデータを1つのコレクションに格納するのではなく、テナントごとにコレクションを作成してデータを格納する方法もあります。これにより、データの分離とクエリのパフォーマンスが向上します。ただし、このアプローチはスケジューリングに多くのリソースを必要とし、クラスタ内のコレクション数は最大でも10,000に制限されることに留意してください。

パーティション指向のマルチテナント

パーティション指向のマルチテナンシーを実現するには2つの方法があります:

テナントごとに1つのパーティション

1つのコレクションを管理するのは、複数のコレクションを管理するよりもはるかに簡単です。複数のコレクションを作成する代わりに、テナントごとにパーティションを割り当てて、柔軟なデータ分離とメモリ管理を実現することを検討してください。パーティション指向のマルチテナントの検索パフォーマンスは、コレクション指向のマルチテナントよりもはるかに優れています。ただし、コレクションのテナントの数は、コレクションが保持できるパーティションの最大数を超えてはならないことに注意してください。

パーティションキーベースのマルチテナンシー

Milvus 2.2.9では、パーティションキーという新機能が導入されました。コレクションの作成時に、テナントフィールドを指定し、それをパーティションキーフィールドにします。Milvusはパーティションキーフィールドのハッシュ値に従って、パーティションにエンティティを格納する。ANN検索を行う際、Milvusはパーティションキーを含むパーティションのみを検索する。これにより、検索範囲が大幅に縮小されるため、パーティション・キーがない場合よりもパフォーマンスが向上する。

この戦略により、Milvusコレクションがサポートできる最大テナント数の制限が解除され、Milvusが自動的にパーティションを管理するため、リソース管理が大幅に簡素化されます。

まとめると、上記のマルチテナント戦略のいずれか、またはいくつかを使用して独自のソリューションを形成することができます。以下の表は、データ分離、検索パフォーマンス、最大テナント数の観点からこれらの戦略を比較したものです。

データ分離検索パフォーマンス最大テナント数推奨シナリオ
データベース指向強い強い64プロジェクトによってコレクションを変える必要がある場合、特に組織内の部署間でデータを分離するのに適しています。
すべてのコレクションに1つのコレクション弱い該当なしリソースが限られており、データの分離に無頓着な場合。
テナントごとに1つのコレクション強い強い10,000未満クラスタあたりのテナント数が10,000未満の場合。
テナントごとに1パーティション強い4,096コレクションあたりのテナント数が4,096未満の場合。
パーティションキーベース強い10,000,000+数百万テナントの急激な増加が予測される場合。

次の課題

データベース・スキーマの管理

翻訳DeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
フィードバック

このページは役に立ちましたか ?