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

エイリアスの管理

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 は最初に指定された名前を持つコレクションが存在するかを確認します。存在しない場合、その名前がコレクションのエイリアスであるかを確認します。

エイリアスを作成する

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

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

エイリアスを一覧表示する

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

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

エイリアスの詳細を確認する

次のコードスニペットは、割り当て先のコレクション名を含めて、特定のエイリアスの詳細を示します。

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

print(res)

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

エイリアスを変更する

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

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