Repolode
tobilg

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. 1

    npmでTypeScript SDKをインストールする

    npm install @polyglot-sql/sdk
  2. 2

    TypeScriptでMySQL SQLをPostgreSQLに変換する

  3. 3

    またはPythonパッケージをインストールする

    pip install polyglot-sql

使う前に知っておきたいこと

  • WASIコマンドモジュールは実験的と説明されています。
  • Go SDKの実行時には、別途ビルドしたネイティブFFIライブラリが必要です。

収録されている特集

トピック

#sql#transpiler#rust#wasm#sql-parser#data-engineering#dialect-conversion#sqlglot

よくある質問

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 の数値は毎日更新されます。

関連プロジェクト