클릭하우스(ClickHouse) – 기적의 데이터베이스 기술

7 hours ago 3
  • 차트메트릭 창업자 조성문이 ClickHouse를 도입하며 겪은 경험과 그 성능의 원리를 정리한 글
  • 기존 DB의 한계에서 출발
    • MySQL/PostgreSQL 같은 관계형 DB는 인덱스에 의존하는데, 모든 질문에 맞는 인덱스를 미리 만들 수 없음. 수십억 행 규모의 GROUP BY/ORDER BY 분석 쿼리는 수 분이 걸리기도 함
    • BigQuery/Redshift/Snowflake 같은 데이터 웨어하우스는 서버 기동·작업 분할·결과 병합이라는 분산 오버헤드가 있어, 작고 즉각적인 조회에는 오히려 비효율적
  • 발견 계기는 ChartMogul. 고객으로 쓰다가 성능에 놀라 창업자에게 물어보고 ClickHouse를 알게 됨. 엔지니어가 맥북에 직접 설치해 약 10억 건을 넣고 악명 높은 집계 쿼리를 돌렸더니 "엔터를 치는 순간 답이 나왔다"
  • 빠른 이유 네 가지
    • 칼럼 단위 저장: 필요한 칼럼만 읽고, 같은 타입이 모여 있어 압축 효율이 높음
    • 벡터화 처리: 행 하나씩이 아니라 블록 단위로 계산해 함수 호출 오버헤드를 제거
    • 병렬 처리: 여러 CPU 코어가 데이터 조각을 나눠 부분 집계 후 합산
    • 희소 기본 인덱스: B-tree 대신 약 8,192행마다 표식을 남겨, 볼 필요 없는 데이터 묶음을 통째로 건너뜀
  • 만능은 아님을 분명히 함
    • 개별 사용자 레코드의 즉시 조회나 트랜잭션 안전성은 PostgreSQL이 우위
    • 거대 조직 전체 데이터의 복잡한 분산 운영은 데이터 웨어하우스가 우위
    • ClickHouse의 자리는 방대한 이벤트/시계열/로그 데이터의 빠른 필터링과 집계
  • 현재 저자의 회사는 전체 데이터의 거의 절반을 ClickHouse로 처리 중이며, 나머지 영역도 계속 이전하고 있음
  • 결론: 물리 법칙을 어긴 마법이 아니라 "읽는 바이트 수와 불필요한 CPU 작업을 줄인" 결과. 데이터 분석과 실시간 대시보드를 고민 중인 회사라면 검토해 볼 만함
Read Entire Article