[기술 리뷰] RisingWave v2.3 릴리스 — 클라우드 스트리밍 데이터베이스의 진화

RisingWave v2.3 릴리스를 발표하게 되어 매우 기쁩니다. 이번 버전은 스트림 처리 워크플로우에 더욱 강력하고 유연한 기능을 제공합니다. Apache Iceberg 기반의 컬럼형 스토리지, 워크로드 관리를 위한 리소스 그룹, 새로운 SQL 함수 등 다양한 기능이 새롭게 추가되었습니다.
이번 릴리스의 주요 기능을 아래에서 자세히 살펴보세요. 모든 업데이트 항목은 전체 릴리스 노트에서 확인하실 수 있습니다.
Want to learn what RisingWave is all about? Read this overview: https://okky.kr/articles/1532695
Iceberg 테이블 엔진: 컬럼 기반 데이터 저장소
RisingWave는 기본 제공 행 기반 내부 스토리지 외에도, Apache Iceberg 기반의 컬럼형 스토리지 엔진을 지원합니다. Iceberg 테이블 엔진을 활용하면, RisingWave 내부에서 테이블을 네이티브로 생성하고 관리하면서 데이터를 외부 Iceberg 형식으로 저장할 수 있습니다. 이 접근 방식은 테이블 관리 기능 내장, Iceberg의 컬럼형 저장 구조, 데이터 파이프라인 간소화, 타 시스템과의 호환성 향상 등의 이점을 제공합니다.
Iceberg 테이블 엔진의 구성 및 사용법은 Iceberg 테이블 엔진 가이드를 참고하세요. Iceberg 기능 전반에 대한 이해는 Iceberg 개요를, 데이터 저장소 전반에 대한 설명은 스토리지 개요를 확인해보세요.
Iceberg 소스·싱크·테이블 엔진을 위한 S3 Tables 통합
이제 RisingWave를 Amazon S3 Tables와 직접 연결할 수 있습니다. S3 Tables는 REST API를 통해 Iceberg 카탈로그로 사용 가능하며, RisingWave의 Iceberg 소스를 구성하여 해당 테이블에서 데이터를 읽거나, Iceberg 싱크를 통해 데이터를 쓸 수 있습니다. 또는 Iceberg 테이블 엔진과 결합하여 S3 Tables를 카탈로그로 지정할 수도 있습니다. 이 통합의 가장 큰 장점 중 하나는 S3 Tables의 자동 데이터 압축 기능을 활용할 수 있다는 점으로, 유지 관리가 단순해지고 저장 효율도 높아집니다. 이는 AWS 환경 내에서 Iceberg 워크플로우를 구축하는 데 매우 강력한 선택지입니다.
구성 방법은 개요 문서와 각 기능별 문서를 참고하세요.
Elastic 디스크 캐시
S3 비용이 너무 높고, 메모리 캐시를 초과하는 데이터로 인해 지연이 발생하고 있나요? v2.3에서는 Elastic 디스크 캐시 기능이 새롭게 도입되었습니다. 이 기능은 메모리와 S3 사이에 로컬 디스크 기반 캐시 계층을 추가하여, 고비용 S3 읽기 요청을 최대 90%까지 줄일 수 있고, 대규모 상태 스트리밍 작업의 성능을 개선하며, 스케일링 및 복구 속도를 대폭 향상시킵니다.
이 기능은 프리미엄 에디션에서 제공되며, 자세한 내용은 Elastic 디스크 캐시 문서를 참조하세요.
워크로드 격리 및 상호작용
기존에는 하나의 데이터베이스에 장애가 발생할 경우, 동일 클러스터 내 다른 데이터베이스에도 영향을 줄 수 있었습니다.
RisingWave v2.3은 이러한 문제를 해결하기 위해, 워크로드 격리 및 상호작용 기능 세트를 도입하여 보다 강력하고 유연한 멀티워크로드 환경을 제공합니다:
데이터베이스 격리: 데이터베이스 간 기본적인 장애 격리 기능을 내장하여 기본적인 복원력을 확보합니다.
리소스 그룹: 각 데이터베이스를 독립된 컴퓨팅 노드 풀에 할당함으로써 장애 격리, 성능 조정, 리소스 거버넌스를 구현합니다.
Cross-database 쿼리: 서로 다른 데이터베이스의 테이블 및 머티리얼라이즈드 뷰에 대한 쿼리를 실행할 수 있어, 데이터 복제 없이 통합 분석이 가능합니다. 격리된 환경과 결합하면 더욱 강력한 유연성을 확보할 수 있습니다.
데이터베이스 격리 및 리소스 그룹은 프리미엄 에디션 기능입니다. RisingWave Cloud에서는 자동으로 활성화되며, 셀프 호스팅 환경에서는 4코어 이하의 클러스터에서 라이선스 없이 시험해볼 수 있습니다.
자세한 내용은 워크로드 격리 및 상호작용 가이드를 참조하시고, 곧 공개될 자세한 블로그 글도 기대해 주세요.
비동기 및 배치 JavaScript UDF
v2.3부터 RisingWave는 비동기 및 배치 JavaScript 사용자 정의 함수(UDF) 를 도입했습니다. 이 기능은 비동기 작업, 외부 API 호출, 다수 입력 처리(batch) 등 I/O 중심 작업에 적합합니다.
사용 방법은 CREATE FUNCTION 구문에서 WITH 절을 활용하여 async, batch 옵션을 지정하는 방식으로 정의할 수 있습니다.
자세한 설명은 비동기 및 배치 JavaScript UDF 문서를 참조하세요.
배치 쿼리를 위한 강화된 ASOF JOIN
RisingWave는 v2.1에서 스트리밍 쿼리용 ASOF JOIN을 지원한 데 이어, v2.3에서는 배치 쿼리용 ASOF JOIN 기능을 도입했습니다. 단, 배치 모드에서는 오른쪽 테이블에서 가장 가까운 값을 갖는 여러 행이 존재할 경우, 실행마다 결과가 달라질 수 있습니다.
자세한 내용은 ASOF JOIN 문서를 참조하세요.
맺음말
위에서 소개한 기능들은 v2.3의 하이라이트 중 일부입니다. 소스 및 싱크 커넥터 업데이트를 포함한 전체 목록은 릴리스 노트 전체 보기에서 확인하실 수 있습니다.
다음 달에도 새로운 기능이 지속적으로 업데이트될 예정이니 많은 관심 부탁드립니다. 최신 소식과 향후 릴리스를 살펴보시려면 RisingWave GitHub 저장소를 방문해 주세요.
RisingWave의 소식을 정기적으로 받아보고 싶다면 월간 뉴스레터를 구독하세요.
또한, Twitter, LinkedIn에서 저희를 팔로우하고, Slack 커뮤니티에 참여해 전 세계의 엔지니어 및 스트리밍 애호가들과 교류해 보세요.
