[Qdrant] 소개 및 시작
Qdrant는 대표적인 벡터 검색 전문 데이터베이스 중 하나다.
milvus, pinecone과 더불어서 3대장 쯤으로 분류되는 것 같다.
오픈소스이고, 특이하게도 Rust로 만들어져있다.
최초 출시일은 1.0 버전 기준으로 2023년이다.
qdrant는 빠른 벡터 검색 처리 능력과 필터 검색 능력을 가지고 있고, 수십억개에 달하는 대규모 세트를 처리하기 위한 구조를 갖추고 있다. 그래서 샤딩과 복제를 통한 클러스터 구성 또한 기본으로 지원된다.
아래는 대략적인 구조를 정리해둔 그림이다.
Collection이라는 테이블 단위가 있고, 그 아래에 Points라는 데이터 행 단위가 있다.
그리고 각각의 Point는 벡터와, Payload라는 이름의 JSON 데이터들로 구성이 된다.
주요 검색 최적화 대상은 벡터이긴 하지만, Payload의 일반 필드값을 대상으로도 빠른 필터링을 제공한다.
Docker로 시작해보기
qdrant는 클러스터 구성 없이 단일 노드로도 실행이 가능하다. 이건 milvus보다 호감인 부분인 것 같다.
sudo docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant
포트는 2가지를 열었다.
6333은 HTTP용 포트고, 6334는 GRPC용 포트다. 하나만 쓸거라면 하나만 열어도 된다.
HTTP의 경우에는 바로 API를 날려서 사용해볼 수 있다.
실제로 서버에서 사용하려면 이 엔드포인트에 붙어서 요청을 날리면 된다.
대시보드도 자체적으로 제공하기 때문에 다루기는 꽤 쉬운 편이다.

참조
https://qdrant.tech/documentation/overview/
https://github.com/qdrant/qdrant
https://www.reddit.com/r/LocalLLaMA/comments/1dmbdmr/milvus_vs_pinecone_vs_other_vector_databases/
https://qdrant.tech/documentation/quickstart/