
안녕하세요, 에이플랫폼의 싱글스토리 시리즈입니다.
최신 데이터 플랫폼을 구축할 때, 데이터베이스 엔진 선택은 성능뿐만 아니라 일관성과 안정성에도 중요한 영향을 미칩니다.

이번 싱글스토리에서는 빠른 분석 처리로 주목받는 ClickHouse가 완전한 ACID를 지원하지 않는 한계를 가지고 있다는 점과, SingleStore가 어떻게 트랜잭션과 분석을 모두 처리하면서 완전한 ACID를 준수하는지 알아보겠습니다
SingleStore와 Clickhouse의 이해
SingleStore는 실시간 분석 및 AI 데이터베이스입니다.
많이 사용하는 SQL Tool 및 MySQL 프로토콜 호환성을 통해 SingleStore는 특수 데이터베이스의 필요성을 없애고 데이터베이스 아키텍처를 단순화했습니다.
또한 SingleStore는 JSON, 시계열, 지리 공간 및 Full Text Search를 포함한 여러 데이터 유형을 처리하도록 구축되어 통합 트랜잭션(OLTP) 및 분석(OLAP) 기반에서 고속 데이터 수집을 제공합니다.
ClickHouse 란?
ClickHouse는 Yandex에서 개발하고 ClickHouse, Inc.에서 유지 관리하는 오픈 소스 실시간 데이터 웨어하우스입니다.
주로 데이터 분석을 위해 설계된 열 기반 데이터베이스를 사용하며, 대규모 데이터 세트에서 뛰어난 쿼리 성능을 제공합니다.
ClickHouse는 수직 분할, 벡터화된 쿼리 실행 및 압축 기술을 활용하여 로그 분석, 모니터링(Observability) 및 시계열 데이터 처리를 위한 솔루션으로 자리 잡고 있습니다.
SingleStore와 ClickHouse의 주요 차이점
Aspect
|
SingleStore
|
ClickHouse
|
주요 기능
|
통합 (OLTP + OLAP) 워크로드
|
고성능 분석 (OLAP) 워크로드
|
저장 방식
|
OLTP 및 OLAP 에 대한 범용 Columnstore
|
분석 쿼리에 최적화 된 Columnar storage
|
쿼리 실행 엔진
|
컴퓨팅 푸시다운을 사용하는 분산 SQL 엔진
|
벡터화된 실행 및 압축을 사용하는 MPP엔진
|
트랜잭션
|
완전한 ACID 지원
|
완전한 ACID 미지원
|
데이터 수집
|
Kafka, S3, Iceberg 형식, JSON과 같은 여러 소스에 대한 내장 파이프라인을 통한 실시간 수집
|
높은 수집 속도, 배치 삽입 사용
|
데이터 업데이트
|
트랜잭션에 대한 표준 SQL DML(INSERT, UPDATE, DELETE) 지원
|
제한적 지원; 추가 전용 또는 일괄 업데이트에 가장 적합
|
워크로드 유연성
|
하나의 시스템에서 통합된 워크로드(트랜잭션 + 분석)를 처리.
|
주로 분석, 읽기 중심의 워크로드에 최적화.
|
확장성
|
수평적 및 수직적 온라인 확장 지원
|
노드 추가를 통한 수평 확장
|
압축
|
높은 압축비 (약 60-70%)
|
압축 지원
|
분산 방식
|
자동
|
수동
|
데이터 변환
|
파이프라인을 사용한 TRANSFORM의 내장 지원
|
내장 구문 또는 기능 없음
|
사용 사례 적합성
|
실시간 분석, 혼합 워크로드 통합, 데이터 인프라 단순화
|
분석 쿼리
|
벡터 데이터 유형
|
Mature
|
New
|
JSON 지원
|
완전히 통합된 JSON 데이터 유형 및 함수
|
JSON 데이터를 처리하기 위한 객체 데이터 유형 및 관련 함수
|
CDC out
|
내장 CDC out 기능
|
내장 기능 없음
|
WASM
|
선택한 언어로 UDF/TVF를 생성하고 보안 강화를 위해 샌드박스 환경에서 실행가능
|
지원 없음
|
트랜잭션 신뢰성을 위한 ACID 비교 테스트
완전한 ACID 는 데이터 플랫폼에서 안정적인 트랜잭션을 제공하며, 충돌 발생 시 데이터 손실을 방지하는 데 필수적입니다.
ClickHouse는 빠른 분석 쿼리를 제공하지만, 완전한 ACID 트랜잭션을 지원하지는 않습니다.
반면, SingleStore는 강한 ACID 규정 준수를 갖추고 있으며, 읽기/쓰기 혼합 분석 워크로드에서도 우수한 성능을 발휘해 높은 동시성을 요구하는 사용 사례에 적합합니다.
이러한 이유로 많은 회사들이 ClickHouse에서 벗어나 SingleStore로 전환하고 있습니다.
두 데이터베이스를 ACID 테스트를 통해 비교하여 명확한 근거를 제시하려 합니다.
ClickHouse 테스트 환경 구성
설치 유형: 클라우드(지역: 오하이오)
ClickHouse 서버 버전 24.8
최대 48 vCPU, 192GiB로 확장(6 vCPU, 24GiB에서)
엔진: MergeTree

SingleStore 테스트 환경 구성
설치 유형: 클라우드(지역: 오하이오)
SingleStore 버전 : 8.7.1
크기: S-1, 8vCPU, 64GiB파트: 32
테이블 형식: Columnstore

ACID 테스트 매개변수
Atomicity 원자성
원자성(Atomicity)은 트랜잭션이 All or Nothing (모든 작업이 성공하거나 아무 작업도 성공하지 못함)이 되도록 하여 데이터를 손상시킬 수 있는 부분적인 변경을 방지하기 때문에 중요합니다.
Alice에서 Bob으로 간단한 자금 이체를 수행하여 의도적으로 중간에 오류를 발생시켜 전체 트랜잭션이 정상적으로 롤백되는지 확인합니다.
SingleStore가 이 테스트를 통과했음을 명확하게 확인할 수 있지만 ClickHouse Cloud 또는 Self Managed에서는 지원되지 않습니다.
Atomicity on SingleStore


Atomicity on ClickHouse


Consistency 일관성
일관성(Consistency)은 모든 트랜잭션이 데이터베이스의 제약 조건을 준수하며, 한 상태에서 다른 유효한 상태로 변환되도록 보장하는 개념입니다.
SingleStore는 데이터 무결성을 유지하기 위해 다양한 제약 조건을 적용하여 잘못된 데이터가 커밋되지 않도록 보장합니다.
반면, ClickHouse는 트랜잭션을 지원하지 않으며, 고유 키 제약 조건 및 CHECK 제약 조건을 적용할 수 없습니다.
Consistency on SingleStore


Consistency on ClickHouse

Isolation 격리
격리(Isolation)는 여러 트랜잭션이 동시에 실행될 때, 서로의 처리 과정에 영향을 미치지 않도록 보장하는 원칙입니다.
고전형적인 테스트 방법은 두 개의 별도 세션(트랜잭션 A와 트랜잭션 B)을 생성한 후 트랜잭션 A의 커밋되지 않은 변경 내용이 서로 다른 격리 수준에서 트랜잭션 B에서 표시되는지(또는 차단되는지) 확인하는 것입니다.
Isolation on SingleStore





Isolation on ClickHouse
ClickHouse의 격리 수준은 OLTP 데이터베이스처럼 행 수준 잠금을 지원하지 않기 때문에 제한적입니다.
사용자는 트랜잭션 내에서 여러 SQL 문을 실행할 수 있지만, 해당 변경 사항은 커밋되기 전까지 다른 세션에서 보이지 않는 상태로 유지될 수 없습니다.
ClickHouse는 데이터가 삽입되면 즉시 커밋되고 표시되는 단순한 모델을 적용하기 때문에, 일반적인 '더티 읽기(Dirty Read), 반복 불가능한 읽기(Non-Repeatable Read), 팬텀 읽기(Phantom Read)' 격리 수준 테스트를 제공하지 않습니다.

Durability 내구성
내구성(Durability)은 트랜잭션이 한 번 커밋되면 시스템이 충돌하거나 재시작되더라도 해당 데이터가 안전하게 유지되도록 보장하는 원칙입니다.
Durability on SingleStore
SingleStore는 트랜잭션 로그를 주기적으로 디스크에 저장하여 데이터의 안전성과 내구성을 유지합니다.
내구성은 '동기 내구성(Synchronous Durability)'과 '비동기 내구성(Asynchronous Durability)' 설정에 따라 다르게 작동합니다.
완전한 내구성을 보장하려면 '동기 내구성' 설정을 사용하여 커밋을 승인하기 전에 트랜잭션 로그를 디스크에 기록(Flush)할 수 있습니다.
SingleStore는 트랜잭션에서 다중 문 내구성을 지원합니다.

Durability on ClickHouse
ClickHouse는 단일 명령문 내구성을 보장합니다.

지금까지 SingleStore 와 ClickHouse의 ACID에 관한 차이점에 대해 소개해 드렸습니다.
ACID(원자성, 일관성, 고립성, 지속성)는 근본적으로 트랜잭션 보장에 관한 개념입니다.
따라서 커밋(commit) 및 롤백(rollback) 같은 트랜잭션 기능을 제공하지 않는 ClickHouse는 일반적으로 완전한 ACID 준수 데이터베이스로 간주되지 않습니다.
ClickHouse는 단일 명령문 트랜잭션의 원자적 실행을 지원하고, 이를 통해 일관성, 격리 및 내구성을 어느 정도 보장할 수 있습니다.
하지만 이는 완전한 ACID 호환 시스템이라고 보기 어려우며, 일반적으로 그렇게 평가되지 않습니다.
ClickHouse의 주요 제한점
ClickHouse는 빠른 분석 쿼리 성능을 제공하는 강점이 있지만,
- 다중 명령문 트랜잭션 지원 부족
- 롤백 기능 미지원
- 엄격한 일관성 보장 부족
등의 한계가 있습니다.
SingleStore: 강력한 트랜잭션 보장
ACID 준수를 완벽하게 지원하는 실시간 분석 데이터베이스인 SingleStore는 고성능 분석과 완전한 트랜잭션 지원을 결합하여 복잡한 워크로드에서도 안정적인 데이터 일관성과 원자성을 보장합니다. 이에 따라 강력한 데이터 무결성, 일관성 및 운영 유연성이 필요한 경우 SingleStore가 더욱 적합한 선택이 될 수 있습니다.
앞으로도 더 많은 정보와 최신 업데이트를 빠르게 소개해 드리겠습니다.
혹시 궁금한 점이 있다면 언제든지 댓글로 남겨 주세요! 😊





'업체소식' 카테고리의 다른 글
싱글스토리 12화 - SingleStore,TrustRadius Top Rated 5관왕 달성 (2) | 2025.06.16 |
---|---|
싱글스토리 11화 - SingleStore 9.0 버전 RC! (0) | 2025.06.13 |
싱글스토리 10화 - SingleStore Helios, 통합 검색 속도 5배 이상 개선 (0) | 2025.04.29 |
싱글스토리 8화 - SingleStore Dev Image, New Docker Image (0) | 2025.04.11 |
싱글스토리 7화 - SingleStore x Dataloop, 실시간 AI 데이터 파트너십 공식 발표 (0) | 2025.04.10 |