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

エイリアスの管理

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

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

なぜエイリアスを使用するのか

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

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

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

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

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

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

エイリアスの主な特性:

  • 1つのコレクションに複数のエイリアスを付けることができます。

  • 1つのエイリアスは一度に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"
)