このプロジェクトについて

SQLGlotは、依存関係のないSQLパーサーを提供し、多種多様なSQL入力を読み取り、ターゲット方言で構文的・意味的に正しいSQLを生成できます。DuckDB、Presto/Trino、Spark/Databricks、Snowflake、BigQueryなどの方言間でクエリを変換するためのトランスパイラーが含まれています。このライブラリは、クエリを正規のASTに書き換えるオプティマイザー、ASTのイントロスペクション、差分、SQL式のプログラムによる構築や変更のためのユーティリティを提供します。列やテーブルなどのメタデータを抽出したり、詳細なエラーメージで構文エラーを検出したり、設定可能な警告またはエラーレベルを介してサポートされていない機能を処理したりできます。SQLGlotには、Python辞書に対してSQLを評価する軽量なエグゼキュータも含まれており、テストやプロトタイピングに役立ちます。カスタム方言はDialectクラスをサブクラス化することで追加でき、プラグイン方言はエントリポイントを介して配布できます。パフォーマンスベンチマークでは、純Pythonバージョンが競争力を持ち、mypycコンパイル版は約3〜5倍の速度向上を提供します。このプロジェクトはSQLMesh、Apache Superset、Dagster、Ibis、dltなどのツールで使用されており、広範なドキュメント、テストスイート、間隔の簡略化のためのdateutilなどのオプション依存関係を提供します。