MySQL이나 PostgreSQL을 사용해 본 사람에게도 SingleStore는 다소 낯선 데이터베이스일 수 있습니다. 최근에는 생성형 AI와 벡터 검색을 위한 데이터베이스를 살펴보는 과정에서도 자주 언급됩니다. 그렇다면 SingleStore는 기존의 관계형 데이터베이스와 어떤 점이 다를까요?
SingleStore는 트랜잭션 처리와 분석을 하나의 시스템에서 함께 수행할 수 있도록 설계된 분산 SQL 데이터베이스입니다. 데이터를 여러 서버에 나눠 저장하지만, 사용자는 SQL을 이용해 전체 시스템을 하나의 데이터베이스처럼 다룰 수 있습니다.
또한 벡터(vector, 문장의 의미를 숫자 배열로 표현한 데이터) 데이터를 저장하고 유사도를 검색할 수 있어, 생성형 AI의 RAG 구조에서 사용자의 질문과 관련된 문서를 찾는 데도 활용됩니다. 예를 들어 챗봇이 참고할 문서를 벡터 형태로 저장하고, 질문과 의미가 유사한 문서를 검색하는 방식입니다. 여기서 벡터는 문장의 의미적 특징을 숫자 배열로 표현한 데이터를 말합니다.
SingleStore는 생성형 AI뿐 아니라 거래나 이벤트 데이터가 지속적으로 유입되고, 새로 들어온 데이터를 곧바로 조회하거나 분석해야 하는 서비스에도 적합합니다.
SingleStore는 분산 SQL 데이터베이스입니다. 데이터는 여러 노드에 나눠 저장되지만, 표준 SQL 문법을 이용해 전체 시스템을 하나의 데이터베이스처럼 조회하고 처리할 수 있습니다. 기존 관계형 데이터베이스를 사용해 본 사람이라면 익숙한 SQL 문법을 활용할 수 있으며, 특히 MySQL 통신 프로토콜과 호환돼 기존 MySQL용 드라이버와 도구를 연결할 수 있습니다.
또 하나의 특징은 새로 유입되는 데이터를 실시간으로 조회하고 분석하는 환경을 고려해 설계됐다는 점입니다. 계속 들어오는 데이터를 여러 서버에서 분산 처리하고, 별도의 분석 시스템으로 옮기기 전에 조회하거나 분석할 수 있습니다. 이러한 구조는 데이터가 지속적으로 유입되고 실시간에 가까운 분석이 필요한 환경에 적합합니다.
예전 자료를 찾아보면 MemSQL이라는 이름을 볼 수 있습니다. MemSQL은 SingleStore의 이전 이름이고, 같은 제품입니다. SingleStore는 2011년 MemSQL이라는 이름으로 시작했으며, 2020년 10월 현재의 이름으로 리브랜딩했습니다. 초기에는 인메모리 데이터베이스를 강조했지만, 이후 디스크 기반 저장과 분석 워크로드까지 지원 범위를 넓혔습니다. 공식 블로그에 따르면 인메모리 데이터베이스를 넘어선 제품의 방향성을 반영해 SingleStore라는 이름을 사용하게 됐다고 합니다.
SingleStore를 이해하려면 HTAP(Hybrid Transactional/Analytical Processing) 개념을 먼저 살펴볼 필요가 있습니다. HTAP를 이해하기 위해 데이터베이스의 주요 작업을 거래 처리와 분석 처리로 나눠 보겠습니다.
거래량과 분석 규모가 큰 환경에서는 이 두 작업을 서로 다른 시스템으로 분리하는 경우가 많았습니다. 서비스에서 발생한 데이터를 거래용 데이터베이스에 저장한 뒤, ETL(추출·변환·적재) 과정을 거쳐 분석용 시스템으로 옮겨 분석하는 방식입니다. 이 과정에서는 데이터 이동과 가공에 시간이 필요하기 때문에, 방금 들어온 주문이나 로그가 분석 결과에 반영되기까지 지연이 발생할 수 있습니다.
HTAP는 이러한 데이터 이동과 지연을 줄이기 위해 등장한 개념입니다. 거래와 분석을 하나의 데이터베이스 시스템에서 함께 처리해 데이터를 옮기는 단계를 최소화하고, 최신 데이터를 실시간에 가깝게 분석할 수 있도록 합니다. HTAP는 시장조사기관 Gartner가 제시한 개념이며, SingleStore는 이러한 HTAP 워크로드를 지원하도록 설계된 데이터베이스입니다.
예를 들어 쇼핑몰에서는 방금 발생한 주문이나 결제 데이터를 별도의 분석 시스템으로 옮기는 단계를 줄이고, 최신 매출을 집계해 실시간 대시보드에 반영할 수 있습니다. 이처럼 데이터 이동과 적재에 따른 지연을 줄이고, 최신 데이터를 곧바로 분석할 수 있다는 점이 HTAP의 핵심입니다.
SingleStore는 MySQL이나 PostgreSQL처럼 SQL을 사용하는 관계형 데이터베이스지만, 기본적인 설계 방향과 확장 방식에는 차이가 있습니다. 아래 표는 각 데이터베이스의 모든 배포 방식과 확장 기능을 비교한 것이 아니라, 일반적인 기본 구성과 주요 설계 방향을 기준으로 단순화한 내용입니다.
SingleStore의 주요 특징 가운데 하나는 여러 서버로 구성된 시스템을 하나의 데이터베이스처럼 사용할 수 있다는 점입니다. SingleStore는 데이터를 여러 노드에 나눠 저장합니다. 이처럼 데이터를 여러 조각으로 나눠 서로 다른 노드에 분산하는 방식을 샤딩(Sharding)이라고 합니다. 데이터 규모나 처리량이 늘어날 때 노드를 추가해 저장 공간과 처리 능력을 확장할 수 있어, 대규모 서비스에 유리합니다.
테이블의 저장 형식도 하나로 고정돼 있지 않습니다. 테이블을 만들 때 용도에 따라 로우스토어(Rowstore)와 컬럼스토어(Columnstore)를 사용할 수 있습니다. 로우스토어는 한 행의 데이터를 함께 저장해 개별 행을 자주 조회하거나 변경하는 거래 처리에 적합합니다. 컬럼스토어는 같은 열의 데이터를 모아 저장해 많은 행을 집계하고 분석하는 작업에 적합합니다. 하나의 데이터베이스 안에서도 테이블마다 서로 다른 저장 방식을 사용할 수 있습니다.
또 하나 최근 주목받는 이유는 벡터 데이터를 지원한다는 점입니다. 관계형 데이터뿐 아니라 JSON, 시계열, 지리공간 데이터와 함께 벡터 데이터도 저장하고 검색할 수 있어, 생성형 AI에서 문서 유사도 검색(RAG, Retrieval-Augmented Generation, 검색 증강 생성)과 같은 기능을 구현할 때도 쓰입니다.
SingleStore는 거래와 분석을 한 시스템에서 처리할 수 있어, 데이터가 지속적으로 유입되고 새로 들어온 데이터를 곧바로 조회하거나 분석해야 하는 서비스에 적합합니다.
예를 들면 다음과 같습니다.
SingleStore는 벡터 검색을 지원해 생성형 AI 애플리케이션에도 활용됩니다. 사용자의 질문과 관련된 자료를 검색해 생성형 AI의 답변에 활용하는 RAG 구조에서, 문서를 벡터 형태로 저장하고 질문과 의미가 유사한 문서를 찾는 데 사용할 수 있습니다.
특히 새로 들어온 데이터를 저장하는 데 그치지 않고, 최신 상태로 조회·분석하거나 검색해야 하는 환경에서 SingleStore의 실시간 처리와 통합 분석 기능을 활용할 수 있습니다.
실제 기업의 도입 사례도 확인할 수 있습니다. SingleStore 공식 웹사이트에는 Comcast, Hulu, Samsung, Sony, Adobe, NVIDIA 등의 기업이 고객사로 소개돼 있습니다. Uber는 실시간 분석 시스템의 일부로 MemSQL(현 SingleStore)을 사용했으며, 운행 데이터를 분석하고 지역별 예상 수요에 맞춰 대상 드라이버를 조회하는 데 활용한 사례를 공개했습니다.
이러한 사례는 SingleStore가 데이터가 지속적으로 유입되고, 최신 데이터를 짧은 지연 시간 안에 분석해야 하는 환경에 활용될 수 있음을 보여줍니다.
SingleStore는 거래 처리와 분석을 하나의 시스템에서 함께 수행하는 분산 SQL 데이터베이스입니다. 여러 서버로 구성된 시스템을 하나의 데이터베이스처럼 다룰 수 있으며, HTAP와 벡터 검색을 지원해 실시간 분석과 생성형 AI 애플리케이션에 활용할 수 있습니다.
다음 글에서 SingleStore를 실제로 운영할 때 기존 관계형 데이터베이스와 어떤 차이가 있는지, 안정적인 운영을 위해 어떤 지표를 살펴봐야 하는지 알아보겠습니다. SingleStore 모니터링이 더 궁금하다면 SingleStore 모니터링, 무엇을 봐야 하나에서 확인해 보세요.
SingleStore는 거래 처리(OLTP)와 분석(OLAP)을 하나의 시스템에서 함께 처리할 수 있도록 설계된 분산 SQL 데이터베이스입니다. 데이터를 여러 노드에 분산해 저장하면서도, SQL을 이용해 전체 시스템을 하나의 데이터베이스처럼 다룰 수 있습니다.
네. MemSQL은 SingleStore의 이전 이름입니다. 2011년 MemSQL이라는 이름으로 시작했으며, 2020년 10월 SingleStore로 리브랜딩했습니다. 이전 자료에서 MemSQL이라는 이름을 보더라도 현재의 SingleStore로 이해하면 됩니다.
벡터 데이터를 저장하고 검색할 수 있지만, 벡터 전용 데이터베이스는 아닙니다. SingleStore는 관계형 데이터를 중심으로 거래 처리와 분석을 수행하는 분산 SQL 데이터베이스이며, 그 안에서 벡터 검색 기능도 함께 제공합니다.
네. ANSI SQL을 기반으로 하므로 기존 관계형 데이터베이스에서 익힌 SQL 지식을 활용할 수 있습니다. 다만 모든 문법과 기능이 동일하게 동작하는 것은 아니며, 분산 구조에 맞게 샤드 키와 데이터 분포, 확장 방식을 함께 고려해야 합니다.
데이터가 지속적으로 유입되고, 최신 데이터를 짧은 지연 시간 안에 조회·집계하거나 분석해야 하는 서비스에 적합합니다. 예를 들어 쇼핑몰의 매출 집계, 배달·택시 서비스의 지역별 수요 분석, 게임의 접속자와 이벤트 로그 분석, 생성형 AI 애플리케이션의 벡터 검색 등에 활용할 수 있습니다.