The Hugo Evolution: Engineering Grab’s Unified, One-Click Data Ingestion Platform with Apache Flink

Author: Grab Engineering | Source: Grab Engineering Blog | Published: 2026-05-22


한 줄 요약

Grab이 Kafka Connect·Sprinkler·Spark로 파편화됐던 데이터 인제스천을 Apache Flink CDC 기반 단일 control plane으로 통합해, 파이프라인 온보딩을 며칠에서 수 분(Kafka ~6분, MySQL CDC ~3분)으로 단축.

핵심 주장/내용

  • Hugo는 원래 Spark 기반 배치 인제스천 셀프서비스 플랫폼이었으나, 실시간 인제스천으로 확장하면서 Kafka Connect + Sprinkler(Go S3 writer) + Hugo 등 다중 플랫폼 조율 필요 → 온보딩 파편화
  • 사용자 고충: MySQL CDC에서 “Kafka Connect 설정 후 Hugo엔 무슨 값?”, Kafka에서 “Protobuf 스키마 업데이트했는데 왜 데이터 레이크에 반영 안 되나?”
  • One-click MySQL CDC: Flink CDC가 binlog 직접 읽기 → 4개 컴포넌트(Kafka Connect, topic, Sprinkler, Spark)를 2개로 축소, 중간 Kafka hop 제거, 수동 Go DTO를 자동 스키마 감지로 대체
  • Self-service Kafka 인제스천: Flink가 시작 시 Confluent Schema Registry에서 Protobuf 스키마 동적 fetch(하드코딩 제거), 스키마 업데이트는 CI 통해 Registry로 전파, click-to-query(Flink 소비 → S3 → Spark compaction → Hive 테이블 자동 오케스트레이션)
  • 온보딩에 early validation guardrail(토픽 소유권/활동성, 출력 테이블명 중복, binlog 설정 등) 내장

주요 수치 / 사실

  • 온보딩 시간: 며칠 → Kafka ~6분, MySQL CDC ~3분
  • 지난 1년간 신규 온보딩 파이프라인 수가 이전 5년 총합보다 많음
  • 향후: Iceberg 테이블 포맷 채택 검토, 스키마 진화 zero-touch화(아직 Flink 수동 재시작 필요)

관련 위키


Source: 원문 보기