コレクションの説明
Zilliz Cloudでは、データを管理するために複数のコレクションを作成し、データをエンティティとしてコレクションに挿入できます。コレクションとエンティティはリレーショナルデータベースのテーブルとレコードに似ています。このページでは、コレクションと関連概念を学ぶことができます。
コレクション
コレクションは固定カラムと可変行を持つ2次元テーブルです。各カラムはフィールドを表し、各行はエンティティを表します。
以下のチャートは、8つのカラムと6つのエンティティを持つコレクションを示しています。

スキーママとフィールド
あるオブジェクトを記述する際、通常はサイズ、重さ、位置などの属性を挙げます。これらの属性をコレクション内のフィールドとして使用できます。各フィールドにはデータ型やベクトルフィールドの次元数など、さまざまな制約プロパティがあります。フィールドを作成し、その順序を定義することでコレクションスキーママを形成できます。適用可能なデータ型については、スキーママの説明を参照してください。
挿入するエンティティには、すべてのスキーママ定義フィールドを含める必要があります。いくつかをオプションにするには、以下のオプションを検討してください:
-
NULL可能にするかデフォルト値を設定する
フールドをNULL可能にする方法やデフォルト値を設定する方法の詳細については、NULL可能およびデフォルトを参照してください。
-
動的フィールドを有効にする
動的フィールドを有効にする方法および使用方法の詳細については、動的フィールドを参照してください。
主キーとAutoId
リレーショナルデータベースの主フィールドと同様に、コレクションにはエンティティを他のエンティティと区別するための主フィールドがあります。主フィールドの各値はグローバルにユニークであり、特定の1つのエンティティに対応しています。
上のチャートに示されているように、idという名前のフィールドが主フィールドとして機能し、最初のID 0 が「新型コロナウイルスの死亡率は重要ではない」というタイトルのエンティティに対応しています。0の主フィールドを持つ他のエンティティは存在しません。
主フィールドは整数または文字列のみを受け入れます。エンティティを挿入する際、デフォルトでは主フィールドの値を含める必要があります。しかし、コレクション作成時にAutoIdを有効にした場合、Zilliz Cloudはデータの挿入時にそれらの値を生成します。このような場合は、挿入するエンティティから主フィールドの値を除外してください。
詳細については、主フィールドおよびAutoIdを参照してください。
インデックス
特定のフィールドにインデックスを作成すると検索効率が向上します。サービスが依存するすべてのフィールドにインデックスを作成することをお勧めします。その中でも、ベクトルフィールドのインデックスは必須です。
Milvusとは異なり、AUTOINDEXはZilliz Cloudのコレクション内のベクトルフィールドに適用できる唯一のインデックスタイプです。詳細については、AUTOINDEXの説明を参照してください。
エンティティ
エンティティは、コレクション内で同じフィールドセットを共有するデータレコードです。同じ行のすべてのフィールドの値が1つのエンティティを構成します。
コレクションには必要な数のエンティティを挿入できます。ただし、エンティティ数が多くなるにつれて、メモリサイズも増加し、検索性能に影響を与える可能性があります。
詳細については、スキーママの説明を参照してください。
ロードとリリース
コレクションのロードは、コレクション内で類似検索およびクエリを実行するための前提条件です。コレクションをロードする際、Zilliz Cloudはすべてのインデックスファイルと各フィールドの生データを検索およびクエリに高速で応答するためにメモリにロードします。
検索およびクエリはメモリを大量に消費する操作です。コストを節約するために、現在使用していないコレクションをリリースすることをお勧めします。
詳細については、ロードとリリースを参照してください。
検索とクエリ
インデックスを作成しコレクションをロードすると、1つまたは複数のクエリベクトルを入力して類似検索を開始できます。たとえば、検索要求で運搬されるクエリのベクトル表現を受信した際、Zilliz Cloudは指定されたメトリック型を使用して、クエリベクトルと対象コレクション内のベクトルとの類似度を測定し、クエリと意味的に類似したものを返します。
検索およびクエリにメタデータフィルタリングを含めることで、結果の関連性を高めることができます。メタデータフィルタリング条件はクエリでは必須ですが、検索ではオプションであることに注意してください。
適用可能なメトリック型の詳細については、メトリック型を参照してください。
検索およびクエリの詳細については、検索および再ランキング章の記事を参照してください。基本的な機能は以下の通りです:
さらに、Zilliz Cloudは検索性能および効率を改善するための強化機能も提供します。これらはデフォルトで無効になっており、サービス要件に応じて有効化して使用できます。以下のような機能があります:
パーティション
パーティションはコレクションのサブセットであり、親コレクションと同じフィールドセットを共有し、それぞれがエンティティのサブセットを含みます。
エンティティを異なるパーティションに割り当てることで、エンティティグループを作成できます。特定のパーティションで検索およびクエリを実行することで、Zilliz Cloudが他のパーティションのエンティティを無視し、検索効率を向上させることができます。
詳細については、パーティションの管理を参照してください。
シャド
シャードはコレクションの水平スライスです。各シャードはデータ入力チャネルに対応します。すべてのコレクションにはデフォルトで1つのシャードがあります。コレクション作成時に、予想されるスループットとコレクションに挿入するデータ量に基づいて適切なシャード数を設定できます。
シャード数の設定方法の詳細については、コレクションの作成を参照してください。
エリァス
コレクションのエリァスを作成できます。1つのコレクションは複数のエリァスを持つことができますが、コレクションはエリァスを共有することはできません。コレクションに対する要求を受け取った際、Zilliz Cloudは提供された名前でコレクションを特定します。提供された名前のコレクションが存在しない場合、Zilliz Cloudは引き続き提供された名前をエリァスとして特定します。コレクションのエリァスを使用してコードをさまざまなシナリオに適応させることができます。
詳細については、エリァスの管理を参照してください。
関数
Zilliz Cloudがコレクション作成時にフィールドを派生させるための関数を設定できます。たとえば、全文検索機能はユーザー定義関数を使用して特定のvarcharフィールドからスパースベクトルフィールドを派生させます。全文検索の詳細については、全文検索を参照してください。
一貫性レベル
分散データベースシステムでは通常、一貫性レベルを使用してデータノードおよびレプリカ間のデータの同一性を定義します。コレクション作成時またはコレクション内で類似検索を実行する際に、別々の一貫性レベルを設定できます。適用可能な一貫性レベルはStrong、Bounded Staleness、Session、およびEventuallyです。
これらの一貫性レベルの詳細については、一貫性レベルを参照してください。
制限事項
コレクションに関する制限および制約事項については、Zilliz Cloudの制限事項を参照してください。