メインコンテンツまでスキップ
バージョン: User Guides (Cloud)

コレクションの説明

Zilliz Cloudでは、複数のコレクションを作成してデータを管理し、データをエンティティとしてコレクションに挿入できます。コレクションとエンティティはリレーショナルデータベースのテーブルとレコードに似ています。このページでは、コレクションと関連概念について学ぶことができます。

コレクション

コレクションは固定列と可変行の2次元テーブルです。各列はフィールドを表し、各行はエンティティを表します。

以下のチャートは、8つの列と6つのエンティティを持つコレクションを示しています。

BitLbgzN4oYspwxM4vQcAmg2n9f

スキーマとフィールド

オブジェクトを説明する際、通常はサイズ、重さ、位置などの属性を挙げます。これらの属性をコレクション内のフィールドとして使用できます。各フィールドには、データ型やベクトルフィールドの次元数などのさまざまな制約プロパティがあります。フィールドを作成し、その順序を定義することでコレクションスキーマを形成できます。適用可能なデータ型については、スキーマの説明を参照してください。

挿入するエンティティには、すべてのスキーマ定義フィールドを含める必要があります。一部をオプションにするには、以下のオプションを検討してください:

  • NULL許容にするか、デフォルト値を設定する

    フィールドをNULL許容にする方法やデフォルト値を設定する方法の詳細については、NULL許容とデフォルトを参照してください。

  • ダイナミックフィールドを有効にする

    ダイナミックフィールドの有効化および使用方法の詳細については、ダイナミックフィールドを参照してください。

主キーとAutoId

リレーショナルデータベースの主キーと同様に、コレクションにはエンティティを他のエンティティと区別するための主キーがあります。主キーの各値はグローバルに一意で、特定の1つのエンティティに対応します。

上記のチャートに示されているように、idという名前のフィールドが主キーとして機能し、最初のIDである0は「The Mortality Rate of Coronavirus is Not Important」というタイトルのエンティティに対応しています。0という主キーを持つ他のエンティティは存在しません。

主キーは整数または文字列のみを受け入れます。エンティティを挿入する際には、デフォルトで主キーの値を含める必要があります。ただし、コレクション作成時にAutoIdを有効にした場合、Zilliz Cloudはデータ挿入時にこれらの値を生成します。その場合は、挿入するエンティティから主キーの値を除外してください。

詳細については、主キーとAutoIdを参照してください。

インデックス

特定のフィールドにインデックスを作成すると、検索効率が向上します。サービスが依存するすべてのフィールドにインデックスを作成することをお勧めします。その中でも、ベクトルフィールドのインデックスは必須です。

Milvusとは異なり、Zilliz Cloudのコレクションにおけるベクトルフィールドに適用可能なインデックスタイプは、AUTOINDEXのみです。詳細については、AUTOINDEXの説明を参照してください。

エンティティ

エンティティは、コレクション内の同じフィールドセットを共有するデータレコードです。同じ行のすべてのフィールドの値が1つのエンティティを構成します。

必要に応じて、コレクションに多数のエンティティを挿入できます。ただし、エンティティ数が増えるにつれて、必要なメモリサイズも増加し、検索パフォーマンスに影響を与える可能性があります。

詳細については、スキーマの説明を参照してください。

ロードとリリース

コレクションをロードすることは、コレクション内で類似性検索およびクエリを実行するための前提条件です。コレクションをロードすると、Zilliz Cloudはすべてのインデックスファイルと各フィールドの生データをメモリにロードし、検索およびクエリに高速に対応します。

検索およびクエリはメモリを多用する操作です。コストを節約するため、現在使用していないコレクションはリリースすることをお勧めします。

詳細については、ロードとリリースを参照してください。

検索とクエリ

インデックスを作成し、コレクションをロードすると、1つまたは複数のクエリーベクトルを入力することで類似性検索を開始できます。たとえば、検索リクエストで送信されるクエリーのベクトル表現を受信すると、Zilliz Cloudは指定されたメトリックタイプを使用して、クエリーベクトルとターゲットコレクション内のベクトルとの類似性を測定し、クエリーと意味的に類似したものを返します。

検索およびクエリにメタデータフィルタリングを含めることもでき、結果の関連性を向上させます。メタデータフィルタリング条件はクエリでは必須ですが、検索ではオプションです。

適用可能なメトリックタイプの詳細については、メトリックタイプを参照してください。

検索およびクエリの詳細については、検索とリランキングの章の記事を参照してください。その中でも基本的な機能は以下の通りです:

さらに、Zilliz Cloudは検索パフォーマンスと効率を向上させるための強化機能も提供しています。これらはデフォルトで無効になっており、サービス要件に応じて有効にして使用できます。それらは以下の通りです:

パーティション

パーティションはコレクションのサブセットであり、親コレクションと同じフィールドセットを共有し、各パーティションがエンティティのサブセットを含みます。

異なるパーティションにエンティティを割り当てることで、エンティティグループを作成できます。特定のパーティションで検索およびクエリを実行し、Zilliz Cloudが他のパーティション内のエンティティを無視するようにして、検索効率を向上させることができます。

詳細については、パーティションの管理を参照してください。

シャード

シャードはコレクションの水平方向のスライスです。各シャードはデータ入力チャネルに対応します。すべてのコレクションにはデフォルトで1つのシャードがあります。コレクションを作成する際には、期待されるスループットとコレクションに挿入するデータ量に基づいて適切なシャード数を設定できます。

シャード数を設定する方法の詳細については、コレクションの作成を参照してください。

エイリアス

コレクションのエイリアスを作成できます。1つのコレクションに複数のエイリアスを設定できますが、コレクションはエイリアスを共有できません。Zilliz Cloudは、コレクションに対するリクエストを受け取ると、提供された名前を元にコレクションを検索します。提供された名前のコレクションが存在しない場合、Zilliz Cloudはその名前をエイリアスとして検索を続けます。コレクションのエイリアスを使用して、コードをさまざまなシナリオに適応させることができます。

詳細については、エイリアスの管理を参照してください。

関数

Zilliz Cloudがコレクション作成時にフィールドを派生させるように関数を設定できます。たとえば、全文検索関数では、ユーザー定義関数を使用して特定のVARCHARフィールドからスパースベクトルフィールドを派生させます。全文検索の詳細については、全文検索を参照してください。

一貫性レベル

分散データベースシステムでは、通常、一貫性レベルを使用してデータノード間およびレプリカ間でのデータの同一性を定義します。コレクションを作成するとき、またはコレクション内で類似性検索を実行するときに別々の一貫性レベルを設定できます。適用可能な一貫性レベルはStrongBounded StalenessSession、およびEventuallyです。

これらの一貫性レベルの詳細については、一貫性レベルを参照してください。

制限

コレクションに関する制限および制約については、Zilliz Cloud 制限を参照してください。