벡터 색인 생성

이 페이지에서는 해시에 벡터를 저장하는 방법을 설명합니다. 해시를 사용하면 벡터를 Memorystore for Valkey에 효율적으로 저장할 수 있습니다.

데이터 직렬화

벡터를 해시 데이터 유형에 저장하기 전에 벡터를 Valkey용 Memorystore가 이해할 수 있는 형식으로 변환해야 합니다. 이렇게 하려면 크기가 데이터 유형의 바이트 크기(예: FLOAT32의 경우 4)에 벡터의 차원 수를 곱한 값과 동일한 바이너리 blob으로의 벡터 직렬화가 필요합니다. 숫자 벡터에 널리 사용되는 옵션은 Python NumPy 라이브러리입니다.

Memorystore for Valkey에 연결

벡터를 해시에 저장하기 전에 redis-py와 같은 OSS Redis 호환 클라이언트를 사용하여 Memorystore for Valkey 인스턴스에 대한 연결을 설정하세요.

해시에 벡터 저장

해시는 키-값 쌍이 있는 사전과 같습니다. HSET 명령어를 사용하여 직렬화된 벡터를 저장합니다.

import numpy as np
import redis

# Sample vector
vector = np.array([1.2, 3.5, -0.8], dtype=np.float32) # 3-dimensional vector

# Serialize to a binary blob
serialized_vector = vector.tobytes()

redis_client = redis.cluster.RedisCluster(host='your_server_host', port=6379)

redis_client.hset('vector_storage', 'vector_key', serialized_vector)  # 'vector_key' is a unique identifier
  • 색인을 성공적으로 생성하려면 벡터 데이터가 색인 스키마에 설정된 측정기준과 데이터 유형을 준수해야 합니다.

색인 백필

색인 백필은 다음 시나리오 중 하나에서 발생할 수 있습니다.

  • 색인이 생성되면 백필 절차에서 키스페이스를 통해 색인 필터 기준을 충족하는 항목을 스캔합니다.
  • 벡터 색인과 해당 데이터는 RDB 스냅샷에 유지됩니다. RDB 파일이 로드되면 자동 색인 백필 프로세스가 트리거됩니다. 이 프로세스는 RDB 스냅샷이 생성된 후에 새로운 항목이나 수정된 항목을 적극적으로 감지하고 색인에 통합하므로 색인 무결성이 유지되고 현재 결과가 보장됩니다.