데이터 가져오기
이 페이지에서는 준비된 데이터를 가져오는 절차를 설명합니다.
시작하기 전에
이미 데이터를 준비하여 Milvus 버킷에 넣었습니다.
그렇지 않은 경우, 먼저 RemoteBulkWriter를 사용하여 데이터를 준비하고, 준비된 데이터가 Milvus 인스턴스와 함께 시작된 MinIO 인스턴스의 Milvus 버킷으로 이미 전송되었는지 확인해야 합니다. 자세한 내용은 소스 데이터 준비하기를 참조하세요.
데이터 준비에 사용하는 스키마로 컬렉션을 이미 만들었습니다. 그렇지 않은 경우 컬렉션 관리를 참조하세요.
다음 코드 조각은 주어진 스키마로 간단한 컬렉션을 만듭니다. 매개 변수에 대한 자세한 내용은 create_schema()
및 create_collection()
를 참조하세요.
다음 코드 스니펫은 주어진 스키마로 간단한 컬렉션을 만듭니다. 매개 변수에 대한 자세한 내용은 SDK 참조에서 createCollection()
를 참조하세요.
client = MilvusClient("http://localhost:19530")
schema = MilvusClient.create_schema(
auto_id=False,
enable_dynamic_field=True
)
schema.add_field(field_name="id", datatype=DataType.INT64, is_primary=True)
schema.add_field(field_name="vector", datatype=DataType.FLOAT_VECTOR, dim=768)
schema.add_field(field_name="scalar_1", datatype=DataType.VARCHAR, max_length=512)
schema.add_field(field_name="scalar_2", datatype=DataType.INT64)
client.create_collection(
collection_name="quick_setup",
schema=schema
)
import io.milvus.client.MilvusServiceClient;
import io.milvus.param.ConnectParam;
import io.milvus.grpc.DataType;
import io.milvus.param.collection.CollectionSchemaParam;
import io.milvus.param.collection.CollectionSchemaParam;
import io.milvus.param.collection.FieldType;
final MilvusServiceClient milvusClient = new MilvusServiceClient(
ConnectParam.newBuilder()
.withUri("localhost:19530")
.withToken("root:Milvus")
.build()
);
// Define schema for the target collection
FieldType id = FieldType.newBuilder()
.withName("id")
.withDataType(DataType.Int64)
.withPrimaryKey(true)
.withAutoID(false)
.build();
FieldType vector = FieldType.newBuilder()
.withName("vector")
.withDataType(DataType.FloatVector)
.withDimension(768)
.build();
FieldType scalar1 = FieldType.newBuilder()
.withName("scalar_1")
.withDataType(DataType.VarChar)
.withMaxLength(512)
.build();
FieldType scalar2 = FieldType.newBuilder()
.withName("scalar_2")
.withDataType(DataType.Int64)
.build();
CollectionSchemaParam schema = CollectionSchemaParam.newBuilder()
.withEnableDynamicField(true)
.addFieldType(id)
.addFieldType(vector)
.addFieldType(scalar1)
.addFieldType(scalar2)
.build();
// Create a collection with the given schema
milvusClient.createCollection(CreateCollectionParam.newBuilder()
.withCollectionName("quick_setup")
.withSchema(schema)
.build()
);
데이터 가져오기
준비된 데이터를 가져오려면 다음과 같이 가져오기 작업을 생성해야 합니다:
export MILVUS_URI="localhost:19530"
curl --request POST "http://${MILVUS_URI}/v2/vectordb/jobs/import/create" \
--header "Content-Type: application/json" \
--data-raw '{
"files": [
[
"/8ca44f28-47f7-40ba-9604-98918afe26d1/1.parquet"
],
[
"/8ca44f28-47f7-40ba-9604-98918afe26d1/2.parquet"
]
],
"collectionName": "quick_setup"
}'
요청 본문에는 두 개의 필드가 포함됩니다:
collectionName
대상 컬렉션의 이름.
files
밀버스 인스턴스와 함께 시작된 MioIO 인스턴스에서 밀버스 버킷의 루트 경로를 기준으로 한 파일 경로 목록입니다. 가능한 하위 목록은 다음과 같습니다:
JSON 파일
준비된 파일이 JSON 형식인 경우, 각 하위 목록에는 준비된 단일 JSON 파일의 경로가 포함되어야 합니다.
[ "/d1782fa1-6b65-4ff3-b05a-43a436342445/1.json" ],
Parquet 파일
준비된 파일이 Parquet 형식인 경우 각 하위 목록에는 준비된 단일 Parquet 파일의 경로가 포함되어야 합니다.
[ "/a6fb2d1c-7b1b-427c-a8a3-178944e3b66d/1.parquet" ]
가능한 반환값은 다음과 같습니다:
{
"code": 200,
"data": {
"jobId": "448707763884413158"
}
}
가져오기 진행 상황 확인
가져오기 작업 ID를 받으면 다음과 같이 가져오기 진행 상황을 확인할 수 있습니다:
export MILVUS_URI="localhost:19530"
curl --request POST "http://${MILVUS_URI}/v2/vectordb/jobs/import/get_progress" \
--header "Content-Type: application/json" \
--data-raw '{
"jobId": "449839014328146739"
}'
가능한 응답은 다음과 같습니다:
{
"code": 200,
"data": {
"collectionName": "quick_setup",
"completeTime": "2024-05-18T02:57:13Z",
"details": [
{
"completeTime": "2024-05-18T02:57:11Z",
"fileName": "id:449839014328146740 paths:\"/8ca44f28-47f7-40ba-9604-98918afe26d1/1.parquet\" ",
"fileSize": 31567874,
"importedRows": 100000,
"progress": 100,
"state": "Completed",
"totalRows": 100000
},
{
"completeTime": "2024-05-18T02:57:11Z",
"fileName": "id:449839014328146741 paths:\"/8ca44f28-47f7-40ba-9604-98918afe26d1/2.parquet\" ",
"fileSize": 31517224,
"importedRows": 100000,
"progress": 100,
"state": "Completed",
"totalRows": 200000
}
],
"fileSize": 63085098,
"importedRows": 200000,
"jobId": "449839014328146739",
"progress": 100,
"state": "Completed",
"totalRows": 200000
}
}
가져오기 작업 목록
다음과 같이 특정 컬렉션과 관련된 모든 가져오기 작업을 나열할 수 있습니다:
export MILVUS_URI="localhost:19530"
curl --request POST "http://${MILVUS_URI}/v2/vectordb/jobs/import/list" \
--header "Content-Type: application/json" \
--data-raw '{
"collectionName": "quick_setup"
}'
가능한 값은 다음과 같습니다:
{
"code": 200,
"data": {
"records": [
{
"collectionName": "quick_setup",
"jobId": "448761313698322011",
"progress": 50,
"state": "Importing"
}
]
}
}