Repolode
AfterShip

AfterShip/clickhouse-sql-parser

ClickHouse方言のSQLを型付きASTに解析し、クエリの整形やフォーマットを行うGoライブラリ兼CLIです。

スター
255
フォーク
62
未解決の Issue
1
最終コミット
3 日前

これは何?

clickhouse-sql-parserは、ClickHouse SQL文をGoの型付き抽象構文木(AST)に変換します。ライブラリとしてインポートすることも、ASTの出力、1行にまとめた形式での出力、インデントや改行を使ったクエリの整形を行うCLIとして実行することもできます。

ライブラリはParseStmtsを備えたパーサー、ASTノードをSQLに戻すフォーマッターのほか、Walk、WalkWithBreak、Find、FindAll、Transformなどの走査用ヘルパーを公開しています。これらを使えば、自分で文法を書くことなく、プログラムからクエリを調査したり書き換えたりできます。

このプロジェクトは、Go製のSpanner SQLパーサーであるmemefishに着想を得ています。出力とフォーマットのテスト用アセットはテストケースから生成され、新しい構文を追加する際にはclickhouse-localを使って検証されます。

主な機能

  • 01ClickHouse SQL文をGoの型付きASTに解析します。
  • 02ASTノードをSQL文字列にフォーマットします。
  • 03インデントや改行を使ってクエリを整形します。
  • 04Walk、Find、FindAll、Transformのヘルパーで、ツリーの走査や書き換えができます。
  • 05GoライブラリとCLIとして利用でき、go installまたはHomebrewでインストールできます。

ユースケース

  • ClickHouseクエリのLintや静的解析。
  • クエリ内で参照されているテーブルを調べてアクセス制御を適用。
  • 実行前にクエリをプログラムから書き換え。
  • エディターやパイプラインでClickHouse SQLをフォーマット。

クイックスタート

  1. 1

    GoでCLIをインストールする

    go install github.com/AfterShip/clickhouse-sql-parser@latest
  2. 2

    macOSでは、代わりにHomebrewでインストールする

    brew install clickhouse-sql-parser
  3. 3

    クエリを解析または整形する

    clickhouse-sql-parser -beautify "SELECT * FROM clickhouse WHERE a=100"

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

  • 解析できるのはClickHouse方言の構文のみです。そのため、新しいSQLや一般的でないSQLはサポートされない場合があります。

収録されている特集

トピック

よくある質問

clickhouse-sql-parser とは?
ClickHouse方言のSQLを型付きASTに解析し、クエリの整形やフォーマットを行うGoライブラリ兼CLIです。 clickhouse-sql-parserは、ClickHouse SQL文をGoの型付き抽象構文木(AST)に変換します。ライブラリとしてインポートすることも、ASTの出力、1行にまとめた形式での出力、インデントや改行を使ったクエリの整形を行うCLIとして実行することもできます。
clickhouse-sql-parser は無料で使えますか?ライセンスは?
clickhouse-sql-parser は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
clickhouse-sql-parser は今もメンテナンスされていますか?
活発にメンテナンス中。clickhouse-sql-parser の最終コミットは 2026年11月4日 です。
clickhouse-sql-parser は何に使えますか?
ClickHouseクエリのLintや静的解析。 クエリ内で参照されているテーブルを調べてアクセス制御を適用。 実行前にクエリをプログラムから書き換え。 エディターやパイプラインでClickHouse SQLをフォーマット。
clickhouse-sql-parser のインストール方法は?
GoでCLIをインストールする: go install github.com/AfterShip/clickhouse-sql-parser@latest macOSでは、代わりにHomebrewでインストールする: brew install clickhouse-sql-parser クエリを解析または整形する: clickhouse-sql-parser -beautify "SELECT * FROM clickhouse WHERE a=100"
clickhouse-sql-parser はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/AfterShip/clickhouse-sql-parser

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト