メインコンテンツまでスキップ

エイリアスの管理

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

このページでは、collection エイリアスを作成、一覧表示、再割り当て、削除する方法を示します。

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

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

prod_data というエイリアス名の collection にクエリを実行する稼働中のアプリケーションがあるとします。基盤となるデータを更新する必要がある場合、サービスを中断することなく更新を実行できます。ワークフローは次のようになります。

  1. 新しい Collection を作成する: たとえば、prod_data_v2 という新しい collection を作成します。

  2. データを準備する: prod_data_v2 で新しいデータの index を作成し、ロードします。

  3. エイリアスを切り替える: 新しい collection がサービス提供可能になったら、エイリアス prod_data を古い collection から prod_data_v2 へアトミックに再割り当てします。

アプリケーションはエイリアス prod_data へのリクエスト送信を継続し、ダウンタイムは発生しません。この仕組みにより、vector search サービスのシームレスな更新が可能になり、ブルーグリーンデプロイメントのような運用が簡素化されます。

エイリアスの主な特性:

  • 1 つの collection は複数のエイリアスを持つことができます。

  • 1 つのエイリアスが同時に指せる collection は 1 つだけです。

  • リクエストを処理する際、Zilliz Cloud はまず指定された名前の collection が存在するかを確認します。存在しない場合、その名前が collection のエイリアスであるかを確認します。

エイリアスの作成

次のコードスニペットは、collection のエイリアスを作成する方法を示しています。

python
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"
)

エイリアスの一覧表示

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

python
# 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"
# }

エイリアスの説明

次のコードスニペットは、特定のエイリアスについて、それが割り当てられている collection の名前を含めて詳細に説明します。

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

print(res)

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

エイリアスの変更

特定の collection にすでに割り当てられているエイリアスを、別の collection に再割り当てできます。

python
# 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"
# }

エイリアスの削除

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

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

client.drop_alias(
alias="alice"
)
Ctrl I