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

エイリアスの管理

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

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

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

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

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

  1. 新しいコレクションを作成する: 新しいコレクション(たとえば prod_data_v2)を作成します。

  2. データを準備する: prod_data_v2 で新しいデータのインデックスを作成してロードします。

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

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

エイリアスの主な特性:

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