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

エイリアスの管理

Zilliz Cloudでは、エイリアスはコレクション用の補助的で変更可能な名前です。エイリアスを使用すると、抽象化層が提供され、アプリケーションコードを変更せずにコレクション間を動的に切り替えることができます。これは、運用環境でのシームレスなデータ更新、A/Bテスト、およびその他の運用タスクに特に役立ちます。

このページでは、コレクションエイリアスの作成、一覧表示、再割り当て、削除方法を説明します。

エイリアスを使用する理由

エイリアスを使用する主な利点は、クライアントアプリケーションを特定の物理コレクション名から分離することです。

prod_dataという名前のエイリアスを持つコレクションをクエリするライブアプリケーションがあることを想像してください。基盤データを更新する必要がある場合、サービスの中断なしに更新を実行できます。ワークフローは以下の通りです:

  1. 新しいコレクションの作成:たとえば、prod_data_v2という新しいコレクションを作成します。

  2. データの準備prod_data_v2に新しいデータをインデックス化してロードします。

  3. エイリアスの切り替え:新しいコレクションがサービスの準備ができたら、エイリアスprod_dataを古いコレクションからprod_data_v2にアトミックに再割り当てします。

アプリケーションは引き続きエイリアスprod_dataにリクエストを送信し、ダウンタイムゼロで継続します。このメカニズムにより、シームレスな更新が可能になり、ベクトル検索サービスのブルーグリーンデプロイメントのような運用作業が簡素化されます。

エイリアスの主なプロパティ:

  • コレクションは複数のエイリアスを持つことができます。

  • エイリアスは一度に1つのコレクションのみを指すことができます。

  • リクエスト処理時、Zilliz Cloudはまず提供された名前のコレクションが存在するかどうかをチェックします。存在しない場合、その名前がコレクションのエイリアスかどうかをチェックします。

エイリアスの作成

以下のコードスニペットは、コレクションのエイリアスを作成する方法を示しています。

from pymilvus import MilvusClient

client = MilvusClient(
uri="YOUR_CLUSTER_ENDPOINT",
token="YOUR_CLUSTER_TOKEN"
)

# 9. エイリアスの管理
# 9.1. エイリアスの作成
client.create_alias(
collection_name="my_collection_1",
alias="bob"
)

client.create_alias(
collection_name="my_collection_1",
alias="alice"
)

エイリアスのリスト

以下のコードスニペットは、特定のコレクションに割り当てられたエイリアスを一覧表示する手順を示しています。

# 9.2. エイリアスを一覧表示
res = client.list_aliases(
collection_name="my_collection_1"
)

print(res)

# 出力
#
# {
# "aliases": [
# "bob",
# "alice"
# ],
# "collection_name": "my_collection_1",
# "db_name": "default"
# }

エイリアスの説明

以下のコードスニペットは、割り当てられたコレクション名を含む特定のエイリアスを詳細に説明しています。

# 9.3. エイリアスを説明
res = client.describe_alias(
alias="bob"
)

print(res)

# 出力
#
# {
# "alias": "bob",
# "collection_name": "my_collection_1",
# "db_name": "default"
# }

エイリアスの変更

特定のコレクションに割り当て済みのエイリアスを別のコレクションに再割り当てできます。

# 9.4 別のコレクションにエイリアスを再割り当て
client.alter_alias(
collection_name="my_collection_2",
alias="alice"
)

res = client.list_aliases(
collection_name="my_collection_2"
)

print(res)

# 出力
#
# {
# "aliases": [
# "alice"
# ],
# "collection_name": "my_collection_2",
# "db_name": "default"
# }

res = client.list_aliases(
collection_name="my_collection_1"
)

print(res)

# 出力
#
# {
# "aliases": [
# "bob"
# ],
# "collection_name": "my_collection_1",
# "db_name": "default"
# }

エイリアスの削除

以下のコードスニペットは、エイリアスを削除する手順を示しています。

# 9.5 エイリアスを削除
client.drop_alias(
alias="bob"
)

client.drop_alias(
alias="alice"
)