Kafka에서 Timeplus Proton으로 스트리밍 데이터 처리하기
2024년 4월, Timeplus의 공동 창립자인 Jove Zhong은 Seattle Unstructured Data Meetup 무대에 올라 "Timeplus Proton으로 Kafka의 스트리밍 데이터 처리하기"라는 주제로 발표했습니다. 데이터 스트리밍과 실시간 처리 전문가인 Jove는 Timeplus가 Kafka와 통합되어 실시간 데이터를 처리하는 방법에 대한 포괄적인 개요를 제공하는 동시에 흥미롭고 교육적인 라이브 데모도 선보였습니다. 이 통찰력 있는 세션의 핵심 요점과 인사이트를 살펴보겠습니다.
Jove Zhong 발표의 YouTube 다시보기 링크: YouTube에서 발표 보기
Timeplus와 그 실시간 기능
Jove Zhong은 소프트웨어 엔지니어링의 거장입니다. 믿기지 않는다면 그의 이력을 확인해 보세요. Timeplus의 공동 창립자이자 제품 총괄, 전 Splunk 엔지니어링 디렉터, 17개의 특허 보유자, 4개의 AWS 자격증 보유자입니다. 아, 그리고 그는 2010년부터 “세계적 수준의 아빠”이기도 합니다. Jove는 아버지 역할과 비즈니스 리더십 사이의 흥미로운 유사점을 이끌어내며, 아이를 키우는 일과 회사를 운영하는 일이 생각보다 더 많은 공통점을 지닌다는 것을 보여줍니다.
그럼 이제 Jove의 “Timeplus Proton으로 Kafka의 스트리밍 데이터 처리하기” 발표를 자세히 살펴보겠습니다.
캘리포니아주 산타클라라에 본사를 둔 Timeplus는 혁신적인 스트리밍 SQL 데이터베이스와 실시간 분석 플랫폼을 통해 실시간 데이터 처리를 혁신하고 있습니다. 유수의 벤처 캐피털리스트와 기술 전문가들의 지원을 받는 Timeplus는 오픈 소스 버전과 상용 버전을 모두 제공하여 라이브 데이터 스트림의 효율적인 관리와 처리를 가능하게 합니다. 주요 기능으로는 동적 대시보드와 SQL 기반 처리가 있으며, 이를 통해 실시간 데이터 조작을 접근하기 쉽고 사용자 친화적으로 만듭니다.
Timeplus의 핵심 엔진인 Timeplus Proton은 ksqlDB 및 Apache Flink와 같은 플랫폼의 강력한 대안 역할을 합니다. 가볍고 C++로 작성되었으며 성능에 최적화되어 있습니다. 스트리밍 ETL, 윈도잉 함수, 높은 카디널리티 집계와 같은 기능을 통해 Proton은 개발자가 스트리밍 데이터 처리 과제를 효율적으로 해결할 수 있도록 합니다. 이 플랫폼은 Apache Kafka, Confluent Cloud, Redpanda를 포함한 다양한 데이터 소스를 지원하며, 실시간 인사이트와 알림을 제공합니다.
FinTech, AI, 머신 러닝, 또는 관측 가능성 등 어떤 분야에서든 Timeplus는 데이터 팀이 스트리밍 및 과거 데이터를 빠르고 직관적으로 처리할 수 있도록 돕는 엔드투엔드 기능을 제공합니다. 모든 규모와 산업의 조직을 위해 설계된 단순하면서도 강력하고 비용 효율적인 솔루션입니다.
라이브 데모: 실시간 Bitcoin 가격 모니터링
시작에 앞서 Jove는 라이브 Bitcoin 가격 피드를 선보이며 Timeplus의 실시간 기능을 시연했습니다. 이 데모는 단순히 기술적 역량을 보여주는 것에 그치지 않고, Timeplus가 Google과 같은 기존 소스보다 더 빠르게 데이터를 처리하고 표시할 수 있음을 보여주는 사례이기도 했습니다. Jove가 실시간 피드를 Google의 피드와 비교하며 Timeplus의 뛰어난 성능을 강조하자 청중은 큰 흥미를 보였습니다.
Kafka: 실시간 데이터 스트리밍의 중추
Jove는 Kafka에 대해 깊이 있게 설명하며 그 아키텍처와 기능을 소개했습니다. Kafka는 다양한 데이터 유형을 처리하고 분산 컴퓨팅 환경을 관리하기 위한 강력한 오픈 소스 이벤트 스트리밍 플랫폼입니다. Java와 Scala로 작성된 Kafka는 높은 처리량과 낮은 지연 시간으로 실시간 데이터 피드를 처리하도록 설계되었습니다. Goldman Sachs, Target, Cisco와 같은 업계 거대 기업을 포함해 Fortune 100 기업의 80% 이상이 신뢰하는 Kafka는 안정성과 성능으로 잘 알려져 있습니다.
Kafka 아키텍처 이해하기
Kafka는 초당 수백만 건의 이벤트를 처리할 수 있는 분산 데이터 스트리밍 플랫폼으로 작동합니다. 다음 다이어그램을 통해 Kafka의 아키텍처를 시각화함으로써, Jove는 높은 처리량과 낮은 지연 시간으로 실시간 데이터 피드를 처리할 수 있는 플랫폼의 능력을 보여주었으며, 이를 현대적인 데이터 스트리밍 요구에 강력한 도구로 만들었습니다. 이 다이어그램은 생산자, 소비자, 브로커가 어떻게 함께 작동하여 데이터가 효율적으로 처리되고 전달되도록 하는지에 대한 아키텍처를 설명합니다. 그는 또한 장애 허용성과 확장성을 제공하는 Kafka의 복제 및 파티셔닝 전략에 대해서도 논의했습니다.
Kafka는 고성능 TCP 네트워크 프로토콜을 통해 통신하는 서버와 클라이언트로 구성된 분산 시스템으로 작동합니다. 온프레미스 및 클라우드 환경 모두에서 베어메탈 하드웨어, 가상 머신, 컨테이너에 배포할 수 있습니다.
다이어그램에 설명된 Kafka의 아키텍처는 여러 핵심 구성 요소로 이루어져 있습니다:
클라이언트와 브로커: Kafka는 클라이언트와 브로커로 구성된 분산 시스템으로 작동합니다. 클라이언트는 메시지를 생성하고 소비하는 애플리케이션입니다. 브로커는 이러한 메시지를 저장하고 전달하는 서버입니다. 다이어그램은 클라이언트가 브로커에 연결하는 방식을 보여주며, 이 브로커는 클러스터의 다른 브로커로 데이터를 라우팅하는 부트스트랩 서버 역할을 합니다.
생산자와 소비자: 생산자는 Kafka 토픽으로 데이터를 보내는 역할을 하며, 소비자는 이러한 토픽에서 데이터를 읽습니다. 다이어그램은 생산자가 여러 브로커에 걸쳐 서로 다른 토픽(Topic A, Topic B, Topic C)으로 메시지를 보내는 방식을 나타냅니다. 그런 다음 소비자는 이러한 토픽에서 읽어 데이터가 효율적으로 처리되고 전달되도록 합니다.
토픽과 파티션: Kafka 토픽은 파티션으로 나뉘며, 이를 통해 데이터를 병렬로 처리할 수 있습니다. 각 파티션은 장애 허용성을 보장하기 위해 여러 브로커에 복제됩니다. 다이어그램은 세 개의 파티션이 있는 토픽이 서로 다른 소비자에 의해 소비되는 모습을 보여주며, Kafka가 어떻게 부하를 분산하고 높은 가용성을 유지하는지 보여줍니다.
확장성과 장애 허용성: Kafka 클러스터는 확장성이 매우 뛰어나며 여러 데이터 센터 또는 클라우드 리전에 걸쳐 구성될 수 있습니다. 이 아키텍처는 탄력적인 확장과 축소를 지원하여 데이터 손실 없이 지속적인 운영을 보장합니다. 브로커에 장애가 발생하면 시스템은 데이터를 다른 브로커로 다시 라우팅하여 복구할 수 있습니다.
스트리밍 LLM과 벡터 데이터베이스
강연의 상당 부분은 데이터 스트리밍이 대규모 언어 모델(LLM) 및 벡터 데이터베이스와 어떻게 통합되는지를 탐구하는 데 할애되었습니다. Jove는 이러한 통합이 AI 애플리케이션을 향상시켜 데이터 처리를 더 효율적이고 정확하게 만들 수 있는 잠재력을 강조했습니다. 스트리밍 데이터와 AI 모델의 융합은 다양한 애플리케이션의 응답성과 지능을 크게 향상시킬 수 있습니다.
최근 Zilliz Cloud와 Confluent Cloud for Apache Flink®는 이 개념을 더욱 잘 보여주는 파트너십을 발표했습니다. 이를 활용하면 Kafka와 Flink를 사용하여 실시간 GenAI 앱을 구축할 수 있으며, 기업은 Milvus와 같은 벡터 데이터베이스로 공급되는 실시간 데이터 파이프라인을 만들 수 있습니다. 이 구성은 실시간 시맨틱 검색 및 검색 증강 생성(RAG)과 같은 고급 AI 애플리케이션 개발을 가능하게 합니다. 실시간 데이터 처리를 통해 LLM은 최신 정보에 접근할 수 있어, 엔터프라이즈 검색부터 전자상거래의 개인화 추천에 이르는 애플리케이션에서 정확하고 시기적절한 응답을 보장합니다.
실무 애플리케이션: AI 기반 챗봇
Jove가 논의한 실용적인 애플리케이션 중 하나는 AI 기반 챗봇에서 실시간 데이터를 활용하는 것이었습니다. 실시간 데이터 스트림을 활용함으로써 이러한 챗봇은 항공편 상태 업데이트와 같은 최신 정보를 제공할 수 있습니다. 예를 들어, 챗봇은 사용자에게 항공편 지연을 즉시 알리고 대체 항공편을 제안할 수 있어, 실시간 데이터 처리의 실질적인 이점을 보여줍니다.
Jove는 항공편 상태 봇과 채팅하고 있다고 상상하는 예를 들었습니다:
User: "뉴욕행 내 항공편 상태가 어떻게 되나요?"
Chatbot: "귀하의 항공편은 2시간 지연되었습니다."
User: "더 빨리 도착할 수 있는 다른 항공편을 찾을 수 있나요?"
Chatbot: "네, 남은 좌석이 하나 있는 대체 항공편이 있습니다. 비용은 $1500이지만, 정시에 도착하실 수 있습니다."
User: "좋아요, 예약해 주세요."
이 시나리오에서 챗봇은 Kafka의 실시간 데이터 스트림을 활용하여 최신 항공편 정보를 제공합니다. 사용자에게 지연에 대해 알릴 뿐만 아니라 이용 가능한 항공편, 좌석, 가격을 실시간으로 확인합니다. 그런 다음 챗봇은 이 정보를 사용자에게 제시하여 빠르고 정보에 기반한 결정을 가능하게 합니다. 이 예시는 Kafka의 실시간 데이터 처리 기능이 AI 기반 챗봇의 기능성과 응답성을 어떻게 향상시키는지 보여주며, 즉각적이고 정확한 정보를 찾는 사용자에게 가치 있는 도구가 되게 합니다.
Timeplus와 벡터 데이터베이스 통합
Jove의 데모는 Timeplus와 벡터 데이터베이스, 즉 Milvus의 인상적인 통합으로 이어졌으며, Hacker News의 데이터가 실시간으로 처리되고 쿼리되는 방식을 선보였습니다. 이 프로세스는 아래 다이어그램에 설명되어 있습니다. 워크플로는 Hacker News API에서 데이터를 가져오는 것으로 시작하고, 이어서 Bytewax를 사용해 HTML을 텍스트로 변환합니다. 그런 다음 텍스트는 Hugging Face로 임베딩되고, Timeplus의 SQL 기능을 사용해 스트리밍됩니다. 데이터는 Milvus sink connector를 통해 Kafka에 연결되어 Milvus 벡터 데이터베이스에서 실시간 쿼리와 처리를 가능하게 합니다.
그는 이 통합의 강력함을 설명하기 위해 구체적인 예를 단계별로 보여주었습니다.
Hacker News 데이터로 작업하고 있다고 상상해 보세요. Hacker News에서 최신 데이터를 가져와 봅시다. Timeplus를 사용하면 이 데이터를 실시간으로 스트리밍할 수 있습니다. Jove가 명령을 입력하자 몇 초 안에 Hacker News 게시물 스트림이 나타납니다. 이제 'dogfooding'을 언급하는 모든 게시물을 찾고 싶다고 해봅시다. 이 비정형 데이터 전반에 걸쳐 복잡한 쿼리를 실행할 수 있습니다. 그가 쿼리를 입력하자 거의 즉시 시스템이 관련 게시물 목록을 반환합니다.
하지만 여기서 멈추지 않습니다. 이 게시물들의 감성 분석을 살펴봅시다. 또 다른 명령을 통해 데이터가 처리되고 감성 분석이 표시되어 어떤 게시물이 긍정적인지, 부정적인지, 중립적인지를 보여줍니다.
이것이 Timeplus를 벡터 데이터베이스와 통합하는 힘입니다. 방대한 양의 비정형 데이터를 처리하고, 복잡한 쿼리를 실행하며, 실시간으로 가치 있는 인사이트를 추출할 수 있습니다."
Timeplus 외에도 Milvus는 Confluent Kafka Connector를 사용한 Kafka와의 통합도 제공하여 Milvus 또는 Zilliz Cloud로 실시간 벡터 데이터 스트리밍을 가능하게 합니다. 이 설정은 실시간 시맨틱 검색과 유사도 검색을 가능하게 하여 스트리밍 데이터에서 즉각적인 인사이트를 도출하는 능력을 향상시킵니다.
빠른 이해를 돕기 위해, 다음 표는 이 글에서 논의된 몇 가지 중요한 제품과 그 설명 및 사용 사례를 나열합니다.
| 제품 | 설명 | 사용 사례 |
| Timeplus | 강력한 스트리밍 SQL 기능을 갖춘 실시간 분석 플랫폼. | 실시간 데이터 처리 및 분석. |
| Timeplus Proton | Timeplus의 핵심 엔진은 가볍고, C++로 작성되었으며, 성능에 최적화되어 있습니다. | 스트리밍 ETL, 윈도잉 함수, 고카디널리티 집계. |
| Kafka | 높은 처리량과 낮은 지연 시간의 데이터 피드를 처리하는 분산 이벤트 스트리밍 플랫폼. | 데이터 파이프라인, 스트리밍 분석, 데이터 통합. |
| Confluent Kafka Connector | Kafka를 Milvus 및 Zilliz Cloud와 통합하여 실시간 벡터 데이터 스트리밍을 가능하게 하는 도구. | 벡터 데이터베이스로의 실시간 데이터 스트리밍. |
| Apache Flink | Confluent Cloud의 Kafka와 통합된 통합 스트림 및 배치 처리 프레임워크. | 고성능 스트림 처리. |
결론
Seattle Unstructured Data Meetup에서 열린 Jove Zhong의 발표는 실시간 데이터 처리의 마스터클래스였습니다. 실용적인 데모부터 고급 개념에 대한 심층 탐구까지, Jove는 Timeplus와 Kafka가 데이터 분석의 미래를 어떻게 형성하고 있는지에 대한 포괄적인 개요를 제공했습니다. 발표는 스트리밍 SQL과 실시간 처리의 미래를 살펴보며 마무리되었습니다. Jove는 더 스마트하고 반응성이 뛰어난 AI 시스템을 구축하는 데 있어 이러한 기술의 중요성이 커지고 있음을 강조했습니다. 실시간으로 데이터를 처리하고 즉각적인 결정을 내리는 능력은 금융부터 의료에 이르기까지 많은 산업에서 점점 더 중요해지고 있습니다.
이러한 기술을 더 자세히 탐구하는 데 관심이 있는 분들을 위해, 발표 전체 다시보기와 프레젠테이션 슬라이드가 제공됩니다.
계속 읽기

Vector Databases vs. Object-Relational Databases
Use a vector database for AI-powered similarity search; use an object-relational database for complex data modeling with both relational integrity and object-oriented features.

How to Use Anthropic MCP Server with Milvus
MCP + Milvus: Streamline AI agent development with standardized data access, eliminating integration hassles while enhancing context and flexibility.

DeepSeek-VL2: Mixture-of-Experts Vision-Language Models for Advanced Multimodal Understanding
Explore DeepSeek-VL2, the open-source MoE vision-language model. Discover its architecture, efficient training pipeline, and top-tier performance.



