コレクションの管理 (コンソール)
コレクションは、ベクトル埋め込みとメタデータを格納するために使用される 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 設定の詳細については、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 が有効になっているコレクションが、挿入、アップサート、およびバルクインポート中にユーザー提供の主キー値を受け入れることができます。詳細については、コレクションの変更 をご覧ください。 -
コレクションの削除: リソースオーバーヘッドを削減するために、不要になったコレクションを削除できます。コレクションを削除すると、その内のすべてのデータが不可逆的に削除されます。