Milvus 서버에 연결하기
이 항목에서는 Milvus 서버에 대한 클라이언트 연결을 설정하고 일반적인 연결 옵션을 구성하는 방법에 대해 설명합니다.
전제 조건
사용 중인 언어의 SDK가 설치되어 있어야 합니다. 자세한 내용은 Python SDK, Java SDK, Go SDK 또는 Nodejs SDK를 참조하세요.
Milvus 서버 주소(로컬 기본값:
http://localhost:19530, 프록시 포트 19530).인증이 활성화된 경우 토큰 또는 사용자 아이디 + 비밀번호를 입력합니다. 토큰은
username:password(예:root:Milvus)일 수 있습니다. 자세한 내용은 사용자 액세스 인증 및 사용자 및 역할 만들기를 참조하세요.
URI로 연결(인증 비활성화)
Milvus 서버 주소(예: http://localhost:19530)를 사용하여 연결을 설정합니다.
from pymilvus import MilvusClient
client = MilvusClient("http://localhost:19530")
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
ConnectConfig config = ConnectConfig.builder()
.uri("http://localhost:19530")
.build();
client = new MilvusClientV2(config);
import { MilvusClient } from '@zilliz/milvus2-sdk-node';
const client = new MilvusClient({
address: 'http://localhost:19530'
});
import "github.com/milvus-io/milvus/client/v2/milvusclient"
c, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
Address: "localhost:19530",
})
# The RESTful API is stateless, so there is no persistent connection.
# Each request hits the server directly; the /collections/list endpoint
# doubles as a health check when you need to verify reachability.
export HOST="localhost:19530"
curl -X POST "http://${HOST}/v2/vectordb/collections/list" \
-H "Content-Type: application/json" \
-H "Request-Timeout: 10" \
-d '{}'
자격 증명으로 연결(인증 사용)
"username:password" 형식의 토큰을 제공하거나 user 과 password 을 별도로 입력합니다. 기본 기본 제공 관리자는 root:Milvus 입니다(프로덕션에서는 변경).
from pymilvus import MilvusClient
# Token form
client = MilvusClient(
uri="http://localhost:19530",
token="root:Milvus",
)
# Or explicit user/password
client = MilvusClient(
uri="http://localhost:19530",
user="root",
password="Milvus",
)
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
ConnectConfig config = ConnectConfig.builder()
.uri("http://localhost:19530")
.username("root")
.password("Milvus")
.build();
client = new MilvusClientV2(config);
import { MilvusClient } from '@zilliz/milvus2-sdk-node';
const client = new MilvusClient({
address: 'http://localhost:19530',
username: 'root',
password: 'Milvus'
});
import "github.com/milvus-io/milvus/client/v2/milvusclient"
c, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
Address: "localhost:19530",
Username: "root",
Password: "Milvus",
})
export HOST="localhost:19530"
export TOKEN="root:Milvus"
curl -X POST "http://${HOST}/v2/vectordb/collections/list" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-H "Request-Timeout: 10" \
-d '{}'
토큰 형식은 "<username>:<password>" 입니다. 문서에는 root:Milvus 이 기본 자격 증명으로 명시되어 있으며, 사용자 및 역할 만들기 가이드에서 사용자 관리에 대해 다루고 있습니다.
시간 제한 설정
클라이언트 연결에 기본 시간 제한을 설정합니다:
from pymilvus import MilvusClient
client = MilvusClient(uri="http://localhost:19530", timeout=1000) # If not set, the timeout defaults to 10s
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
ConnectConfig config = ConnectConfig.builder()
.uri("http://localhost:19530")
.rpcDeadlineMs(1000)
.build();
client = new MilvusClientV2(config);
import { MilvusClient } from '@zilliz/milvus2-sdk-node';
const client = new MilvusClient({
address: 'http://localhost:19530',
username: 'root',
password: 'Milvus',
timeout: 1000 // ms
});
// await client.listCollections({ timeout: 2000})
import "github.com/milvus-io/milvus/client/v2/milvusclient"
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()
c, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
Address: "localhost:19530",
})
export HOST="localhost:19530"
export TOKEN="root:Milvus"
# Request-Timeout is applied per-request (unit: seconds). --max-time
# caps the total curl wall-clock so the client gives up even if the
# server never responds.
curl -X POST "http://${HOST}/v2/vectordb/collections/list" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-H "Request-Timeout: 10" \
--max-time 7 \
-d '{}'
위에 나열된 SDK의 경우 이 시간 제한은 연결을 설정할 때만 사용되며 다른 API 작업의 기본 시간 제한으로 사용되지 않습니다.
RESTful API의 경우
Request-Timeout는 요청별 기한(초 단위)이므로(밀리초 단위인 Java의rpcDeadlineMs및 Node.jstimeout와 달리) 기한이 필요한 모든 호출에 이 값을 포함하세요.
특정 데이터베이스에 연결
db_name 으로 구축하는 동안 대상 데이터베이스를 선택하고 나중에 using_database() 을 사용하여 전환할 수도 있습니다.
from pymilvus import MilvusClient
# Set the database when creating the client
client = MilvusClient(
uri="http://localhost:19530",
token="root:Milvus",
db_name="analytics",
)
# (Optional) Switch the active database later
# client.using_database("reports")
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
ConnectConfig config = ConnectConfig.builder()
.uri("http://localhost:19530")
.username("root")
.password("Milvus")
.dbName("analytics")
.build();
client = new MilvusClientV2(config);
import { MilvusClient } from '@zilliz/milvus2-sdk-node';
const client = new MilvusClient({
address: 'http://localhost:19530',
username: 'root',
password: 'Milvus',
database: 'analytics'
});
// (Optional) Switch the active database later
// await milvusClient.useDatabase({
// db_name: 'reports',
//});
import "github.com/milvus-io/milvus/client/v2/milvusclient"
c, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
Address: "localhost:19530",
DBName: "analytics",
APIKey: "root:Milvus",
})
// (Optional) switch the active database later with:
err = c.UseDatabase(ctx, milvusclient.NewUseDatabaseOption("reports"))
export HOST="localhost:19530"
export TOKEN="root:Milvus"
# Target a specific database by setting "dbName" in the request body.
# The RESTful API is stateless, so include "dbName" on every request
# that should run against a non-default database.
curl -X POST "http://${HOST}/v2/vectordb/collections/list" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-H "Request-Timeout: 10" \
-d '{
"dbName": "analytics"
}'
데이터베이스를 만들고, 나열하고, 설명하는 방법과 광범위한 데이터베이스 관리 작업에 대해서는 데이터베이스 가이드를 참조하세요.