logo
logo
데이터
Kudu
하둡 에코시스템 저장소 중 하나로 방대방 데이터에서 빠른 분석을 수행하기 위한 Column-based 데이터베이스
StackOverflow 질문 수: 434
Github Stars : ★ 1864
사용 기업
패션
금융/보험
종합
techstack-logo
딜리셔스
techstack-logo
카카오페이
techstack-logo
카카오뱅크
techstack-logo
SK플래닛
기술 블로그 글
비바리퍼블리카
입수는 Datalake로! (feat. Iceberg)
안녕하세요. 오늘은 토스 데이터 플랫폼팀에서 데이터 효율성을 높이기 위해 도입한 ‘Iceberg’에 대해 이야기해 보려고 합니다. Iceberg에 대한 기본적인 정보는 다른 곳에서도 쉽게 찾아볼 수 있지만, 저는 특히 유지보수와 운영 측면에 집중해서 이야기하려 합니다.최근 데이터의 양과 다양성이 급격히 증가하면서, 효율적인 데이터 파이프라인 구축의 중요성이 그 어느 때보다 커졌는데요. 특히, 실시간 데이터 조회와 수정, 운영 비용 절감, 스키마 진화의 간소화, 쿼리 성능 최적화와 같은 도전 과제들이 주요 이슈로 떠오르고 있습니다.이러한 문제를 해결하기 위해, 토스 데이터 플랫폼 팀은 작년 하반기부터 올해 상반기까지 ‘Iceage 프로젝트’를 진행하며 DataLake에 Iceberg 포맷을 도입해 효율적인 데이터 파이프라인을 구축했습니다. 이번 글에서는 Iceberg 도입을 통해 얻은 경험을 바탕으로, 유지보수와 운영 과정에서의 실질적인 팁과 인사이트를 공유하려 합니다. 글에 공유된 모든 예시는 Spark(버전 3.5.2)와 Iceberg(버전 1.5.2) 기준으로 작성되었습니다.저희 팀의 최종 목표는 다양한 데이터 소스(Kafka, CDC 등)로부터 입수된 데이터를 Iceberg 포맷으로 관리하여, 실시간으로 데이터를 조회하고 수정할 수 있는 효율적인 데이터 파이프라인을 만드는 것입니다. 이를 통해 운영 비용을 절감하고, 데이터 처리 효율성을 높이며, 스키마 진화와 쿼리 성능을 최적화하고자 했습니다.• None : 입수 후 5분에서 15분 이내에 데이터를 조회하고 수정할 수 있는 구조를 만들어서 사용자에게 실시간 데이터를 제공하고자 했습니다.• None : JSON으로 입수되는 데이터를 Parquet, Kudu로 적재하기 위한 비용을 절감하고, 리소스를 효율적으로 사용할 수 있는 파이프라인을 구축했습니다.• None : Iceberg의 스키마 에볼루션 기능을 활용해 스키마 변경 시 발생하는 복잡한 커뮤니케이션을 줄이고 리소스 사용을 최소화했습니다.• None : Iceberg의 히든 파티셔닝과 파티션 에볼루션을 통해 쿼리 성능을 최적화할 수 있었습니다.• None : Kafka Connect 기반의 입수 작업 메타데이터와 리니지 관리를 통해 운영 효율성을 크게 향상시켰습니다.• None : Iceberg의 트랜잭션 지원 덕분에 데이터의 일관성과 무결성을 유지할 수 있었습니다.• None Iceberg 메타데이터를 이용한 테이블 모니터링 시스템 구축 : Iceberg의 메타데이터를 활용해 테이블의 상태를 실시간으로 모니터링하고, 문제 발생 시 빠르게 대응할 수 있는 시스템을 구축했습니다.기존 데이터 파이프라인에는 어떤 문제가 있었고, 왜 위와 같은 목표를 세우게 됐는지 살펴보겠습니다.문제 #1: Kafka 데이터 처리와 CDC 입수의 문제점기존 데이터 처리에서는 Kafka와 CDC 데이터 입수 과정에서 여러 가지 문제가 있었습니다.• None Kafka 데이터를 JSON 형식으로 입수하고 Parquet 형식으로 변환하는 과정에서 고정된 리
kafka
kudu
SK텔레콤
Open Source 기반의 Big Data Platform 구축
안녕하세요.제가 이번에 공유드릴 내용은 Open Source 기반의 OLAP workeloads에 최적화된 분산 Storage인 Apache Kudu와분산 Computing 환경을 제공하는 MPP(Massively Parallel Processing) SQL Query engine인 Apache Impala 환경 구성입니다.그밖에 각 서비스의 Monitoring 관련한 Open Source와 간략한 구성 정보를 공유 해드리고자 합니다.소개될 Architecture는 모두 Open Source 기반의 Solution으로만 구성을 하였으므로, 이와 같은 Big Data Platform 구축을 고려하고 계신다면 참고가 되실 수도 있을 것 같습니다.※ 보안에 민감한 이미지 내용 및 텍스트는 모자이크/임의변경 처리 했습니다.Apache Kuduhttps://kudu.apache.orgCloudera에서 C++ 기반으로 개발되었으며, Apache 재단에서 관리하는 Open SourceOLTP와 OLAP 특징을 결합한 HTAP(Hybrid Transactional/Analytic Processing) 구조 Realtime high performance Writes Concurrent SQL ReadsRDBMS와 유사한 구조화된 데이터 모델(Column/Primary Key Design/Partitioning 등)Apache Impala와 최적의 성능 조합을 이루며, Apache NiFi 및 Apache Spark와의 통합 지원Master 및 Tablet 서버의 Raft Consensus 알고리즘을 사용한 HA 지원 (Tablet Replica별 Tablet 서버 각각의 Leader/Follower 구조)장애 감지 및 복구 : 복제본에 장애가 발생한 경우, 사용 가능한 다른 Tablet 서버로 자동 복제 (Leader 복제본 장애시에도)서비스 및 Cluster 유지 관리가 쉬움Apache Impalahttps://impala.apache.orgCloudera에서 C++, Java 기반으로 개발되었으며, Apache 재단에서 관리하는 Open SourceHDFS 및 Kudu Storage 환경의 대용량 Data를 처리할 수 있는 고성능 SQL Query engine in-Memory 기반의 Data 처리 SELECT, Joins, and Aggregate Functions등을 포함한 SQL (HiveQL) syntax 지원 JDBC/ODBC driver 제공Impala Daemon UI에서 제공하는 상세한 Query Plan/Profile 및 모니터링 기능 제공서비스 및 Cluster 유지 관리가 쉬움Cluster 환경 정보OS Version 및 H/W SpecOS : Linux(RHEL 8.4)CPU : 48 CoreDisk(SSD) : 30 TBMemory : 384 GBComponent VersionApache Kudu : 1.16.0Apache Impala : 4.2.0Apache Hadoop(Standalone) : 3.1.1Apache Hiv
elasticsearch
grafana
impala
kudu
네이버
Kudu를 이용한 빅데이터 다차원 분석 시스템 개발
네이버의 콘텐츠 통계 서비스는 네이버의 콘텐츠를 사용자가 얼마나 소비했는지에 대한 통계를 콘텐츠 생산자에게 제공합니다. 예를 들어 블로그 관리자가 볼 수 있는 통계 메뉴의 방문자수 통계와 포스트 조회수 통계 등이 콘텐츠 통계 서비스가 블로그 콘텐츠 생산자에게 제공하는 정보입니다. 콘텐츠 통계 서비스를 제공하려면 빅데이터 분석이 필요합니다. 네이버는 Kudu를 백엔드 데이터베이스로 사용하는 빅데이터 다차원 분석 시스템을 개발해 2017년 5월부터 2018년 3월까지 운영하며 콘텐츠 통계 서비스 등에 사용했습니다. Kudu는 Cloudera에서 개발한 칼럼 기반 스토리지(columnar storage)입니다. 다른 많은 칼럼 기반 스토리지와 달리 primary key를 제공하기 때문에 밀리초(ms) 수준의 랜덤 액세스가 가능합니다. OLAP(online analytical processing) 성격의 질의와 OLTP(online transaction processing) 성격의 질의를 모두 지원하기 때문에 Kudu를 사용하면 빅데이터 분석 시스템의 구조를 단순하게 만들 수 있습니다. 이 글에서는 콘텐츠 통계 서비스에서 활용할 수 있는 빅데이터 다차원 분석 시스템을 Kudu를 사용해 개발한 경험을 소개합니다. 빅데이터 분석 시스템에서는 로그 수집, 저장, 집계, 질의 처리, 시각화, API 등이 필요하지만 이 글에서는 주로 저장과 질의 처리 기능을 중심으로 설명하겠습니다. 콘텐츠 통계 서비스와 KUDU 네이버 블로그의 방문자수 통계와 포스트 조회수 통계와 같이 네이버의 콘텐츠를 사용자가 얼마나 소비했는지에 대한 통계를 콘텐츠 생산자에게 제공하는 콘텐츠 통계 서비스는 빅데이터를 처리하기 위해 다양한 플랫폼을 사용한다. 2017년 5월에는 빅데이터 플랫폼인 Kudu를 사용한 빅데이터 다차원 분석 시스템을 개발해 콘텐츠 통계 서비스에 적용했다. Cloudera에서 개발한 칼럼 기반 스토리지인 Kudu는 Parquet의 파일 포맷처럼 OLAP 성격의 질의를 빠르게 처리한다. 또한 HBase가 row key를 제공하는 것과 비슷하게 primary key를 제공하기 때문에 밀리초 수준의 랜덤 액세스가 가능하다. OLAP 성격의 질의와 OLTP 성격의 질의를 모두 지원하는 Kudu를 사용하면 빅데이터 분석 시스템의 구조를 단순하게 만들 수 있다. > Kudu를 사용하기 전의 콘텐츠 통계 서비스에 관한 더 자세한 내용은 DEVIEW 2016의 "네이버 콘텐츠 통계서비스 소개 및 구현 경험 > 공유" 세션의 발표 내용을 참고한다. > - 세션 발표 자료: [215]네이버콘텐츠통계서비스소개 > - 세션 발표 영상: 네이버 콘텐츠 통계서비스 소개 및 구현 경험 공유 KUDU의 특징 Kudu의 특징은 로그 수집, 저장, 집계, 질의 처리, 시각화, API 등의 측면에서 살펴볼 수 있지만, 이 글에서는 저장과 질의 처리 측면을 중심으로 살펴보겠다. Kudu에 관한 더 자세한 내용은 Kudu 웹 사이트와 "Kudu: Storage for Fast Analytics o
clickhouse
druid
elasticsearch
hadoop
hbase
impala
kudu
nodejs
spark
연관 기술 스택
techstack-logo
Hadoop
techstack-logo
Impala
techstack-logo
Presto
techstack-logo
Spark
Copyright © 2025. Codenary All Rights Reserved.