Vector Search 1.0에서 원활하게 전환할 수 있도록 ImportDataObjects API에 새로운 기능이 도입되었습니다.
마이그레이션 프로세스에는 세 가지 주요 단계가 포함됩니다.
일치하는 스키마로 컬렉션을 만듭니다. 가져오기 전에 컬렉션을 만들어야 합니다. 데이터 스키마는 변환된 Vector Search 1.0 데이터를 수용할 수 있도록 구조화되어야 합니다.
가져오기 프로세스를 시작합니다.
ImportDataObjectsAPI를 호출하여 Vector Search 1.0 데이터의 Cloud Storage 위치를 지정하고 변환 플래그detect_and_convert_vs1_json을 사용 설정합니다.데이터 변환 이해하기. Vector Search 1.0 데이터 필드가 새 데이터 객체 구조에 매핑되는 방식을 숙지하세요.
컬렉션 만들기
먼저 Vector Search 1.0 데이터의 구조를 반영하는 데이터 스키마로 컬렉션을 만듭니다.
curl -X POST \
'https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections?collection_id=movies' \
-H 'Bearer $(gcloud auth print-access-token)' \
-H 'Content-Type: application/json' \
-d '{ \
"data_schema": { \
"$schema": "http://json-schema.org/draft-07/schema#", \
"type": "object", \
"properties": { \
"restricts": { \
"type": "object", \
"properties": { \
"genres": { \
"type": "array", \
"items": { \
"type": "string" \
} \
}, \
"director": { \
"type": "array", \
"items": { \
"type": "string" \
} \
} \
} \
}, \
"restricts_deny": { \
"type": "object", \
"properties": { \
"genres": { \
"type": "array", \
"items": { \
"type": "string" \
} \
} \
} \
}, \
"numeric_restricts": { \
"type": "object", \
"properties": { \
"year": { \
"type": "integer" \
}, \
"imdb_rating": { \
"type": "number", \
"format": "float" \
} \
} \
}, \
"embedding_metadata": { \
"type": "object", \
"properties": { \
"plot": { \
"type": "string" \
}, \
"customers_review_summary": { \
"type": "string" \
}, \
"critics_review_summary": { \
"type": "string" \
} \
}, \
} \
} \
}, \
"vector_schema": { \
"embedding": { \
"dense_vector": { \
"dimensions": 768 \
} \
}, \
"sparse_embedding": { \
"sparse_vector": {} \
} \
} \
}'
Vector Search 1.0 데이터 가져오기
그런 다음 새로 만든 컬렉션에서 ImportDataObjects API를 사용합니다.
Vector Search 1.0 데이터가 포함된 Cloud Storage 버킷을 지정합니다.
curl -X POST \
"https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID:importDataObjects" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{ \
"gcs_import": { \
"contents_uri": "gs://your-bucket/path/to/your-data.jsonl", \
"error_uri": "gs://your-bucket/path/to/import-errors/" \
} \
}'
데이터 변환
가져오기 프로세스 중에 Vector Search 1.0 데이터는 Vector Search 2.0 데이터 객체로 변환됩니다. 다음 예시는 필드가 매핑되는 방법을 보여줍니다.
Vector Search 1.0 Cloud Storage 파일 형식
{
"id": "movie-789",
"embedding": [-0.23, 0.88, 0.11, ...],
"sparse_embedding": {"values": [0.1, 0.2], "dimensions": [1, 4]},
"restricts": [
{"namespace": "genres", "allow": ["science-fiction", "action"], "deny": ["horror"]},
{"namespace": "director", "allow": ["Christopher Nolan"]}
],
"numeric_restricts": [
{"namespace": "year", "value_int": 2010},
{"namespace": "imdb_rating", "value_float": 8.8}
],
"embedding_metadata": {
"plot": "...",
"customers_review_summary": "...",
"critics_review_summary": "..."
}
}
변환된 Vector Search 2.0 데이터 객체
DataObject(
name="/.../movie-789",
data={
"restricts": {
"genres": ["science-fiction", "action"],
"director": ["Christopher Nolan"],
},
"restricts_deny": {
"genres": ["horror"]
},
"numeric_restricts": {
"year": 2010,
"imdb_rating": 8.8,
},
"embedding_metadata": {
"plot": "...",
"customers_review_summary": "...",
"critics_review_summary": "...",
}
},
vectors={
"embedding": {"dense_vector": {"values": [-0.23, 0.88, 0.11, ...]}},
"sparse_embedding": {"sparse_vector": {"values": [0.1, 0.2], "indices": [1, 4]}},
}
)