벡터 스토어 데이터 아키텍처

벡터 스토어 데이터 아키텍처 (Preview)

Semantic Kernel의 벡터 스토어 추상화는 벡터 스토어(Vector Store), 컬렉션(Collection), 레코드(Record) 세 구성 요소를 기반으로 해요. 그리고 이 셋은 포함 관계로 묶여요. 레코드는 컬렉션에 속하고, 컬렉션은 벡터 스토어에 속해요.

  • 벡터 스토어 — 데이터베이스 인스턴스 하나에 대응돼요.
  • 컬렉션 — 레코드들의 모음이에요. 그 레코드들을 조회하거나 필터링하는 데 필요한 인덱스까지 포함해요.
  • 레코드 — 데이터베이스에 저장되는 개별 데이터 항목이에요.

이 구조를 머릿속에 그려 보면, "벡터 스토어 = 내 데이터베이스, 컬렉션 = 그 안의 테이블/그룹, 레코드 = 한 줄" 정도로 이해하면 돼요. 다만 엄밀히 따지면 아래처럼 커넥터마다 실제 구현이 달라져요.

컬렉션이 데이터베이스마다 다르게 구현되는 이유

'컬렉션이 무엇인지'의 실제 구현은 커넥터마다 달라요. 각 데이터베이스가 레코드를 어떻게 묶고 인덱싱하는지에 영향을 받기 때문이에요. 대부분의 데이터베이스는 레코드 모음이라는 개념을 갖고 있어서, 그 개념과 벡터 스토어 추상화의 컬렉션이 자연스럽게 매핑돼요.

다만 주의할 점이 하나 있어요. 기저 데이터베이스에서 항상 collection이라는 이름으로 불리는 건 아니에요. 예를 들어 어떤 DB는 '테이블', 다른 DB는 '네임스페이스' 같은 별도 용어를 쓸 수 있어요. 개념은 같아도 이름이 다를 수 있다는 걸 기억해 두면, 커넥터 문서를 볼 때 덜 헷갈려요. 커넥터별 컬렉션 실제 구현은 각 커넥터 문서에서 확인할 수 있어요.

출처: https://learn.microsoft.com/en-us/semantic-kernel/concepts/vector-store-connectors/data-architecture