위키득계정 ↗
기술

Substrait

Substrait기술
주요 대상
자료 처리 연산과 질의 계획
설계 목적
언어와 시스템 간 상호 운용
전달 표현
이진 직렬화
확인용 표현
텍스트 직렬화
Substrait는 구조화된 자료에 수행할 연산을 여러 언어와 시스템에서 주고받기 위한 공통 표현 형식이다. 질의 계획에 들어가는 연산의 의미와 직렬화 방식을 정해 계획 생성기와 실행 엔진의 연결을 돕는다.

연산의 의미를 공유하는 형식

서로 다른 엔진이 같은 계획을 해석하려면 연산 이름뿐 아니라 의미도 공통으로 이해해야 한다. Substrait는 기본 연산과 사용자 정의 연산의 표현을 정하고 이를 전달하는 직렬화 형식을 제공한다.

계획 생성과 실행의 연결

SQL을 해석하는 구성 요소가 만든 계획을 다른 실행 엔진에 전달하는 데 활용할 수 있다. 각 시스템이 모든 상대 시스템을 위한 별도 연결 규약을 만들기보다 공통 형식의 생성과 수용 기능을 구현하도록 돕는다.

전송과 사람이 읽는 표현

이진 표현은 프로그램 사이의 통신에 사용하고 텍스트 표현은 내용을 읽거나 디버깅하는 데 활용한다. 여러 계획을 한 묶음으로 표현할 수 있으며 그 묶음을 어떻게 실행하거나 변환할지는 사용하는 도구가 정한다.

관련 문서

Apache DataFusion / Apache Calcite / SQL / Apache Arrow / 프로토콜 버퍼 / API