StreamFusion, Flink SQL 일부를 Rust·DataFusion으로 실행하는 오픈소스 가속기
GeekNews에 소개된 StreamFusion은 Flink SQL을 네이티브 엔진으로 가속하려는 오픈소스 프로젝트입니다. 프로젝트는 Apache Flink가 SQL을 계획하고 작업을 조율하는 기존 구조를 유지하면서, 지원 가능한 연산 부분을 Rust·Apache Arrow·DataFusion 기반의 네이티브 실행기로 처리하도록 설계됐습니다.
핵심 사실
GeekNews에 소개된 StreamFusion은 Flink SQL을 네이티브 엔진으로 가속하려는 오픈소스 프로젝트입니다. GeekNews 소개 목록 프로젝트는 Apache Flink가 SQL을 계획하고 작업을 조율하는 기존 구조를 유지하면서, 지원 가능한 연산 부분을 Rust·Apache Arrow·DataFusion 기반의 네이티브 실행기로 처리하도록 설계됐습니다. Java Native Interface(JNI) 연결을 이용해 Flink와 네이티브 실행기 사이를 잇고, 지원하지 않는 연산이 포함되면 기존 Flink 경로로 되돌리는 보수적인 호환 정책을 설명합니다. 프로젝트 README
공개 문서는 필터·프로젝션, 윈도 집계, 일부 조인, 스트리밍 순위·중복 제거와 Kafka·Parquet·Paimon 등 여러 데이터 형식을 다룰 수 있다고 설명합니다. 다만 모든 Flink 쿼리가 가속되는 것은 아닙니다. README는 지원되지 않는 연산자가 내부 파이프라인에 하나만 포함돼도 전체 쿼리가 Flink로 돌아갈 수 있으며, PyFlink UDF와 MATCH_RECOGNIZE 등 여러 기능이 가속 대상 밖에 있다고 명시합니다. 프로젝트 라이선스는 Apache-2.0이며 Apache Flink나 Apache DataFusion의 공식 프로젝트가 아니라고 명시합니다.
배경
Flink는 실시간 데이터 집계에 널리 사용되지만 Java 객체·행 단위 처리와 여러 실행 경계에서 CPU 비용이 발생할 수 있습니다. Arrow의 열 지향 데이터 형식과 Rust 실행 엔진을 활용하면 지원되는 계산을 더 적은 변환으로 처리할 가능성이 있습니다. 다만 실제 효율은 SQL 형태, Kafka 네트워크, 체크포인트 주기, 상태 저장 방식에 따라 크게 달라집니다.
의미
기존 Flink SQL 사용자가 전체 파이프라인을 다른 제품으로 다시 작성하지 않고 일부 실행 성능을 개선할 수 있다는 시도입니다. 개발팀의 Nexmark 벤치마크는 Apple M1 Max에서 병렬도 4, Kafka 입력 200만 이벤트와 1초 체크포인트 설정으로 측정됐습니다. 일부 쿼리에서 높은 처리량 개선을 보고하지만 이 수치는 자체 실험이며 운영 환경 전체의 보편적인 속도 향상으로 받아들일 수 없습니다.
프로젝트는 지연되거나 순서가 바뀐 이벤트와 일부 선택적 실험 표현식에서 기존 실행과 동작 차이가 생길 수 있다고 안내합니다.