マルチテナントを実装する
Zilliz Cloudでは、マルチテナントとは、複数の顧客またはチーム(テナントと呼ばれる)が同じクラスターを共有しながら、分離されたデータ環境を維持することを意味します。
Zilliz Cloudは4つのマルチテナント戦略をサポートしており、それぞれがスケーラビリティ、データの分離、柔軟性のトレードオフを提供しています。このガイドでは、各オプションについて説明し、ユースケースに最適な戦略を選択するのに役立ちます。
Zilliz Cloudのマルチテナント戦略
Zilliz Cloudは、データベース、コレクション、パーティション、パーティションキーの4つのレベルでマルチテナントをサポートしています。
データベースレベルのマルチテナント
データベースレベルのマルチテナントでは、各テナントは1つ以上のコレクションを含む対応するデータベースを受け取ります。
-
スケーラビリティ:データベースレベルのマルチテナント戦略は、Zilliz Cloudの専用クラスタープランでのみ利用可能で、最大1,024テナントをサポートしています。
-
データ分離:各データベースのデータは完全に分離されており、規制環境や厳格なコンプライアンスニーズを持つ顧客に最適なエンタープライズグレードのデータ分離を提供します。
-
柔軟性:各データベースは異なるスキーマを持つコレクションを持つことができ、非常に柔軟なデータ組織を提供し、各テナントが独自のデータスキーマを持つことができます。
-
その他:この戦略はRBACもサポートしており、テナントごとのユーザーアクセスをきめ細かく制御できます。さらに、特定のテナントのデータを柔軟にロードまたはリリースして、ホットデータとコールドデータを効果的に管理できます。
コレクションレベルのマルチテナント
コレクションレベルのマルチテナンシーでは、各テナントにコレクションが割り当てられ、強力なデータ分離が提供されます。
-
スケーラビリティ:クラスターは最大16,384のコレクションを保持できるため、この戦略はクラスター内の同じ数のテナントに対応できます。
-
データの分離:コレクションは互いに物理的に分離されています。この戦略は強力なデータの分離を提供します。
-
柔軟性:この戦略により、各コレクションに独自のスキーマを持たせ、異なるデータスキーマを持つテナントに対応できます。
-
その他:この戦略はRBACもサポートしており、テナントに対するきめ細かいアクセス制御を可能にします。さらに、特定のテナントのデータを柔軟にロードまたはリリースして、ホットデータとコールドデータを効果的に管理できます。
パーティションレベルのマルチテナント
パーティションレベルのマルチテナントでは、各テナントは共有コレクション内で手動で作成されたパーティションに割り当てられます。
-
スケーラビリティ:コレクションは最大1,024のパーティションを保持でき、同じ数のテナントを収容できます。
-
データの分離:各テナントのデータはパーティションによって物理的に分離されています。
-
柔軟性:この戦略では、すべてのテナントが同じデータスキーマを共有する必要があります。また、パーティションは手動で作成する必要があります。
-
その他: RBACはパーティションレベルではサポートされていません。テナントは個別にまたは複数のパーティション間でクエリを実行できるため、このアプローチはテナントセグメント全体にわたる集計クエリや分析を含むシナリオに適しています。さらに、特定のテナントのデータを柔軟にロードまたはリリースして、ホットデータとコールドデータを効果的に管理できます。
パーティションキーレベルのマルチテナント
この戦略では、すべてのテナントが単一のコレクションとスキーマを共有しますが、各テナントのデータはパーティションキーの値に基づいて自動的に16の物理的に分離されたパーティションにルーティングされます。各物理パーティションには複数のテナントを含めることができますが、異なるテナントからのデータは論理的に分離されたままです。
-
スケーラビリティ:パーティションキーレベル戦略は、何百万ものテナントをサポートする最もスケーラブルなアプローチを提供します。
-
データ分離:この戦略では、物理パーティションに複数のテナントが共有できるため、比較的弱いデータ分離が提供されます。
-
柔軟性:すべてのテナントが同じデータスキーマを共有する必要があるため、この戦略ではデータの柔軟性が制限されます。
-
その他: RBACはパーティションキーレベルではサポートされていません。テナントは個別にまたは複数のパーティション間でクエリを実行できるため、このアプローチはテナントセグメント全体で集計クエリや分析を行うシナリオに適しています。
適切なマルチテナント戦略の選択
以下の表は、マルチテナント戦略の4つのレベルの包括的な比較を提供しています。
データベースレベル | コレクションレベル | パーティションレベル | パーティションのキーレベル | |
---|---|---|---|---|
プランの可用性 | 専用プランのみ | すべてのプラン | すべてのプラン | すべてのプラン |
データの分離 | 物理的な | 物理的な | 物理的な | 物理的な+論理的な |
最大テナント数 | 1024 | クラスタープランによって最大16,384まで。 Zillizクラウドの制限を見る | クラスタープランに応じて、コレクションごとに最大1,024まで。 Zillizクラウドの制限を見る | 何百万も |
データスキーマの柔軟性 | 高い | ミディアム | 低い | 低い |
RBACサポート | はい | はい | いいえ | いいえ |
検索パフォーマンス | 強い | 強い | ミディアム | ミディアム |
クロステナント検索サポート | いいえ | いいえ | はい | はい |
ホットデータとコールドデータを効果的に処理するためのサポート | はい | はい | はい | いいえ 現在、パーティションキーレベル戦略はサポートされていません。ただし、大規模なテナントがあり、ホットデータとコールドデータを効果的に処理する必要がある場合は、お問い合わせください。 |
Zilliz Cloudでマルチテナント戦略を選択する際に考慮すべき要素がいくつかあります。
-
スケーラビリティ:パーティションキー>パーティション>コレクション>データベース
非常に多数のテナント(数百万以上)をサポートする必要がある場合は、パーティションキーレベル戦略を使用します。
-
強力なデータ分離要件:データベース=コレクション>パーティション>パーティションキー
厳密な物理データ分離要件がある場合は、データベース、コレクション、またはパーティションレベルの戦略を選択します。
-
各テナントのデータに対する柔軟なデータスキーマ:データベース>コレクション>パーティション=パーティションキー
データベースレベルとコレクションレベルの戦略は、データスキーマに完全な柔軟性を提供します。テナントのデータ構造が異なる場合は、データベースレベルまたはコレクションレベルのマルチテナントを選択してください。
-
その他
-
パフォーマンス:検索のパフォーマンスは、インデックス、検索パラメータ、マシンの設定など、さまざまな要因によって決定されます。Zilliz Cloudはパフォーマンスチューニングもサポートしています。マルチテナント戦略を選択する前に、実際のパフォーマンスをテストすることをお勧めします。
-
ホットデータとコールドデータの効果的な処理:現在、データベースレベル、コレクションレベル、パーティションレベルの戦略はすべて、ホットデータとコールドデータの処理をサポートしています。パーティションキーレベルの戦略を選択したいが、ホットデータとコールドデータの処理が必要な場合は、お問い合わせください。
-
テナント間検索:パーティションレベルとパーティションキーレベルの戦略のみが、テナント間クエリをサポートしています。
-