SQL Expert

Regole SQL ClickHouse: filtri PK principali, nomi qualificati, uniq su uniqExact

di FrankChen021 · FrankChen021/datastoria

Richiede configurazione ★ 7.2/10

SQL Expert — Regole SQL ClickHouse: filtri PK principali, nomi qualificati, uniq su uniqExact

Cosa fa

Un set di regole di authoring SQL ClickHouse che vincola il modo in cui le query sono scritte: nomi di tabella completamente qualificati, nessun punto e virgola finale, LIMIT obbligatorio sulle query di esplorazione, finestre temporali delimitate, un filtro sulla colonna chiave primaria principale ogni volta che una colonna secondaria viene filtrata, uniq() invece di uniqExact(), e tabella più piccola sul lato destro dei join. Si attiva quando l'utente chiede di scrivere, correggere o ottimizzare una query ClickHouse, o di estrarre dati da una tabella ClickHouse. La sua scoperta dello schema e il workflow obbligatorio validate_sql/execute_sql dipendono dagli strumenti forniti dall'applicazione web DataStoria, quindi in Claude Code puro si applicano solo le regole di scrittura SQL.

Rapporto di test

Clonato il repository (l'API di GitHub era soggetta a limitazioni di frequenza, quindi ho usato git), trovato SKILL.md in resources/skills/sql-expert/, e installato in una HOME temporanea=$(mktemp -d) — il frontmatter è stato analizzato come YAML valido con name=sql-expert e una descrizione di 129 caratteri. Controllati a campione i recuperi raw: SKILL.md 200 e clickhouse-system-queries/references/system-query-log.md 200, ma sql-expert/references/system-query-log.md è 404, quindi il riferimento relativo del corpo è appeso quando la skill è installata da sola; nessun curl|sh, base64 o testo di iniezione in resources/skills/. Giudizi sui trigger, tutti e 5 corretti: SÌ su "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 su "Write a Postgres query with a lateral join for each customer's latest order" e "Analyze this CSV of sales figures and tell me which region grew fastest" — sebbene la seconda frase della descrizione ("use this when the user needs data, queries, or analysis") non abbia un qualificatore ClickHouse ed è un vero rischio di over-trigger. Test di output su una tabella MergeTree (PARTITION BY toYYYYMM(event_date), ORDER BY (event_date, site_id, event_time)): baseline.sql ha prodotto `FROM page_views WHERE site_id = 42 AND event_time >= now() - INTERVAL 7 DAY ... uniqExact(user_id) ... LIMIT 10;` mentre skill.sql ha prodotto `FROM analytics.page_views WHERE event_date >= toDate(now() - INTERVAL 7 DAY) AND event_time >= ... AND site_id = 42 ... uniq(user_id) ... LIMIT 10` senza punto e virgola — quattro diff hunks, quello portante è il predicato event_date aggiunto che la baseline omette, che è ciò che permette a ClickHouse di potare le partizioni e usare l'indice sparso quando filtra la colonna PK secondaria site_id. Non ho potuto verificarlo con EXPLAIN (nessun clickhouse, clickhouse-local o docker su questa macchina), e non ho potuto eseguire la regola CRITICA della skill — validate_sql — perché quello strumento viene fornito con l'applicazione web DataStoria, quindi il verdetto è "setup" piuttosto che "pass".

Testato il: 2026-07-21 · Claude Code 2.x (agent harness)

Installazione

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

Comandi e prompt di esempio

  • /sql-expertRegole SQL ClickHouse: filtri PK principali, nomi qualificati, uniq su uniqExact

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

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