30개 이상의 SQL dialect 간에 쿼리를 변환하는 무의존성 Python SQL 파서, transpiler, optimizer 및 엔진입니다.
tobilg/polyglot
sqlglot에서 영감을 받은 Rust/WASM SQL 트랜스파일러로, 30개가 넘는 방언의 SQL을 파싱·생성·변환·포맷합니다.
- 스타
- 999
- 포크
- 77
- 열린 이슈
- 0
- 마지막 커밋
- 4일 전
어떤 프로젝트인가요?
Polyglot은 PostgreSQL, MySQL, BigQuery, Snowflake, DuckDB, Trino, ClickHouse를 비롯한 30개 이상의 SQL 방언 간에 SQL을 변환합니다. SQL을 타입이 지정된 AST로 파싱하고, AST 노드에서 SQL을 다시 생성하며, 쿼리를 보기 좋게 출력하고, 구문·의미·스키마를 고려한 검사를 통해 유효성을 검증할 수 있습니다.
핵심은 Rust로 작성되었으며 Rust crate, Node.js와 브라우저용 TypeScript/WASM SDK, PyO3로 빌드한 Python 패키지, C FFI 라이브러리를 사용하는 Go SDK, 그리고 stdin과 stdout으로 JSON을 주고받는 이식 가능한 WASI 명령 모듈로 배포됩니다.
또한 OpenLineage 호환 페이로드를 제공하는 컬럼 계보 기능과 프로젝션, 관계, CTE, 컬럼 사용 현황을 보고하는 간결한 쿼리 분석 API도 제공합니다. 테스트 스위트는 sqlglot에서 추출한 픽스처 사례를 대상으로 실행됩니다.
핵심 기능
- 0130개가 넘는 방언의 모든 조합 간에 SQL을 변환합니다
- 02SQL을 타입이 지정된 AST로 파싱하고 AST에서 SQL을 생성합니다
- 03설정 가능한 안전 한도와 함께 SQL을 포맷하고 보기 좋게 출력합니다
- 04컬럼 계보와 OpenLineage 호환 JSON 페이로드를 제공합니다
- 05Rust, TypeScript, Python, Go, WASI용 바인딩을 제공합니다
활용 사례
- 분석 쿼리를 한 데이터 웨어하우스 방언에서 다른 방언으로 마이그레이션
- 서버 왕복 없이 브라우저 또는 Node.js 앱에서 SQL 변환
- 데이터 플랫폼에 SQL 계보 또는 쿼리 분석 기능 추가
- CI 또는 개발자 도구에서 SQL 유효성 검사 및 포맷
빠른 시작
- 1
npm으로 TypeScript SDK 설치하기
npm install @polyglot-sql/sdk - 2
TypeScript에서 MySQL SQL을 PostgreSQL로 변환하기
- 3
또는 Python 패키지 설치하기
pip install polyglot-sql
사용 전 알아둘 점
- WASI 명령 모듈은 실험적이라고 설명되어 있습니다.
- Go SDK는 런타임에 별도로 빌드한 네이티브 FFI 라이브러리가 필요합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- polyglot은(는) 무엇인가요?
- sqlglot에서 영감을 받은 Rust/WASM SQL 트랜스파일러로, 30개가 넘는 방언의 SQL을 파싱·생성·변환·포맷합니다. Polyglot은 PostgreSQL, MySQL, BigQuery, Snowflake, DuckDB, Trino, ClickHouse를 비롯한 30개 이상의 SQL 방언 간에 SQL을 변환합니다. SQL을 타입이 지정된 AST로 파싱하고, AST 노드에서 SQL을 다시 생성하며, 쿼리를 보기 좋게 출력하고, 구문·의미·스키마를 고려한 검사를 통해 유효성을 검증할 수 있습니다.
- polyglot은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- polyglot은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- polyglot은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. polyglot의 마지막 커밋은 2026년 11월 3일입니다.
- polyglot은(는) 어디에 사용할 수 있나요?
- 분석 쿼리를 한 데이터 웨어하우스 방언에서 다른 방언으로 마이그레이션 서버 왕복 없이 브라우저 또는 Node.js 앱에서 SQL 변환 데이터 플랫폼에 SQL 계보 또는 쿼리 분석 기능 추가 CI 또는 개발자 도구에서 SQL 유효성 검사 및 포맷
- polyglot는 어떻게 설치하나요?
- npm으로 TypeScript SDK 설치하기: npm install @polyglot-sql/sdk TypeScript에서 MySQL SQL을 PostgreSQL로 변환하기 또는 Python 패키지 설치하기: pip install polyglot-sql
- polyglot은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/tobilg/polyglot
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
ClickHouse 방언 SQL을 타입이 지정된 AST로 파싱하고 쿼리를 포맷하거나 보기 좋게 정리하는 Go 라이브러리 및 CLI입니다.
기존 PySpark 코드를 Spark Connect 프로토콜로 실행하는 Rust 기반 Apache Spark 대체 엔진
Scala, Java, Python, R API를 제공하는 대규모 데이터 처리를 위한 통합 분석 엔진입니다.
Python, SQL 또는 R로 데이터 파이프라인을 구축하고 예약 실행 및 디버깅할 수 있는 셀프 호스팅 노트북 스타일 환경입니다.