Repolode
AfterShip

AfterShip/clickhouse-sql-parser

Una biblioteca y CLI de Go que analiza SQL del dialecto de ClickHouse y lo convierte en un AST tipado, y da formato o embellece las consultas.

Estrellas
255
Forks
62
Issues abiertos
1
Último commit
anteayer

¿Qué es?

clickhouse-sql-parser convierte sentencias SQL de ClickHouse en un árbol de sintaxis abstracta (AST) tipado en Go. Se puede importar como biblioteca o ejecutar como CLI para imprimir el AST, generar un formato compacto de una sola línea o embellecer las consultas con sangría y saltos de línea.

La biblioteca ofrece un parser con ParseStmts, un formatter que convierte los nodos del AST nuevamente en SQL y funciones auxiliares para recorrerlo, como Walk, WalkWithBreak, Find, FindAll y Transform. Estas herramientas permiten inspeccionar o reescribir consultas mediante código, sin tener que crear una gramática propia.

El proyecto se inspira en memefish, un parser de SQL de Spanner escrito en Go. Los recursos de prueba para la salida y el formato se generan mediante casos de prueba y se validan con clickhouse-local al añadir sintaxis nueva.

Funciones clave

  • 01Analiza sentencias SQL de ClickHouse y las convierte en un AST tipado en Go.
  • 02Convierte los nodos del AST nuevamente en cadenas SQL.
  • 03Embellece las consultas con sangría y saltos de línea.
  • 04Ofrece las funciones auxiliares Walk, Find, FindAll y Transform para recorrer y reescribir árboles.
  • 05Está disponible como biblioteca de Go y como CLI, y se puede instalar mediante go install o Homebrew.

Casos de uso

  • Linting o análisis estático de consultas de ClickHouse.
  • Aplicar controles de acceso inspeccionando las tablas a las que hace referencia una consulta.
  • Reescribir consultas mediante código antes de ejecutarlas.
  • Dar formato a SQL de ClickHouse en editores o pipelines.

Inicio rápido

  1. 1

    Instala la CLI con Go

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

    En macOS, instálala con Homebrew

    brew install clickhouse-sql-parser
  3. 3

    Analiza o da formato a una consulta

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

Antes de usarlo

  • El análisis solo admite la sintaxis del dialecto de ClickHouse, por lo que es posible que no admita SQL reciente o poco habitual.

En colecciones

Temas

Preguntas frecuentes

¿Qué es clickhouse-sql-parser?
Una biblioteca y CLI de Go que analiza SQL del dialecto de ClickHouse y lo convierte en un AST tipado, y da formato o embellece las consultas. clickhouse-sql-parser convierte sentencias SQL de ClickHouse en un árbol de sintaxis abstracta (AST) tipado en Go. Se puede importar como biblioteca o ejecutar como CLI para imprimir el AST, generar un formato compacto de una sola línea o embellecer las consultas con sangría y saltos de línea.
¿clickhouse-sql-parser es gratuito? ¿Qué licencia tiene?
clickhouse-sql-parser es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿clickhouse-sql-parser sigue mantenido?
Mantenimiento activo. El último commit de clickhouse-sql-parser fue el 4 nov 2026.
¿Para qué puedo usar clickhouse-sql-parser?
Linting o análisis estático de consultas de ClickHouse. Aplicar controles de acceso inspeccionando las tablas a las que hace referencia una consulta. Reescribir consultas mediante código antes de ejecutarlas. Dar formato a SQL de ClickHouse en editores o pipelines.
¿Cómo se instala clickhouse-sql-parser?
Instala la CLI con Go: go install github.com/AfterShip/clickhouse-sql-parser@latest En macOS, instálala con Homebrew: brew install clickhouse-sql-parser Analiza o da formato a una consulta: clickhouse-sql-parser -beautify "SELECT * FROM clickhouse WHERE a=100"
¿Dónde consigo clickhouse-sql-parser?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/AfterShip/clickhouse-sql-parser

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados