빅데이터

Kafka 메시지를 Iceberg 테이블로 실시간 변환하는 방법: AutoMQ의 Table Topic 혁신

파파누보 2025. 6. 22. 23:53
728x90
반응형

Kafka는 실시간 데이터 스트리밍의 대표 주자로, 마이크로서비스 간의 데이터 공유와 대규모 로그 수집 등 다양한 분야에서 사용되어 왔습니다. 하지만, Kafka에서 분석 가능한 형태의 데이터 저장소로 데이터를 옮기기 위해서는 복잡한 ETL 파이프라인이 필요하고, 운영 부담 또한 상당했습니다.

이 글에서는 Kafka의 발전 과정을 살펴보고, 복잡한 ETL 없이 Kafka 메시지를 Apache Iceberg 테이블로 실시간 변환할 수 있는 AutoMQ의 새로운 접근 방식인 'Table Topic' 기능을 소개합니다. 기존 방식의 문제점과 AutoMQ가 해결한 방식, 그리고 실사용 예시까지 함께 알아봅니다.

반응형

Kafka는 왜 여전히 중요한가?

Kafka는 원래 LinkedIn에서 대규모 로그 데이터를 처리하기 위해 설계된 분산 메시징 시스템입니다. 고속의 쓰기/읽기 성능, 높은 확장성, 안정적인 복제 기능을 바탕으로 많은 기업들이 운영 데이터 스트리밍에 Kafka를 사용하고 있습니다.

Kafka는 기본적으로 디스크 기반으로 작동하며, 데이터를 파티션 단위로 저장하고 복제합니다. 하지만 이러한 설계는 컴퓨팅과 스토리지가 밀접하게 결합되어 있어 클라우드 환경에서의 확장성에 제약이 있습니다. 특히, 분석용 데이터 저장소로 Kafka 데이터를 옮기기 위해서는 별도의 ETL 작업이 필수적입니다.


데이터 레이크하우스와 Iceberg의 부상

기존의 데이터 웨어하우스가 제공하는 ACID 트랜잭션, 스키마 관리 기능과, 데이터 레이크가 제공하는 대용량 저장의 장점을 결합한 ‘레이크하우스(Lakehouse)’ 개념이 주목받고 있습니다. 이 흐름에서 Iceberg는 ACID 보장, 타임 트래블, 스키마 진화, 쿼리 최적화 기능을 제공하며 대표적인 테이블 포맷으로 자리 잡았습니다.

Google, Amazon, Databricks, Snowflake 등 주요 클라우드 및 분석 플랫폼에서 Iceberg를 기본 지원하고 있을 정도로 그 영향력이 커지고 있습니다.


Kafka에서 Iceberg로: 기존 방식의 문제점

Kafka에서 Iceberg로 데이터를 옮기려면 보통 Kafka Connect, Spark, Flink 등을 활용한 복잡한 ETL 파이프라인을 구성해야 합니다. 이 과정에서 발생하는 문제는 다음과 같습니다.

  • 파이프라인 유지 및 모니터링 부담
  • 스키마 변화에 따른 코드 수정
  • 데이터 품질 이슈 관리
  • 리소스 사용 증가
  • 테이블 레이아웃 최적화 필요

결과적으로 Kafka 데이터를 분석 목적에 맞게 저장하고 활용하는 데 있어 높은 기술적, 운영적 허들이 존재했습니다.


AutoMQ가 제안하는 새로운 접근 방식: Table Topic

AutoMQ는 Kafka의 프로토콜을 유지하면서 스토리지 계층을 오브젝트 스토리지로 재설계한 시스템입니다. 이들은 Kafka의 메시지를 Iceberg 테이블로 자동 변환해주는 기능인 Table Topic을 도입하면서 '제로 ETL'이라는 새로운 흐름을 제시했습니다.

Table Topic 기능은 Kafka 프로듀서가 데이터를 기존처럼 전송하면, AutoMQ 브로커가 해당 데이터를 Kafka 토픽에 기록한 후 자동으로 Iceberg 테이블로 변환하여 저장합니다. 사용자는 Kafka API만으로 분석 가능한 Iceberg 테이블을 얻게 되는 것입니다.


Table Topic의 주요 기능

자동 Iceberg 변환

설정 하나만으로 Kafka 메시지가 Iceberg 테이블로 자동 변환됩니다.

이후 Kafka 프로듀서가 메시지를 전송하면 AutoMQ가 자동으로 이를 배치 처리하여 Iceberg 테이블로 변환하고, 쿼리 엔진이 바로 접근할 수 있게 합니다.

스키마 관리 자동화

Kafka의 스키마 레지스트리를 활용해 데이터 품질을 보장하고, 스키마 변경도 자동으로 관리됩니다. Iceberg는 스키마 진화를 자연스럽게 지원하므로, 컬럼 추가나 삭제 등도 무중단으로 처리할 수 있습니다.

Iceberg 파티셔닝

분석 성능을 높이기 위해 Iceberg 테이블에 파티셔닝 전략을 설정할 수 있습니다.
이를 통해 쿼리 범위를 줄이고, 성능을 최적화할 수 있습니다.

효율적인 Upsert

Kafka 메시지에 키를 지정하면, Iceberg 테이블에서 삽입, 삭제, 수정 작업을 수행할 수 있습니다. Iceberg는 변경 내용을 델타 파일로 저장하기 때문에 성능 손실 없이 실시간 데이터 갱신이 가능합니다.

관리 오버헤드 제거

AutoMQ는 내부적으로 Coordinator와 Worker 컴포넌트를 통해 Iceberg 변환 및 커밋 작업을 처리합니다. 사용자 입장에서는 Spark, Flink, Kafka Connect 등을 별도로 운영할 필요 없이 Kafka API만 활용하면 됩니다.


비용 효율성과 클라우드 친화성

AutoMQ는 Iceberg 변환 작업이 같은 가용 영역(AZ) 내에서 처리되도록 설계되어, 교차 AZ 데이터 전송 비용을 줄입니다. 또한 Kafka 토픽과 Iceberg 테이블을 동일한 저장소에서 관리할 수 있어 리소스 이중화 없이 효율적으로 운영이 가능합니다.

기존에는 Kafka용 저장소와 레이크하우스용 저장소를 따로 관리해야 했지만, AutoMQ를 활용하면 하나의 저장소에서 실시간 데이터 소비와 분석을 모두 처리할 수 있습니다.


728x90

Kafka는 여전히 실시간 데이터 처리의 표준이지만, 분석 시스템과의 연동에는 많은 비용과 노력이 들어갔습니다. AutoMQ의 Table Topic 기능은 이 문제를 혁신적으로 해결합니다. 별도의 ETL 파이프라인 없이 Kafka 메시지를 바로 Iceberg 테이블로 변환하고, 이를 통해 실시간 데이터 소비와 분석을 동시에 만족할 수 있게 된 것입니다.

데이터 엔지니어 입장에서는 복잡한 파이프라인을 줄이고, 스키마 관리 부담도 덜 수 있으며, 비용 효율적인 클라우드 운영이 가능합니다.

Kafka의 새로운 진화 단계, 그리고 레이크하우스 시대의 중심에서 AutoMQ는 매우 주목할 만한 해법을 제시하고 있습니다.

이제 Kafka 메시지를 Iceberg로 보내는 것이 더 이상 복잡한 작업이 아닙니다. Table Topic 설정 하나로, 데이터 흐름의 모든 단계를 자동화해보세요.

https://vutr.substack.com/p/stream-kafka-topic-to-the-iceberg?fbclid=IwY2xjawLE8edleHRuA2FlbQIxMQBicmlkETFuQzUweDlmYTR0c3M2U3F1AR4y8XkDO6CFDxJY5mQzfnW6WIg4K2WuH0LEb16U_62VyFcp-gTNYfgh2gUBQw_aem_aRPZfMsjCJJN2-G1gfqJvw

 

Stream Kafka Topic to the Iceberg Tables with Zero-ETL

A solution from AutoMQ: open-sourced + no need for ETL pipeline maintenance

vutr.substack.com

 

728x90
반응형