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

コレクションの説明

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

コレクション

コレクションは、固定列とバリアント行を持つ2次元テーブルです。各列はフィールドを表し、各行はエンティティを表します。

次のグラフは、8つの列と6つのエンティティを持つコレクションを示しています。

OU4cbQJr8ovxJgxmUGGc6837nVb

スキーマとフィールド

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

挿入するエンティティには、すべてのスキーマ定義フィールドを含める必要があります。いくつかのフィールドをオプションにするには、動的フィールドを有効にすることを検討してください。詳細については、ダイナミックフィールドを参照してください。

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

    フィールドをnullにする方法やデフォルト値を設定する方法については、Nullableデフォルトを参照してください。

  • ダイナミックフィールドの有効化

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

主キーとAutoId

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

上記のチャートに示されているように、idという名前のフィールドがプライマリフィールドとして機能し、最初のID0The Mortality Rate of Coronavirus is Not Importantというタイトルのエンティティに対応します。プライマリフィールドが0のエンティティは他に存在しません。

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

詳細については、プライマリフィールドとAutoIDを参照してください。

インデックス{#}

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

<ターゲットを含める="zilliz">

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

</include>

エンティティ{#}

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

コレクションには必要な数のエンティティを挿入することができます。ただし、エンティティの数が増えるにつれて、必要なメモリ体格も増加し、検索のパフォーマンスに影響を与えます。

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

ロードとリリース{#}

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

検索とクエリはメモリを大量に消費する操作です。コストを節約するために、現在使用されていないコレクションを解放することをお勧めします。

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

検索とクエリ{#}

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

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

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

検索とクエリの詳細については、「検索&ランク」の章の記事を参照してください。

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

パーティション

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

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

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

シャード

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

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

エイリアス

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

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

関数

Zilliz Cloudに対して関数を設定することで、コレクション作成時にフィールドを導出することができます。例えば、全文検索関数は、特定のvarcharフィールドから疎ベクトルフィールドを導出するために、ユーザー定義関数を使用します。全文検索の詳細については、フルテキスト検索を参照してください。

一貫性レベル

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

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

<ターゲットを含める="zilliz">

限界

コレクションの制限と制限については、Zillizクラウドの制限を参照してください。

</include>