コレクションの管理 (コンソール)
コレクションは、ベクトル埋め込みとメタデータを格納するために使用される2次元テーブルです。コレクション内のすべてのエンティティは同じスキーマを共有します。データ管理またはマルチテナンシーの目的で複数のコレクションを作成できます。
このガイドでは、Webコンソールでのコレクション作成と管理操作について説明します。ビジュアルインターフェースを好むユーザーを対象としています。SDKに精通している場合は、SDKを通じてコレクションを作成および管理することもできます。詳細については、コレクション作成 を参照してください。
強力なデータ分離を必要とし、少数のテナントのみを管理する場合は、各テナントに個別のコレクションを作成できます。
ただし、クラスタープランに応じて最大16,384個のコレクションしか作成できません。したがって、大規模なマルチテナンシーについては、使用ケースに応じてパーティションベースまたはパーティションキーベースのマルチテナンシーなどの代替戦略を検討してください。詳細については、マルチテナンシーの実装を参照してください。
コレクションの作成
Zilliz Cloudコンソールは、コレクションを作成するための3つの方法を提供しており、それぞれ異なるシナリオ向けに設計されています。
-
独自のコレクションの作成: データセットとユースケースに合わせてスキーマとインデックスパラメータをカスタマイズします。スキーマを細かく制御する必要があるユーザーに最適です。
-
サンプルコレクションの作成: 事前定義されたスキーマとサンプルデータセットでコレクションをすばやく設定します。Zilliz Cloudを検討している新しいユーザーに推奨されます。
-
データ付き既存コレクションのクローン作成: 同じデータベース内で既存のコレクションを複製します。テストコレクションから本番コレクションにスキーマとデータの両方をコピーする必要がある環境複製のシナリオに便利です。
-
既存のスキーマからの作成: 既存のコレクションのスキーマを使用して新しいコレクションをすばやく作成します。最終確定前に編集するオプションがあります。
以下は、Web UI上でこれらの機能がどこにあるかを示すデモです。
コレクションを作成する際に出会ういくつかの概念は以下のとおりです。
コレクションの基本情報
コレクションのメタデータには次が含まれます:
-
コレクション名
-
(オプション) コレクションの説明
-
コレクションが所属するデータベース。データベース はクラスターとコレクションの間に位置し、コレクションを管理および整理するための論理コンテナとして機能します。関連するコレクションを同じデータベース下にグループ化できます。
コレクションスキーマ
スキーマはコレクションのデータ構造を定義し、以下を含む必要があります:
-
1つの主キー (PK) フィールド
-
少なくとも1つのベクトルフィールド。コレクションで許可されるベクトルフィールド数の制限については、Zilliz Cloud 制限 を参照してください。
-
(オプション) メタデータ用のスカラーフィールド
-
(オプション) ダイナミックフィールド。ダイナミックフィールドを有効にすると、既存のスキーマを変更せずにデータ挿入中にフィールドを追加できるため、コレクションスキーマに柔軟性が生まれます。データ構造が固定されていない場合は、ダイナミックフィールドを有効にすることをお勧めします。フィルターまたはクエリで頻繁に使用されるフィールドについては、ダイナミックフィールドの代わりにあらかじめスキーマで定義すると、クエリパフォーマンスを最適に保つことができます。
スキーマ構成の多くは、コレクションが作成されると変更できなくなります。現在および将来のビジネスニーズを満たすように、スキーマを慎重に設計してください。ベストプラクティスについては、スキーマの説明を参照してください。
インデックス
インデックスは、検索とクエリを高速化するためにデータを整理するデータ構造です。Zilliz Cloudは2種類のインデックスをサポートしています:
-
ベクトルインデックス: AUTOINDEX を使用して自動的に作成され、ベクトル検索を高速化します。スキーマに複数のベクトルフィールドがある場合は、各ベクトルフィールドに対して別々のインデックスを作成できます。さらに、ベクトル間の距離を計算するために使用されるメトリックタイプと、インデックスコスト、パフォーマンス、および容量のトレードオフを制御するための基盤となる量子化戦略を管理するインデックス構築レベルを編集することもできます。
-
スカラーインデックス: デフォルトでは、Zilliz Cloudはスカラーフィールドに自動的にインデックスを作成しません。ただし、フィルターに一般的に使用されるスカラーフィールドに手動でインデックスを作成して、検索とクエリを高速化できます。
コレクション作成中にインデックス作成をスキップして、後で追加することもできます。詳細については、インデックスの管理を参照してください。
関数とアナライザー
アナライザーは、全文検索で生テキストをトークン化および正規化するために使用されます。入力テキストを個別に検索可能な用語に分解し、停止語や句読点などの不要な要素を削除して検索精度を向上させます。詳細については、アナライザーの概要 を参照してください。
関数は、アナライザーによって生成されたトークン化された用語を、関連性スコアを持つスパースベクトルに変換するために使用されます。BM25などのスコアリングアルゴリズムを適用して、インデックス作成と文書ランキングのための重み付き表現を生成します。
関数を使用するには、スキーマにSPARSE_FLOAT_VECTORフィールドとVARCHARフィールドの両方を追加する必要があります。詳細については、全文検索を参照してください。
パーティションとパーティションキー
パーティション: パーティションはコレクションの物理的なサブセットです。パーティションは親コレクションと同じデータスキーマを共有しますが、コレクション内のデータの一部のみを含みます。各コレクションには1つのデフォルトパーティションが付属します。マルチテナンシーおよびデータ管理目的で、さらにパーティションを手動で追加できます。追加のパーティションが作成されていない場合、コレクションに挿入されたすべてのデータはデフォルトパーティションに含まれます。詳細については、パーティションの管理を参照してください。
パーティションキー: パーティションキーは、パーティションに基づく検索最適化ソリューションです。非主キーのINT64またはVARCHARフィールドをパーティションキーとして指定すると、Zilliz Cloudによって16個のパーティションが自動的に作成され、挿入されたすべてのエンティティはそのパーティションキー値に基づいてこれらの16個の自動生成されたパーティションに含まれます。コレクションでパーティションキーが有効になると、このコレクション内で手動でパーティションを作成できなくなります。詳細については、パーティションキーの使用を参照してください。
パーティションを作成する必要があるか、またはパーティションキーを使用する必要があるかを判断するには、以下の要因を検討できます。
マルチテナンシーストラテジー: 数百万のテナントをサポートする必要がある場合は、パーティションキーを使用してください。テナント間で強力な物理的データ分離が必要な場合は、パーティションを使用してください。詳細については、マルチテナンシーの実装を参照してください。
リソース管理: パーティションの作成と管理を自分で行いたい場合は、パーティションの使用を選択できます。パーティションの自動作成と管理が必要な場合は、パーティションキーを使用してください。
ホットデータとコールドデータの管理: ホットデータとコールドデータを効率的に処理する必要がある場合は、パーティションキーを使用してください。専用クラスターでホットデータとコールドデータの管理のためにパーティションキーを使用するには、お問い合わせください。
mmap
メモリマッピング (mmap) は、大規模ファイルをメモリにロードすることなくディスク上で直接アクセスできるようにするメモリ使用量の最適化です。mmapを有効にすると、同じCUサイズ指定でより多くのデータを保存できます。以下に示すように、mmapはCUタイプとプランに基づいて推奨デフォルト値で設定されます。
-
無料版、サーバーレス版、および拡張容量CUタイプの専用クラスターでは、mmapがデフォルトで有効になっています。この設定は固定されており、変更できません。そのため、コレクション作成中にmmap設定オプションが表示されない場合があります。
-
パフォーマンス最適化CUタイプの専用クラスターでは、mmapがデフォルトで無効になっています。
-
容量最適化CUタイプの専用クラスターでは、mmapがデフォルトで有効になっています。
クラスターレベルのデフォルトmmap設定については、mmapの使用を参照してください。
コレクション作成時、使用ケースに応じてコレクションレベルまたはフィールドレベルでmmap設定をオプションで構成できます。より低いレベルの設定は、より高いレベルの設定より優先されます:フィールド > コレクション > クラスター。
-
コレクションレベルのmmap: コレクション全体にわたる生データのmmapを有効にします。この設定は後で変更できますが、最初にコレクションをリリースする必要があります。
-
フィールドレベルのmmap: カスタム設定を介して選択したフィールドの生データとスカラーインデックスのmmapを有効にします。一般的に、データサイズが大きく、頻繁にフィルター処理またはクエリ処理されないフィールドでmmapを有効にすることをお勧めします。設定は選択したフィールドのみに適用され、後で変更できます。フィールドレベルのmmap設定を変更するには、最初にコレクションをリリースする必要があります。
mmap設定には注意してください。デフォルトのmmap設定を変更すると、メモリ不足 (OOM) 問題によりパフォーマンスが低下したり、ロードに失敗したりする可能性があります。ベストプラクティスについては、mmapの使用を参照してください。
以下は、Zilliz Cloud Webコンソールでこの機能の入口を示すデモです。
シャード
シャードは、データ入力チャネルに対応するコレクションの水平断面です。すべてのコレクションにはデフォルトで1つのシャードがあります。書き込みスループットを増やすために、さらにシャードを追加できます。
一般的なガイドラインとして、1億行のデータにつき1シャードを追加することを検討してください。許可されるシャードの最大数は、クラスタープランとクラスターCUサイズによって異なります。詳細については、Zilliz Cloud 制限 を参照してください。
シャード数は、コレクションが作成された後にコレクションのクローン作成 機能を使用して後から編集できます。
全文検索
Zilliz Cloudコンソールでは、全文検索で使用する関数とアナライザーを構成できます。全文検索の詳細については、全文検索を参照してください。
以下は、Zilliz Cloud Webコンソールでこの機能の入口を示すデモです。
テキストマッチ
Zilliz Cloudコンソールでは、テキストマッチのフィールドとアナライザーも構成できます。テキストマッチの詳細については、テキストマッチを参照してください。
以下は、Zilliz Cloud Webコンソールでこの機能の入口を示すデモです。
コレクションの管理
Zilliz Cloudは、Webコンソールを介して作成されたコレクションに対する以下の管理操作をサポートしています。
-
コレクション名の変更: 既存のコレクション名を変更できます。
-
コレクションスキーマと設定の編集: 現在、Zilliz Cloudでは以下のスキーマと設定の編集のみがサポートされています。
-
既存のVARCHARフィールドの
max_length値を編集できます。 -
既存の配列フィールドの
max_capacity値および、配列タイプがVARCHARの場合のmax_length値を編集できます。 -
既存のスキーマに新しいスカラーフィールドを追加できます。
-
シャード設定を変更するには、代わりにコレクションのクローン作成 機能を使用してください。
-
TTL、mmap、またはパーティションキーの設定を変更するには、代わりにSDKを使用してください。詳細については、コレクションの変更を参照してください。
-
コレクション作成時にダイナミックフィールドを有効にしていない場合、SDKまたはWebコンソールを使用して後から有効にすることができます。SDKの詳細については、コレクションの変更を参照してください。Webコンソールでダイナミックフィールドを有効にする方法については、上記デモを参照してください。
それ以外のコレクションスキーマ設定は編集できません。変更を適用するには、目的の構成で新しいコレクションを作成し、データをインポートしてください。
-
-
コレクションのロードとリリース: Zilliz Cloud Webコンソールでは、コレクションは作成後すぐにメモリに自動ロードされ、検索とクエリに使用できます。メモリスペースを解放するには、使用されていないコレクションをリリースできます。
-
別のデータベースへのコレクションの移動: 関連するコレクションを同じデータベース内にグループ化し、必要に応じてデータベース間でコレクションを移動できます。
-
コレクション内のパーティション管理: パーティションキーを有効にしたコレクションでは、パーティションを手動で管理する必要はありません。パーティションキーを無効にしたコレクションでは、パーティションを手動で管理し、以下の操作を実行できます:
-
パーティションの作成: 各コレクションで最大1,024個のパーティションを作成できます。詳細については、Zilliz Cloud 制限 を参照してください。
-
パーティションの削除: デフォルトパーティションは削除できず、パーティションを削除するとその中のすべてのデータが不可逆的に削除されます。パーティションを削除する前に、まずコレクションをリリースする必要があります。
-
-
コレクションエイリアスの表示: コレクションリストページで、クラスター内のすべてのコレクションのエイリアスを表示できます。
-
コレクションの削除: リソースオーバーヘッドを削減するには、不要になったコレクションを削除できます。コレクションを削除すると、その中のすべてのデータが不可逆的に削除されます。