연산의 의미를 공유하는 형식
서로 다른 엔진이 같은 계획을 해석하려면 연산 이름뿐 아니라 의미도 공통으로 이해해야 한다. Substrait는 기본 연산과 사용자 정의 연산의 표현을 정하고 이를 전달하는 직렬화 형식을 제공한다.
계획 생성과 실행의 연결
SQL을 해석하는 구성 요소가 만든 계획을 다른 실행 엔진에 전달하는 데 활용할 수 있다. 각 시스템이 모든 상대 시스템을 위한 별도 연결 규약을 만들기보다 공통 형식의 생성과 수용 기능을 구현하도록 돕는다.
전송과 사람이 읽는 표현
이진 표현은 프로그램 사이의 통신에 사용하고 텍스트 표현은 내용을 읽거나 디버깅하는 데 활용한다. 여러 계획을 한 묶음으로 표현할 수 있으며 그 묶음을 어떻게 실행하거나 변환할지는 사용하는 도구가 정한다.
관련 문서
Apache DataFusion / Apache Calcite / SQL / Apache Arrow / 프로토콜 버퍼 / API