SQL Expert

Reglas SQL de ClickHouse: filtros PK principales, nombres calificados, uniq sobre uniqExact

Por FrankChen021 · FrankChen021/datastoria

Funciona con configuración ★ 7.2/10

SQL Expert — Reglas SQL de ClickHouse: filtros PK principales, nombres calificados, uniq sobre uniqExact

Qué hace

Un conjunto de reglas de autoría SQL de ClickHouse que restringe cómo se escriben las consultas: nombres de tabla completamente calificados, sin puntos y comas finales, LIMIT obligatorio en consultas de exploración, ventanas de tiempo acotadas, un filtro en la columna de clave primaria principal siempre que se filtre una columna secundaria, uniq() en lugar de uniqExact(), y la tabla más pequeña en el lado derecho de los joins. Se activa cuando el usuario pide escribir, corregir u optimizar una consulta de ClickHouse, o extraer datos de una tabla de ClickHouse. Su descubrimiento de esquema y el flujo de trabajo obligatorio validate_sql/execute_sql dependen de las herramientas proporcionadas por la aplicación web DataStoria, por lo que en Claude Code simple solo se aplican las reglas de escritura de SQL.

Informe de la prueba

Se clonó el repositorio (la API de GitHub tenía límite de tasa, así que usé git), se encontró SKILL.md en resources/skills/sql-expert/, y se instaló en un HOME temporal=$(mktemp -d) — el frontmatter se analizó como YAML válido con name=sql-expert y una descripción de 129 caracteres. Se verificaron recuperaciones directas: SKILL.md 200 y clickhouse-system-queries/references/system-query-log.md 200, pero sql-expert/references/system-query-log.md es 404, por lo que la referencia relativa del cuerpo queda colgando cuando la habilidad se instala sola; no hay curl|sh, base64 o texto de inyección en ninguna parte de resources/skills/. Juicios de activación, los 5 correctos: SÍ en "Write me a ClickHouse query for the top 10 slowest endpoints last week", "I need a query against our ClickHouse events table showing daily unique users", "Optimize this ClickHouse SQL, it's scanning the whole table"; NO en "Write a Postgres query with a lateral join for each customer's latest order" y "Analyze this CSV of sales figures and tell me which region grew fastest" — aunque la segunda oración de la descripción ("use this when the user needs data, queries, or analysis") no tiene un calificador de ClickHouse y es un riesgo real de sobreactivación. Prueba de salida en una tabla MergeTree (PARTITION BY toYYYYMM(event_date), ORDER BY (event_date, site_id, event_time)): baseline.sql produjo `FROM page_views WHERE site_id = 42 AND event_time >= now() - INTERVAL 7 DAY ... uniqExact(user_id) ... LIMIT 10;` mientras que skill.sql produjo `FROM analytics.page_views WHERE event_date >= toDate(now() - INTERVAL 7 DAY) AND event_time >= ... AND site_id = 42 ... uniq(user_id) ... LIMIT 10` sin punto y coma — cuatro hunks de diff, siendo el que soporta la carga el predicado event_date añadido que la línea base omite, que es lo que permite a ClickHouse podar particiones y usar el índice disperso al filtrar la columna PK secundaria site_id. No pude verificar eso con EXPLAIN (no hay clickhouse, clickhouse-local o docker en esta máquina), y no pude ejecutar la REGLA CRÍTICA de la propia habilidad — validate_sql — porque esa herramienta se envía con la aplicación web DataStoria, de ahí el veredicto "setup" en lugar de "pass".

Probado el: 2026-07-21 · Claude Code 2.x (agent harness)

Instalación

git clone --depth 1 https://github.com/FrankChen021/datastoria.git /tmp/sql-expert-src
mkdir -p ~/.claude/skills
cp -R /tmp/sql-expert-src/resources/skills/sql-expert ~/.claude/skills/sql-expert
# The SKILL.md body calls tools provided by the DataStoria app, not by Claude Code:
#   validate_sql, execute_sql, get_tables, explore_schema, skill_resource, search_query_log
# Without a ClickHouse MCP server exposing equivalents, Claude cannot run the skill's
# "MANDATORY validation" step - only the syntax/optimization rules in sections 2 and 3 apply.
# The body's `references/system-query-log.md` lives in a sibling skill, not this dir. To get it:
#   cp -R /tmp/sql-expert-src/resources/skills/clickhouse-system-queries ~/.claude/skills/clickhouse-system-queries
# Sibling skills also referenced by the body: visualization, optimize-clickhouse-sql,
#   diagnose-clickhouse-errors, diagnose-clickhouse-clusters, source-code-inspection
# Full experience (with the tools wired up): use the app at https://datastoria.app

Comandos y prompts de ejemplo

  • /sql-expertReglas SQL de ClickHouse: filtros PK principales, nombres calificados, uniq sobre uniqExact

Los skills se activan con peticiones en lenguaje natural, sin comandos que memorizar. Tras instalarlo, prompts como estos lo activan (en inglés):

  • Write a ClickHouse query to aggregate daily sales
  • Optimize this slow ClickHouse SQL query
  • Validate this ClickHouse query for correctness