コレクションの管理 (コンソール)
コレクションは、ベクトル埋め込みとメタデータを格納するために使用される 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 つの主要なカテゴリに分類されます。
-
検索前関数
検索前関数は、検索に使用できるベクトル表現に生テキストを変換する方法を定義します。これらはコレクションの作成時に構成され、コレクションのスキーマの一部になります。
検索前関数の例には、BM25 関数やモデルベースの関数などがあります。
検索前関数の仕組みの概念的な概要については、関数とモデル推論の概要 をご覧ください。
-
検索後関数
検索後関数は、クエリ時に検索結果の順序を調整します。検索前関数とは異なり、検索後関数はコレクションスキーマにバインドされません。これらは検索リクエストのパラメータとして指定され、検索によって返された候補結果に対して動作します。
検索後関数は、インデックス作成や候補の取得に影響を与えません。
検索後関数の仕組みの概念的な概要については、関数とモデル推論の概要 をご覧ください。
パーティションとパーティションキー
パーティション: パーティションはコレクションの物理的なサブセットです。パーティションは親コレクションと同じデータスキーマを共有しますが、コレクション内のデータの一部のみを含みます。各コレクションには 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値を編集できます。 -
既存の ARRAY フィールド の
max_capacity値、および ARRAY タイプが VARCHAR の場合はmax_length値も編集できます。 -
既存のスキーマに新しいスカラーフィールドを追加できます。
-
シャード設定を変更するには、代わりに コレクションのクローン 機能を使用してください。
-
mmapまたはパーティションキー設定を変更するには、代わりに SDK を使用してください。詳細については、コレクションの変更 をご覧ください。
-
コレクションの作成時に動的フィールドを有効にしていない場合、SDK または Web コンソールを使用して後で有効にできます。SDK に関する詳細については、コレクションの変更 をご覧ください。Web コンソールで動的フィールドを有効にする方法の詳細については、上記のデモを参照してください。
その他のコレクションスキーマ設定は編集できません。変更を適用するには、希望する構成で新しいコレクションを作成し、そこにデータをインポートしてください。
-
-
コレクションのロードとリリース: Zilliz Cloud Web コンソールでは、コレクションは作成直後に自動的にメモリにロードされ、検索とクエリに利用可能になります。メモリスペースを解放するために、未使用のコレクションをリリースできます。Zilliz Cloud Web コンソールは、単一のコレクションのロードまたはリリース、または複数のコレクションのバッチロードまたはリリースをサポートしています。
-
コレクションを別のデータベースに移動: 関連するコレクションを同じデータベース内にグループ化し、必要に応じてデータベース間でコレクションを移動できます。
-
コレクション内のパーティションの管理: パーティションキーが有効になっているコレクションの場合、パーティションを手動で管理する必要はありません。パーティションキーが無効になっているコレクションの場合、パーティションを手動で管理し、以下の操作を実行できます。
-
パーティションの作成: 各コレクションで最大 1,024 個のパーティションを作成できます。詳細については、Zilliz Cloud の制限 をご覧ください。
-
パーティションの削除: デフォルトのパーティションは削除できず、パーティションを削除するとその内のすべてのデータが不可逆的に削除されます。コレクション内のパーティションを削除する前に、まずコレクションをリリースする必要があります。
-
-
コレクションエイリアスの表示: コレクションリストページで、クラスター内のすべてのコレクションのエイリアスを表示できます。
-
コレクションのタイムゾーンの編集: コレクションのタイムゾーンは、このコレクション内のすべての TIMESTAMPTZ エンティティのタイムゾーンを定義します。デフォルトではUTCを使用しますが、アプリケーションのニーズに合わせて異なるタイムゾーンを選択できます。
-
コレクション TTL の編集: Time-to-live (TTL) は、コレクション内のデータの有効期限を決定するコレクションプロパティです。詳細については、コレクション TTL の設定 をご覧ください。
-
自動 ID 挿入の許可を有効にする:
allow_insert_auto_idプロパティにより、AutoID が有効になっているコレクションが、挿入、アップサート、およびバルクインポート中にユーザー提供の主キー値を受け入れることができます。詳細については、コレクションの変更 をご覧ください。 -
コレクションの削除: リソースオーバーヘッドを削減するために、不要になったコレクションを削除できます。コレクションを削除すると、その内のすべてのデータが不可逆的に削除されます。
コレクションデータのプレビュー
データタブを使用して、Zilliz Cloud コンソールから直接コレクション内のエンティティをプレビューできます。
フィルター式を定義し、limit パラメータを構成してプレビューに表示されるエンティティ数を制御し (デフォルトは 100、最大 16,384)、一致するエンティティをクエリしてテーブル内のフィールド値を検査できます。
また、Order Byを使用して、主キーフィールド、数値フィールド、またはスカラーフィールドによってデータプレビューを昇順または降順でソートできます。
