依存関係不要のPython製SQLパーサー、トランスパイラー、オプティマイザー、エンジン。30以上のSQL方言間でクエリを変換します。
tobilg/polyglot
sqlglotに着想を得たRust/WASM製SQLトランスパイラ。30以上の方言に対応し、SQLの解析、生成、変換、整形を行います。
- スター
- 999
- フォーク
- 76
- 未解決の Issue
- 0
- 最終コミット
- 4 日前
これは何?
Polyglotは、PostgreSQL、MySQL、BigQuery、Snowflake、DuckDB、Trino、ClickHouseなど、30以上の方言間でSQLを変換します。SQLを型付きASTに解析し、ASTノードからSQLを生成したり、クエリを整形して出力したりできるほか、構文、意味、スキーマを考慮したチェックによる検証も実行できます。
コア部分はRustで実装されており、Rustクレート、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を型付き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でデータパイプラインを構築・スケジュール・デバッグできる、セルフホスト型のノートブック風環境。