lancedb

Vector DatabasesDevOpsRust

★ 11,410주당 +66조회 5

무엇인가

벡터 데이터베이스 계층에 속하며, 애플리케이션 프로세스 안에 라이브러리로 들어가 동작하는 임베디드 검색 엔진이다. AI/ML 워크로드에서 임베딩, 메타데이터, 원본 멀티모달 데이터를 같은 테이블에 두고 조회하는 자리를 맡는다.

어떻게 동작하나

저장 계층은 Lance 컬럼 포맷을 쓴다. 데이터는 Lance 파일로 로컬 디스크나 객체 스토리지에 남고, 제로 카피 읽기와 자동 버전 관리가 포맷 수준에서 처리된다. 질의는 벡터 유사도 검색, 전문 검색, SQL 세 가지를 지원하며 한 테이블에 함께 걸 수 있다. 벡터 인덱스 구축에는 GPU를 쓸 수 있다. 클라이언트는 Python, Node.js/TypeScript, Rust SDK와 REST API로 제공된다.

무엇과 다른가

서버 프로세스를 따로 띄우는 벡터 DB와 달리 애플리케이션에 임베드되어 별도 인프라를 요구하지 않는다. 데이터를 외부 서비스에 적재하지 않고 파일로 보관하므로 벤더 종속이 생기지 않는다. 버전 관리는 추가 인프라 없이 포맷이 담당한다. 분석 도구와의 연결은 Apache Arrow, Pandas, Polars, DuckDB를 경유한다.

어떻게 쓰나

SDK를 설치한 뒤 로컬 경로나 객체 스토리지 URI를 지정해 DB를 열고, Arrow 테이블이나 Pandas 데이터프레임에서 테이블을 만든다. 벡터와 메타데이터를 추가하고 인덱스를 생성한 다음 검색을 실행한다. LangChain, LlamaIndex 연동으로 기존 파이프라인에 붙일 수 있다.

전제와 한계

핵심 구현은 Rust이고 공식 SDK는 Python, TypeScript, Rust 세 가지다. GPU 지원은 벡터 인덱스 구축 단계에 한정된다. 저장 위치는 로컬 디스크 또는 객체 스토리지이며 데이터는 Lance 포맷 파일로 남는다. README에는 최소 버전이나 플랫폼 제약이 명시되어 있지 않다.

유사 도구