Substrait: 오픈소스 데이터 처리 교환 표준
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Substrait - 데이터 처리 연산에 대한 크로스 플랫폼 교환 표준

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

데이터 분석

대상자

데이터 분석, 데이터베이스 개발, 분산 처리 엔지니어, 하드웨어 가속기 개발자 등

핵심 요약

  • Substrait쿼리 계획(Logical/Physical Plan)표준화된 포맷으로 정의해, 다양한 엔진 간 호환성을 확보함
  • 프로토콜 버퍼(.proto) 기반 직렬화로, 다양한 언어 및 하드웨어와의 연동이 가능함
  • 쿼리 실행 계획 레벨에서 엔진 간 연결 가능, 엔진 교체 및 확장이 유연

섹션별 세부 요약

1. Substrait의 목적 및 기능

  • 다양한 데이터베이스 및 분석 엔진 간 쿼리/실행 계획의 표준화를 목표로 함
  • SQL, DataFrame, Pandas 등 다양한 쿼리 언어의 실행 계획을 중립적 포맷으로 표현
  • 하드웨어 가속기(GPU, FPGA 등)와의 연동을 단순화
  • 엔진 간 통합을 위해 커스텀 인터페이스 없이 Substrait만 지원 가능

2. Substrait의 주요 기능 및 구성 요소

  • LogicalPlan, PhysicalPlan, Rel, Expression, Function 등으로 구성
  • Filter, Join, Aggregate, Project, Sort 등 연산자별 명확한 스키마 정의
  • UDF(User-Defined Function)확장 가능한 함수/타입 카탈로그 지원

3. Substrait의 적용 사례 및 연동 예시

  • DuckDB는 Substrait로 쿼리 플랜을 내보내기 및 불러오기 가능
  • Sirius는 Substrait 쿼리 플랜을 그대로 받아 GPU 상에서 SQL 실행 가능
  • Velox, Spark, DataFusion 등은 Substrait로 쿼리 플랜을 내보내 다양한 분석 엔진과 통합 가능

4. Substrait의 기술적 장점

  • 프로토콜 버퍼 기반 직렬화다양한 언어 및 시스템 간 효율적 데이터 교환 가능
  • 엔진/플러그인 확장성 지원, 새로운 함수, 연산자, 타입 추가 가능
  • 하드웨어 가속기 연동쿼리 계획 레벨에서 간단하게 수행 가능

결론

  • Substrait는 데이터 처리 시스템 간의 호환성, 하드웨어 가속, 확장성을 높이는 핵심 표준으로, 쿼리 실행 계획 레벨에서의 통합을 통해 고성능 분석 인프라 구축을 단순화