본문 바로가기

빅데이터

SQL로 Spark를 쉽게? Apache Kyuubi가 답입니다

728x90
반응형

대용량 데이터를 다뤄야 할 때 Spark는 강력한 도구입니다. 하지만 강력함 뒤에는 복잡함이 숨어 있습니다. 특히 여러 사용자가 동시에 접근하거나 보안, 자원 격리 같은 요소까지 고려해야 한다면, Spark의 기본 구조는 큰 장벽이 됩니다.

Apache Kyuubi는 이 복잡함을 감춰주는 솔루션입니다. SQL 인터페이스 하나만으로도 Spark의 성능을 그대로 활용할 수 있게 해주며, 멀티테넌시, 자원 분리, 서버리스 실행 환경까지 제공합니다. 이 글에서는 Apache Kyuubi의 구조, 특징, 주요 활용 시나리오를 통해 왜 지금 Kyuubi가 주목받고 있는지 설명합니다.

반응형

Apache Kyuubi란 무엇인가?

Apache Kyuubi는 서버리스 SQL 환경을 제공하는 분산형 멀티테넌트 게이트웨이입니다. Spark SQL 엔진을 기반으로 하며, JDBC/ODBC 인터페이스를 통해 사용자는 SQL만으로 대용량 데이터를 조작할 수 있습니다. Spark에 대한 기술 지식 없이도 SQL만으로 데이터 작업이 가능하다는 점에서, 데이터 분석가나 비개발자에게도 접근성을 높여줍니다.

주요 특징

  • Thrift 기반 SQL 인터페이스 (JDBC/ODBC 지원)
  • 사전 설정된 Spark SQL 엔진으로 손쉬운 사용
  • 서버리스 환경 구성 가능
  • 멀티 테넌시 구조로 사용자별 리소스 격리 및 보안 강화
  • 고가용성 및 높은 동시 접속 처리

왜 Spark Thrift Server(STS)가 아닌 Kyuubi인가?

Spark Thrift Server는 HiveServer2와의 호환성을 유지하면서 Spark SQL을 사용할 수 있게 해주지만, 근본적인 한계를 가지고 있습니다. 대표적인 문제는 다음과 같습니다.

  • 단일 사용자 기반 실행 구조: STS는 단일 Spark 애플리케이션으로 실행되며, 사용자별 자원 격리나 보안 설정이 어렵습니다.
  • 상태 유지형 구조: Spark 드라이버 JVM에 Thrift Server가 포함돼 있어 안정성과 확장성에 한계가 있습니다.
  • 고객 수용 능력 부족: 많은 사용자가 동시에 접속할 경우 시스템이 불안정해질 수 있습니다.

Kyuubi는 이러한 단점을 해결합니다. 서버와 엔진을 느슨하게 결합한 구조 덕분에 고가용성과 높은 클라이언트 동시 접속을 지원하며, YARN이나 Kubernetes 같은 클러스터 매니저를 통해 자원 격리 및 사용자 접근 제어도 가능합니다.


멀티테넌시와 서버리스 SQL의 실제 효과

Kyuubi는 여러 사용자가 동시에 접속하더라도 각자의 Spark SQL 세션이 독립적으로 실행되도록 설계되어 있습니다. 관리자는 사용자별로 컴퓨팅 자원을 분리하고, HDFS나 YARN의 접근 권한도 세부적으로 설정할 수 있습니다. 이를 통해 보안, 자원 관리, 성능 면에서 더 유연하고 안정적인 운영이 가능합니다.

사용자 입장에서는 Kyuubi를 통해 마치 데이터베이스처럼 SQL만 작성하면 Spark 엔진이 자동으로 실행됩니다. Spark 클러스터에 직접 접속하거나 환경을 설정할 필요 없이, 서버리스 환경처럼 사용 가능한 것이 가장 큰 장점입니다.


주요 사용 시나리오

1. HiveServer2에서 Spark SQL로의 전환

기존 Hive 기반 환경에서 Spark SQL로 전환하고자 할 때 Kyuubi는 매우 유용합니다. HiveServer2와 유사한 인터페이스를 제공하며, Spark의 고성능 SQL 처리 능력을 그대로 사용할 수 있습니다. 사용자 권한 관리도 그대로 연동할 수 있어 마이그레이션이 수월합니다.

2. BI 도구 연동

Kyuubi는 Apache Superset 같은 시각화 도구와도 쉽게 연동됩니다. 사용자는 SQL조차 작성하지 않고도 대시보드를 통해 데이터를 분석할 수 있습니다. Kyuubi가 중간에서 SQL을 Spark SQL로 실행해주기 때문에, 복잡한 Spark 설정은 필요 없습니다.


Data Lakehouse 지원

Kyuubi는 단일 SQL 인터페이스로 다양한 작업을 처리할 수 있는 데이터 레이크하우스 비전을 지향합니다. ETL, 분석, 대시보드 작업 등을 모두 하나의 데이터 사본과 인터페이스로 수행할 수 있습니다.

지원 기능

  • 다양한 카탈로그 지원
  • 논리 뷰 기능 (Kyuubi DataLake Metadata API)
  • SQL 표준 권한 부여 기능 (개발 예정)

클라우드 네이티브 아키텍처

Kyuubi는 다양한 클러스터 매니저에 배포 가능합니다. Hadoop YARN, Kubernetes 등 기존 인프라에 유연하게 통합되며, 클라우드 환경에서도 쉽게 확장성과 안정성을 확보할 수 있습니다.


Kyuubi 간단 사용 흐름 예시

  1. 시스템 관리자가 YARN 또는 Kubernetes에 Kyuubi 서버 및 엔진 구성
  2. 사용자는 JDBC 툴이나 BI 도구를 통해 SQL 요청 전송
  3. Kyuubi 서버가 사용자 요청을 받아 Spark SQL 엔진을 자동 생성
  4. 결과를 JDBC/ODBC를 통해 사용자에게 반환

사용자는 복잡한 클러스터 세팅이나 리소스 요청 과정을 몰라도 됩니다. SQL만으로 Spark의 성능을 사용할 수 있습니다.


728x90

왜 Kyuubi를 주목해야 하는가

Apache Kyuubi는 Spark의 장점을 그대로 가져오면서도, 복잡함은 감춰주는 고급 솔루션입니다. 특히 다수의 사용자가 데이터를 분석하거나, Hive 기반 시스템을 현대화하려는 기업에 있어 매우 유용합니다.

멀티유저 환경에서의 리소스 격리, 서버리스 구조, BI 연동까지 고려한다면, Kyuubi는 단순한 SQL 게이트웨이를 넘어 진정한 데이터 분석 플랫폼으로 발전할 수 있는 가능성을 갖고 있습니다.

앞으로 SQL 다이얼렉트, 오토 튜닝, 물리 뷰 같은 고급 기능까지 추가될 예정이므로, 지금 Kyuubi를 도입하면 더 큰 가치를 기대할 수 있습니다.

https://github.com/apache/kyuubi

 

GitHub - apache/kyuubi: Apache Kyuubi is a distributed and multi-tenant gateway to provide serverless SQL on data warehouses and

Apache Kyuubi is a distributed and multi-tenant gateway to provide serverless SQL on data warehouses and lakehouses. - apache/kyuubi

github.com

728x90
반응형