コレクションの管理 (コンソール)
コレクションは、ベクトル埋め込みとメタデータを格納するために使用される 2 次元テーブルです。コレクション内のすべてのエンティティは同じスキーマを共有します。データ管理やマルチテナンシーの目的で、複数のコレクションを作成できます。
このガイドでは、Web コンソール上でのコレクション作成および管理操作について説明します。これは視覚的なインターフェースを好むユーザー向けです。SDK に慣れている場合は、SDK を介してコレクションを作成および管理することもできます。詳細については、コレクションの作成 をご覧ください。
強力なデータ分離が必要で、少数のテナントのみを管理する場合は、各テナントごとに個別のコレクションを作成できます。
ただし、クラスタープラン に応じて、最大 16,384 個のコレクションしか作成できません。したがって、大規模なマルチテナンシーの場合、ユースケースに応じてパーティションベースまたはパーティションキーベースのマルチテナンシーなどの代替戦略を検討してください。詳細については、マルチテナンシーの実装 をご覧ください。
コレクションの作成
Zilliz Cloud コンソールでは、さまざまなシナリオに合わせて設計された 3 つの方法でコレクションを作成できます。
-
独自のコレクションを作成: データセットとユースケースに合わせてスキーマとインデックスパラメータをカスタマイズします。スキーマの詳細な制御が必要なユーザーに最適です。
-
サンプルコレクションを作成: 事前定義されたスキーマとサンプルデータセットを使用して、すばやくコレクションを設定します。Zilliz Cloud を探索する新規ユーザーにおすすめです。
-
データを含む既存のコレクションをクローン: 同じデータベース内の既存のコレクションを複製します。テスト用コレクションから本番用コレクションへスキーマとデータの両方をコピーする必要がある環境の複製シナリオで役立ちます。
-
既存のスキーマから作成: 既存のコレクションのスキーマを使用して新しいコレクションをすばやく作成し、確定前に編集するオプションを利用できます。
以下のデモでは、Web UI でこれらの機能を見つける場所を示しています。
以下は、コレクションを作成する際に遭遇する概念の一部です。
コレクションの基本情報
コレクションのメタデータには以下が含まれます。
-
コレクション名
-
(オプション) コレクションの説明
-
コレクションが属するデータベース。データベース はクラスターとコレクションの間のレイヤーであり、コレクションを管理および整理するための論理コンテナーとして機能します。関連するコレクションを同じデータベースの下にグループ化できます。
コレクションスキーマ
スキーマはコレクションのデータ構造を定義し、以下を含める必要があります。
-
1 つの主キー (PK) フィールド
-
少なくとも 1 つのベクトルフィールド。コレクションで許可されるベクトルフィールド数の制限については、Zilliz Cloud の制限 をご覧ください。
-
(オプション) メタデータ用のスカラーフィールド
-
(オプション) 動的フィールド。動的フィールドを有効にすると、既存のスキーマを変更せずにデータ挿入時にフィールドを追加できるため、コレクションスキーマに柔軟性が生まれます。データ構造が固定されていない場合は、動的フィールドを有効にすることをお勧めします。フィルターやクエリで頻繁に使用されるフィールドについては、クエリパフォーマンスを最適に保つために、動的フィールドを使用する代わりにスキーマで事前に定義してください。
スキーマ構成のほとんどは、コレクション作成後は変更できません。現在および将来のビジネスニーズを満たすように、スキーマを慎重に設計してください。ベストプラクティスについては、スキーマの説明 をご覧ください。
インデックス
インデックスは、検索とクエリを高速化するためにデータを整理するデータ構造です。Zilliz Cloud は 2 種類のインデックスをサポートしています。
-
ベクトルインデックス: AUTOINDEX を使用して自動的に作成され、ベクトル検索を高速化します。スキーマに複数のベクトルフィールドがある場合、各ベクトルフィールドに対して個別のインデックスを作成できます。さらに、ベクトル間の距離を計算するために使用される メトリックタイプ や、インデックスコスト、パフォーマンス、容量のトレードオフを制御する基盤となる量子化戦略を制御するインデックス構築レベルも編集できます。
-
スカラーインデックス: デフォルトでは、Zilliz Cloud はスカラーフィールドに対して自動的にインデックスを作成しません。ただし、検索とクエリを高速化するために、フィルタリングによく使用されるスカラーフィールドに対して手動でインデックスを作成できます。
コレクション作成中にインデックスの作成をスキップし、後でインデックスを追加することもできます。詳細については、インデックスの管理 をご覧ください。
関数
Zilliz Cloud では、関数によって、データ注入時およびクエリ実行時にコレクション内でテキスト関連の機能がどのように適用されるかが定義されます。
関数は、適用される時期に基づいて主に 2 つのカテゴリに分類されます。
-
検索前 Functions
検索前 Functions は、検索に使用できるベクトル表現に生テキストをどのように変換するかを定義します。これらはコレクション作成時に構成され、コレクションのスキーマの一部になります。
検索前 Functions の例には、BM25関数 やモデルベースの関数などがあります。
検索前 Functions の仕組みに関する概念的な概要については、関数とモデル推論の概要 をご覧ください。
-
検索後 Functions
検索後 Functions は、クエリ時に検索結果の順序を調整します。検索前 Functions とは異なり、検索後 Functions はコレクションスキーマにバインドされません。これらは検索リクエストのパラメータとして指定され、検索によって返された候補結果に対して動作します。
検索後 Functions は、インデックス作成や候補の取得には影響しません。
検索後 Functions の仕組みに関する概念的な概要については、関数とモデル推論の概要 をご覧ください。
パーティションとパーティションキー
Partition: パーティションはコレクションの物理的なサブセットです。パーティションは親コレクションと同じデータスキーマを共有しますが、コレクション内のデータの一部のみを含みます。各コレクションには 1 つのデフォルトパーティションが付属しています。マルチテナンシーやデータ管理の目的で、手動でさらにパーティションを追加できます。追加のパーティションが作成されない場合、コレクションに挿入されたすべてのデータはデフォルトパーティションに入ります。詳細については、パーティションの管理 をご覧ください。
Partition key: パーティションキーは、パーティションに基づく検索最適化ソリューションです。主キーではない INT64 または VARCHAR フィールドをパーティションキーとして指定すると、Zilliz Cloud によって 16 個のパーティションが自動的に作成され、挿入されたすべてのエンティティはパーティションキーの値に基づいてこれらの 16 個の自動生成されたパーティションに割り当てられます。コレクションでパーティションキーが有効になると、そのコレクションで手動でパーティションを作成することはできなくなります。詳細については、パーティションキーの使用 をご覧ください。
パーティションを作成するかパーティションキーを使用するかを決定するには、以下の要因を考慮できます。
マルチテナンシー戦略: 数百万のテナントをサポートする必要がある場合は、パーティションキーを使用してください。テナント間で強力な物理的なデータ分離が必要な場合は、パーティションを使用してください。詳細については、マルチテナンシーの実装 を参照してください。
リソース管理: パーティションを自分で作成および管理することを好む場合は、パーティションを使用することを選択できます。パーティションの自動作成および管理が必要な場合は、パーティションキーを使用してください。
ホットデータとコールドデータの管理: ホットデータとコールドデータを効率的に処理する必要がある場合は、パーティションキーを使用してください。専用クラスターでホットデータとコールドデータの管理にパーティションキーを使用するには、お問い合わせください。
mmap
メモリマッピング (mmap) は、large files on disk をメモリにロードせずに直接アクセスできるようにするメモリ使用量の最適化です。mmap を有効にすると、同じ CU サイズ仕様でより多くのデータを格納できます。以下に示すように、mmap は CU タイプとプランに基づいて推奨されるデフォルト値で構成されます。
-
Free、Serverless、および拡張容量 CU タイプを持つ Dedicated クラスターでは、mmap がデフォルトで有効になっています。この設定は固定されており変更できないため、コレクション作成中に mmap 構成オプションが表示されない場合があります。
-
パフォーマンス最適化 CU タイプを持つ Dedicated クラスターでは、mmap が デフォルトで無効 です。
-
容量最適化 CU タイプを持つ Dedicated クラスターでは、mmap がデフォルトで有効になっています。
クラスターレベルのデフォルト mmap設定 については、mmap の使用 をご覧ください。
コレクション作成中は、ユースケースに応じて、コレクションレベルまたはフィールドレベルで mmap設定 を任意に構成できます。下位レベルの設定は上位レベルの設定より優先されます。Field > Collection > Cluster.
-
コレクションレベルの mmap: コレクション全体の生データに対して mmap を有効にします。この設定は後で変更できますが、まずコレクションをリリースする必要があります。
-
フィールドレベルの mmap: カスタム設定を介して、選択したフィールドの生データとスカラーインデックスに対して mmap を有効にします。一般に、データサイズが大きく、頻繁にフィルタリングまたはクエリされないフィールドに対して mmap を有効にすることをお勧めします。この設定は選択したフィールドのみに適用され、後で変更できます。フィールドレベルの mmap設定 を変更するには、まずコレクションをリリースする必要があります。
mmap設定 には注意してください。デフォルトの mmap設定 を変更すると、メモリ不足 (OOM) 問題によりパフォーマンスが低下したり、ロードに失敗したりする可能性があります。ベストプラクティスについては、mmap の使用 をご覧ください。
以下のデモでは、Zilliz Cloud Web コンソールでのこの機能のエントランスを示しています。
シャード
シャードは、データ入力チャネルに対応するコレクションの水平スライスです。すべてのコレクションにはデフォルトで 1 つのシャードが付属しています。書き込みスループットを増やすために、さらにシャードを追加できます。
一般的なガイドラインとして、1 億行のデータごとに 1 つのシャードを追加することを検討してください。許可されるシャードの最大数は、クラスタープランとクラスター CU サイズによって異なります。詳細については、Zilliz Cloud の制限 をご覧ください。
シャード数は、コレクション作成後に コレクションのクローン 機能を介して後で編集できます。
フルテキスト検索
Zilliz Cloud コンソールでは、フルテキスト検索で使用する関数とアナライザーを構成できます。フルテキスト検索の詳細については、フルテキスト検索 をご覧ください。
以下のデモでは、Zilliz Cloud Web コンソールでのこの機能のエントランスを示しています。
Text Match
Zilliz Cloud コンソールでは、テキスト一致 に使用するフィールドとアナライザーも構成できます。テキスト一致 の詳細については、Text Match をご覧ください。
以下のデモでは、Zilliz Cloud Web コンソールでのこの機能のエントランスを示しています。
コレクションの管理
Zilliz Cloud は、Web コンソールを介して作成されたコレクションに対して以下の管理操作をサポートしています。
-
コレクションの名前変更: 既存のコレクションの名前を変更できます。
-
コレクションスキーマと設定の編集: 現在、Zilliz Cloud は以下のスキーマと設定の編集のみをサポートしています。
-
既存の VARCHAR フィールド の
max_length値を編集できます。 -
既存の ARRAY フィールド の
max_capacity値、および ARRAY タイプが VARCHAR である場合のmax_length値を編集できます。 -
既存のスキーマに新しいスカラーフィールドを追加できます。
-
shard 設定を変更するには、代わりに コレクションのクローン 機能を使用してください。
-
mmap または パーティションキー 設定を変更するには、代わりに SDK を使用してください。詳細については、コレクションの変更 をご覧ください。
-
コレクション作成時に動的フィールドを有効にしていない場合、SDK または Web コンソールを使用して後で有効にできます。SDK に関する詳細については、コレクションの変更 をご覧ください。Web コンソールで 動的フィールドの有効化 する方法の詳細については、上記のデモを参照してください。
その他のコレクションスキーマ設定は編集できません。変更を適用するには、希望する構成で新しいコレクションを作成し、そこにデータをインポートしてください。
-
-
コレクションのロードとリリース: Zilliz Cloud Web コンソールでは、コレクションは作成直後に自動的にメモリにロードされ、検索とクエリに利用可能になります。メモリスペースを解放するために、未使用のコレクションをリリースできます。Zilliz Cloud Web コンソールは、単一コレクションのロードまたはリリース、あるいは複数のコレクションのバッチロードまたはリリースをサポートしています。
-
コレクションを別のデータベースに移動: 関連するコレクションを同じデータベース内にグループ化し、必要に応じてデータベース間でコレクションを移動できます。
-
コレクション内のパーティションの管理: パーティションキー が enabled のコレクションの場合、パーティションを手動で管理する必要はありません。パーティションキー が disabled のコレクションの場合、パーティションを手動で管理し、以下の操作を実行できます。
-
パーティションの作成: 各コレクションで最大 1,024 個のパーティションを作成できます。詳細については、Zilliz Cloud の制限 をご覧ください。
-
パーティションの削除: デフォルトのパーティションは削除できず、パーティションを削除するとその内のすべてのデータが不可逆的に削除されます。コレクション内のパーティションを削除する前に、まずコレクションをリリースする必要があります。
-
-
コレクションエイリアスの表示: コレクションリストページで、クラスター内のすべてのコレクションのエイリアスを表示できます。
-
コレクションタイムゾーンの編集: コレクションタイムゾーンは、このコレクション内のすべての TIMESTAMPTZ エンティティのタイムゾーンを定義します。デフォルトでは UTC を使用しますが、アプリケーションのニーズに合わせて異なるタイムゾーンを選択できます。
-
コレクション TTL の編集: Time-to-live (TTL) は、コレクション内のデータの有効期限を決定するコレクションプロパティです。詳細については、コレクション TTL の設定 をご覧ください。
-
Allow Insert 自動ID を有効にする:
allow_insert_auto_idプロパティにより、AutoID が有効なコレクションが、挿入、アップサート、およびバルクインポート中にユーザー提供の主キー値を受け入れることができます。詳細については、コレクションの変更 をご覧ください。 -
コレクションの削除: リソースオーバーヘッドを削減するために、不要になったコレクションを削除できます。コレクションを削除すると、その内のすべてのデータが不可逆的に削除されます。