Starrocks에 대해 정리해보자

2026. 1. 12. 21:27·Infra

회사에서 HDFS+Impala 대신에 Starrocks라는 최신 MPP 기술로 마이그레이션을 진행하고 있습니다. (내가 안함)

데이터 엔지니어링 쪽에서 꽤 신기술이긴 한데, 기존 데이터 레이크하우스 기술과 뭐가 다른지 개인적으로 정리해보려 합니다.

 

일단 핵심적으로 Starrocks와 같은 다른 OLAP 엔진과 차이점은 아래의 주요기능을 보면 알 수 있습니다.

 

StarRocks의 주요 기능

  • 고성능 JOIN: 빅데이터 분석에서 불가피하게 사용되던 플랫 테이블 구조에서 벗어날 수 있습니다.
  • 고성능 단일 테이블 쿼리: 실제 분석 워크로드를 기반으로 한 자체 테스트에서도 Clickhouse보다 뛰어난 성능을 보였습니다.
  • 클라우드 데이터베이스로서의 기능: 오토 스케일링, 분산 스토리지를 통한 연산과 스토리지 분리가 가능합니다.
  • materialized view를 통한 베이스 테이블 쿼리 성능 향상: 스케줄러 형태의 materialized view를 통한 데이터 사전 분석 기능을 제공합니다.
  • Iceberg 데이터 레이크 연동에 최적화: StarRocks + Iceberg 연동은 HDFS의 데이터를 빠르게 조회하기에 최적의 설루션으로, Iceberg는 CelerData와 파트너십을 맺고 있습니다.
  • 외부 데이터를 캐싱하여 로컬 데이터처럼 활용하는 캐싱 메커니즘 제공

출처: d2 블로그


여기에서 MPP, OLAP에 대해서 간단히 정리해자면

1. 네트워크  속도 >  디스크 속도

일단 현대적인 MPP, OLAP 엔진은 HDFS의 데이터 지역성에 벗어나기 위해 노력했습니다. 과거 Hadoop(HDFS)가 설계 될 당시에는 네트워크 대역폭이 좁고, 디스크 읽기 속도가 상대적으로 훨씬 빨랐기 때문에 데이터가 존재하는 데이터 노드로 MapReduce 연산을 보내 수행하는 것이 훨씬 효율적인 것이었습니다. 현대에는 엄청 빨라진 네트워크 회선 속도 때문에 디스코 속도가 상대적으로 정체를 일으키는 구간입니다.  따라서 MPP와 같은 병렬처리가 가능해진 것입니다.

 

2. 왜 MinIO + StarRocks를 사용할까

StarRocks 3.0 버전부터 Shared-Compute Separation(스토리지 컴퓨팅 리소스 분리 아키텍처)는 위에서 설명했던 빠른 네트워크 속도가 필수적 입니다.

 

HDFS 구조에서는 용량이 부족하면 호스트 서버를 통째로 늘려야 했습니다. (CPU + Disk) 하지만 최신 StarRocks와 MinIO 조합에서는 객체 스토리지 기능을 MinIO에서 담당하고, 쿼리와 같은 컴퓨팅 리소스를 StarRocks BE 노드만 증설해주면 되기 때문에 독립적인 운영이 가능해집니다.

 

Shared-nothing 아키텍처

 

이러한 장점 때문에 최신 데이터 엔지니어링에서는 ETL -> ELT로 넘어갈 수 있는 것입니다. 과거에는 데이터가 있는 곳에서 연산을 진행해야 됬기 때문에 ETL이 최선의 방법이었지만, 현재에는 ELT 데이터를 직접 옮겨 StarRocks와 같은 MPP가 직접 연산을 실행하기 때문에 데이터 관리 비용이 훨씬 줄어든다고 합니다.

 

StarRocks에는 아주 다양한 장점이 있는 것으로 압니다. MySQL protocols에 호환성이 있기 때문에 MySQL SQL 사용과 매우 유사해 사용 난이도가 낮고, 또한 Catalog라는 기능으로 HDFS, S3, MySQL 등.. MinIO 또는 자체 데이터 저장 공간외의 카탈로그로 데이터를 가져올 수 있습니다. 이러한 유연성과 매우 뛰어난 성능으로 인기가 자연스레 많아진 것 같네요.  또한, 다양한 BI 대시보드, 도구, 데이터 소스와 연동이 매우 쉽습니다.

 

FE, BE(CN) 노드로 구성되며 FE 노드는 CBO, 컴팩션 스케쥴링, 메타데이터 관리 등 다양한 쿼리 최적화 기능을 담당한다고 합니다. 하나의 FE 노드가 리더 노드가 되어 중심으로 구성되고 Raft 프로토콜로 리더 노드의 업데이트를 동기화 한다고 합니다. BE 노드에는 BE, CN 유형이 있는데, BE는 스토리지 관리와 연산 수행, CN은 아래의 그림과 같이 스토리가 분리된 환경에서 연산을 수행합니다.

Shared-data 아키텍처

StarRocks는 내부적으로 LSM 트리 기반 스토리지 엔진을 사용합니다.

 


 

StarRocks Github에 가면, Docker, AWS 환경, K8s 환경 등 다양한 환경에 대한 문서를 마련해 두었습니다.

 

https://github.com/StarRocks/starrocks?tab=readme-ov-file

 

GitHub - StarRocks/starrocks: The world's fastest open query engine for sub-second analytics both on and off the data lakehouse.

The world's fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performa...

github.com

 

다양한 회사들에서 이미 데이터 레이크하우스 분석으로 사용중 입니다.

회사들에서 다양한 StarRocks로 마이그레이션 했더니 성능 향상 쩐다! 이런 이야기를 많이합니다.

 

e.g. 텐센트, Trip.com, Naver .. 

 

https://starrocks.io/starrocks-case-studies-and-user-testimonials

 

StarRocks Case Studies and User Testimonials

Learn why an ever-increasing number of enterprises are adopting StarRocks and how it can be the ideal solution for your real-time and lakehouse scenarios.

starrocks.io

 

네이버 d2 에서 쓴 StarRocks 도입 배경과 성능 최적화 기술 블로그 글입니다. 이 글을 통해서 대표적인 지식을 많이 습득했습니다. 위에서 설명한 내용보다 아래의 글을 자세히 보면 더 좋을 것 같아요.

 

https://d2.naver.com/helloworld/1168674

 

나중에 시간이 생기면 MinIO와 HDFS의 차이(쓰임새)에 대해서도 정리 해보겠습니다. 

'Infra' 카테고리의 다른 글

ELK 마이그레이션 7.2 to 9.2.3  (0) 2026.01.31
Kubernetes는 부담스러운 당신 Docker Swarm은 어떠신가요?  (1) 2025.12.14
클라우드 컨테이너 환경 모니터링 GUI : Portainer 알아보기  (0) 2025.12.09
아직도 Logstash만 쓰는 그대를 위한 : Fluentd 알아보기  (0) 2025.12.08
'Infra' 카테고리의 다른 글
  • ELK 마이그레이션 7.2 to 9.2.3
  • Kubernetes는 부담스러운 당신 Docker Swarm은 어떠신가요?
  • 클라우드 컨테이너 환경 모니터링 GUI : Portainer 알아보기
  • 아직도 Logstash만 쓰는 그대를 위한 : Fluentd 알아보기
doma17
doma17
모든 개발 주저리 모음집
  • doma17
    doma17의 개발 블로그
    doma17
  • 전체
    오늘
    어제
    • 분류 전체보기 (17)
      • 주저리 (6)
      • Code (1)
        • Java (2)
        • Spring (2)
        • NestJS (0)
        • JS&TS (0)
      • Infra (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    java
    인턴
    jvm
    InputStream
    kubernetes
    spring
    Ai
    multi-tenancy
    Java25
    StarRocks
    Portainer
    OLAP
    DOCKER SWARM
    elasticsearch
    Agent
    HTTPServletRequest
    NestJS
    elk
    Swarm
    skill
    마이그레이션
    PODMAN
    Docker
    fluentd
    멀티태넌시
    ContentCachingRequestWrapper
    전환형
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
doma17
Starrocks에 대해 정리해보자
상단으로

티스토리툴바