マルチテナンシーの実装
Zilliz Cloud では、マルチテナンシーとは、複数の顧客またはチーム(テナントと呼ばれる)が同じクラスターを共有しながらも、隔離されたデータ環境を維持することを意味します。
Zilliz Cloud は4つのマルチテナンシーストラテジーをサポートしており、それぞれがスケーラビリティ、データ分離、柔軟性の間で異なるトレードオフを提供します。このガイドでは、それぞれのオプションを説明し、ユースケースに最も適したストラテジーを選択するのに役立ちます。
マルチテナンシーストラテジー
Zilliz Cloud では、4つのレベルでマルチテナンシーをサポートしています:データベース、コレクション、パーティション、およびパーティションキー。
データベースレベルのマルチテナンシー
データベースレベルのマルチテナンシーでは、各テナントに1つ以上のコレクションを含む対応するデータベースが割り当てられます。

-
スケーラビリティ:データベースレベルのマルチテナンシーストラテジーは Zilliz Cloud の専用クラスターでのみ利用可能で、最大1,024のテナントをサポートします。
-
データ分離:各データベースのデータは完全に分離されており、規制環境や厳しいコンプライアンス要件を持つ顧客に理想的なエンタープライズグレードのデータ分離を提供します。
-
柔軟性:各データベースは異なるスキーマを持つコレクションを持つことができ、非常に柔軟なデータ編成を可能にし、各テナントが独自のデータスキーマを持つことを可能にします。
-
その他:このストラテジーは RBAC をサポートしており、テナントごとのきめ細かいユーザーアクセス制御を可能にします。さらに、ホットデータとコールドデータを効果的に管理するために、特定のテナントのデータを柔軟にロードまたは解放できます。
コレクションレベルのマルチテナンシー
コレクションレベルのマルチテナンシーでは、各テナントにコレクションが割り当てられ、強力なデータ分離を提供します。

-
スケーラビリティ:クラスターは最大16,384のコレクションを保持できるため、このストラテジーはクラスター内で同じ数のテナントを収容できます。
-
データ分離:コレクションは物理的に相互に分離されています。このストラテジーは強力なデータ分離を提供します。
-
柔軟性:このストラテジーでは、各コレクションが独自のスキーマを持つことができ、異なるデータスキーマを持つテナントに対応できます。
-
その他:このストラテジーは RBAC をサポートしており、テナントに対するきめ細かいアクセス制御を可能にします。さらに、ホットデータとコールドデータを効果的に管理するために、特定のテナントのデータを柔軟にロードまたは解放できます。
パーティションレベルのマルチテナンシー
パーティションレベルのマルチテナンシーでは、各テナントは共有コレクション内に手動で作成されたパーティションに割り当てられます。

-
スケーラビリティ:コレクションはコレクションごとに最大1,024のパーティションを保持できるため、同じ数のテナントを収容できます。
-
データ分離:各テナントのデータはパーティションによって物理的に分離されます。
-
柔軟性:このストラテジーでは、すべてのテナントが同じデータスキーマを共有する必要があります。また、パーティションは手動で作成する必要があります。
-
その他:RBAC はパーティションレベルでサポートされていません。テナントは個別に、または複数のパーティションにわたって照会できることから、このアプローチはテナントセグメント間での集約クエリや分析に適しています。さらに、ホットデータとコールドデータを効果的に管理するために、特定のテナントのデータを柔flexiblyにロードまたは解放できます。
パーティションキー レベルのマルチテナンシー
このストラテジーでは、すべてのテナントが単一のコレクションとスキーマを共有しますが、各テナントのデータは パーティションキー 値に基づいて16の物理的に分離されたパーティションに自動的にルーティングされます。各物理的パーティションが複数のテナントを含む可能性がありますが、異なるテナントのデータは論理的に分離されたままです。

-
スケーラビリティ:パーティションキーレベルのストラテジーは最もスケーラブルなアプローチを提供し、数百万のテナントをサポートします。
-
データ分離:このストラテジーは複数のテナントが物理的パーティションを共有できるため、比較的弱いデータ分離を提供します。
-
柔軟性:すべてのテナントが同じデータスキーマを共有しなければならないため、このストラテジーは限られたデータの柔軟性を提供します。
-
その他:RBAC はパーティションキーレベルでサポートされていません。テナントは個別に、または複数のパーティションにわたって照会できることから、このアプローチはテナントセグメント間での集約クエリや分析に適しています。
適切なマルチテナンシーストラテジーの選択
以下の表は、4つのレベルのマルチテナンシーストラテジーを包括的に比較したものです。
データベースレベル | コレクションレベル | パーティションレベル | パーティションキー レベル | |
|---|---|---|---|---|
クラスター展開オプション | 専用のみ | すべての展開オプション | すべての展開オプション | すべての展開オプション |
データ分離 | 物理的 | 物理的 | 物理的 | 物理的 + 論理的 |
最大テナント数 | 1024 | クラスター展開オプションとプロジェクトプランに応じて最大16,384。 詳細は Zilliz Cloud 制限事項 を参照してください | クラスター展開オプションとプロジェクトプランに応じてコレクションごとに最大1,024。 詳細は Zilliz Cloud 制限事項 を参照してください | 数百万 |
データスキーマの柔軟性 | 高 | 中 | 低 | 低 |
RBAC サポート | はい | はい | いいえ | いいえ |
検索パフォーマンス | 強 | 強 | 中 | 中 |
テナント間検索サポート | いいえ | いいえ | はい | はい |
ホットおよびコールドデータの効果的な処理サポート | はい | はい | はい | いいえ 現在、パーティションキーレベルのストラテジーではサポートされていません。ただし、多数のテナントがいてホットおよびコールドデータの効果的な処理が必要な場合は、お問い合わせください。 |
Zilliz Cloud でマルチテナンシーストラテジーを選択する際には、いくつかの考慮事項があります。
-
スケーラビリティ: パーティションキー > パーティション > コレクション > データベース
非常に多数のテナント(数百万以上)をサポートすると予想される場合は、パーティションキーレベルのストラテジーを使用します。
-
強力なデータ分離要件: データベース = コレクション > パーティション > パーティションキー
厳格な物理的データ分離要件がある場合は、データベース、コレクション、またはパーティションレベルのストラテジーを選択します。
-
各テナントのデータの柔軟なデータスキーマ: データベース > コレクション > パーティション = パーティションキー
データベースレベルとコレクションレベルのストラテジーは、データスキーマの完全な柔軟性を提供します。テナントのデータ構造が異なる場合は、データベースレベルまたはコレクションレベルのマルチテナンシーを選択してください。
-
その他
-
パフォーマンス: 検索パフォーマンスは、インデックス、検索パラメータ、マシン構成などさまざまな要因によって決定されます。Zilliz Cloud はパフォーマンス調整もサポートしています。マルチテナンシーストラテジーを選択する前に、実際のパフォーマンスをテストすることをお勧めします。
-
ホットおよびコールドデータの効果的な処理: 現在、データベースレベル、コレクションレベル、およびパーティションレベルのストラテジーはすべて、ホットおよびコールドデータ処理をサポートしています。パーティションキーレベルのストラテジーを選択したいが、ホットおよびコールドデータ処理を必要とする場合は、お問い合わせください。
-
テナント間検索: パーティションレベルとパーティションキーレベルのストラテジーのみが、テナント間クエリをサポートしています。
-