LanceDB 퀵스타트 — 테이블 만들고 검색

LanceDB 퀵스타트 — 테이블 만들고 검색

LanceDB는 하나의 데이터 레이어로 큐레이션·특성 엔지니어링·검색·모델 훈련을 다뤄요. 훈련 데이터 준비, RAG 또는 에이전트 검색 시스템 구축, 예제 검토, 모델 생성 특성 추가 — 모두 같은 테이블·검색 기본 요소를 써요.

1. 설치

pip install lancedb   # 또는 uv add lancedb

2. 데이터베이스 연결

LanceDB는 여러 URI 패턴을 지원해요.

  • 로컬 파일시스템 경로 (임베디드 라이브러리로 사용할 때)
  • db://... URI (LanceDB Enterprise)
  • 객체 스토리지 URI: s3://..., gs://..., az://...

가장 간단한 방법은 임베디드 라이브러리로 로컬 경로에 연결하는 거예요.

3. 테이블 만들기

캐멀롯 왕국의 캐릭터 테이블을 만들어 볼게요. 각 행은 원문 텍스트·메타데이터·구조화 필드·벡터 임베딩을 담아요.

import lancedb
db = lancedb.connect("./camelot")
tbl = db.create_table("characters", data=[
    {"id": "2", "name": "Merlin", "role": "Wizard",
     "description": "Advisor and prophet with deep magical knowledge.",
     "vector": [0.2, 0.9, 0.4, 0.9]}
])

LanceDB 테이블은 스키마를 요구해요. 스키마를 안 주면 데이터에서 추론해요.

4. 의미 검색

벡터 유사도 검색으로 "wise magical advisor"와 비슷한 샘플을 찾아요. to_pandas()로 결과를 Pandas DataFrame으로 받을 수도 있어요.

5. 큐레이션

메타데이터 필터로 결과를 다듬을 수 있어요. 예를 들어 큰 데이터셋에서 품질 라벨·훈련/평가 분할·숫자 필드·타임스탬프·생성 태그로 필터링하는 패턴을 써요.

6. 파생 특성 추가

특성 엔지니어링으로 power_score 같은 새 열을 추가해요. Lance는 **데이터 진화(data evolution)**를 지원해서 테이블 전체를 다시 쓰지 않고도 새 열을 추가할 수 있어요.

더 알아보기 (Learn more)

출처: LanceDB 공식 문서