メインコンテンツまでスキップ
バージョン: 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つのコレクションには複数のエイリアスを設定できます。

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

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

エイリアスの作成

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

from pymilvus import MilvusClient

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

# 9. Manage aliases
# 9.1. Create aliases
client.create_alias(
collection_name="my_collection_1",
alias="bob"
)

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

エイリアスの一覧

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

# 9.2. List aliases
res = client.list_aliases(
collection_name="my_collection_1"
)

print(res)

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

エイリアスの詳細

以下のコードスニペットは、特定のエイリアスについて、それが割り当てられているコレクションの名前を含めて詳細に記述しています。

# 9.3. Describe aliases
res = client.describe_alias(
alias="bob"
)

print(res)

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

Alter エイリアス

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

# 9.4 Reassign aliases to other collections
client.alter_alias(
collection_name="my_collection_2",
alias="alice"
)

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

print(res)

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

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

print(res)

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

Drop エイリアス

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

# 9.5 Drop aliases
client.drop_alias(
alias="bob"
)

client.drop_alias(
alias="alice"
)