コレクションの管理(コンソール)
コレクションはベクトル埋め込みとメタデータを保存するために使用される2次元テーブルです。コレクション内のすべてのエンティティは同じスキーママを共有します。データ管理やマルチテナントの目的で複数のコレクションを作成できます。
このガイドでは、Webコンソールでのコレクション作成および管理操作を説明します。視覚的なインターフェースを好むユーザー向けです。SDKに精通している場合は、それらを使用してコレクションを作成および管理することもできます。詳細については、コレクションの作成を参照してください。
強力なデータ分離が必要で、少数のテナントのみを管理する場合は、テナントごとに個別のコレクションを作成できます。
ただし、クラスタープランに応じて最大16,384個のコレクションしか作成できません。したがって、大規模なマルチテナンシーには、使用ケースに応じてパーティションベースまたはパーティションキーベースのマルチテナンシーなどの代替戦略を使用することを検討してください。詳細については、マルチテナンシーの実装を参照してください。
コレクションの作成
Zilliz Cloudコンソールでは、異なるシナリオに合わせた3つのコレクション作成方法を提供しています:
-
独自のコレクションを作成: データセットとユースケースに合わせてスキーママとインデックスパラメータをカスタマイズします。スキーママの詳細な制御が必要なユーザーに理想的です。
-
サンプルコレクションを作成: 事前定義されたスキーママとサンプルデータセットで迅速にコレクションをセットアップします。Zilliz Cloudを探索する新規ユーザーにおすすめです。
-
データ付きの既存コレクションをクローン: 同じデータベース内にある既存のコレクションを複製します。テストコレクションから本番コレクションにスキーママとデータの両方をコピーする必要がある環境複製シナリオに役立ちます。
-
既存のスキーママから作成: 既存の1つのコレクションのスキーママを使用して迅速に新しいコレクションを作成し、最終決定前に編集オプションを提供します。
以下のデモでは、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タイプおよびプランに基づいて推奨されるデフォルト値で構成されます。
クラスターレベルのデフォルト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値を編集できます。 -
既存のARRAYフィールドの
max_capacity値および、ARRAYタイプがVARCHARの場合のmax_length値を編集できます。 -
既存のスキーママに新しいスカラー項目を追加できます。
-
シャード設定を変更するには、代わりにコレクションをクローン機能を使用してください。
-
TTL、mmap、またはパーティションキー設定を変更するには、SDKを使用してください。詳細については、コレクションの変更を参照してください。
-
コレクション作成時に動的フィールドを有効にしていない場合は、SDKまたはWebコンソールを使用して後から有効にすることが可能です。SDKの詳細については、コレクションの変更を参照してください。Webコンソールで動的フィールドを有効にする方法の詳細については、上記のデモを参照してください。
他のコレクションスキーママ設定は編集できません。変更を適用するには、必要な構成で新しいコレクションを作成し、データをインポートしてください。
-
-
コレクションのロードおよびリリース: Zilliz Cloud Webコンソールでは、コレクションは作成直後にメモリに自動的にロードされ、検索およびクエリに使用可能になります。メモリ空間を解放するために、未使用のコレクションをリリースできます。
-
コレクションを別のデータベースに移動: 関連するコレクションを同じデータベース内にグループ化し、必要に応じてコレクションをデータベース間で移動できます。
-
コレクション内のパーティションを管理: パーティションキーが有効になっているコレクションの場合、パーティションを手動で管理する必要はありません。パーティションキーが無効になっているコレクションの場合、手動でパーティションを管理し、以下の操作を実行できます:
-
パーティションの作成: 各コレクションに最大1,024個のパーティションを作成できます。詳細については、Zilliz Cloud制限を参照してください。
-
パーティションの削除: デフォルトパーティションは削除できず、パーティションを削除すると、その中のすべてのデータが不可逆的に削除されます。パーティションを削除する前に、まずコレクションをリリースする必要があります。
-
-
コレクションエリァスの表示:コレクションリストページで、クラスター内のすべてのコレクションのエリァスを表示できます。
-
コレクションの削除: リソースのオーバーヘッドを減らすために、不要になったコレクションを削除できます。コレクションを削除すると、その中のすべてのデータが不可逆的に削除されます。