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

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

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

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

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