SQL Expert

ClickHouse SQL-regler: førende-PK-filtre, kvalificerede navne, uniq over uniqExact

Af FrankChen021 · FrankChen021/datastoria

Virker med opsætning ★ 7.2/10

SQL Expert — ClickHouse SQL-regler: førende-PK-filtre, kvalificerede navne, uniq over uniqExact

Hvad det gør

Et ClickHouse SQL-forfatterregelsæt, der begrænser, hvordan forespørgsler skrives: fuldt kvalificerede tabelnavne, ingen afsluttende semikoloner, obligatorisk LIMIT på udforskningsforespørgsler, afgrænsede tidsvinduer, et filter på den førende primærnøglekolonne, når en sekundær kolonne filtreres, uniq() i stedet for uniqExact(), og mindre tabel på højre side af joins. Udløses, når brugeren beder om at skrive, rette eller optimere en ClickHouse-forespørgsel, eller at trække data fra en ClickHouse-tabel. Dens skema-opdagelse og obligatoriske validate_sql/execute_sql workflow afhænger af værktøjer leveret af DataStoria web-appen, så i almindelig Claude Code gælder kun SQL-skrivereglerne.

Testrapport

Klonede repoet (GitHub API var rate-begrænset, så jeg brugte git), fandt SKILL.md i resources/skills/sql-expert/, og installerede det i en midlertidig HOME=$(mktemp -d) — frontmatter parsed som gyldig YAML med name=sql-expert og en 129-tegns beskrivelse. Spot-tjekkede rå hentninger: SKILL.md 200 og clickhouse-system-queries/references/system-query-log.md 200, men sql-expert/references/system-query-log.md er 404, så kroppens relative reference hænger, når skillen installeres alene; ingen curl|sh, base64 eller injection-tekst nogen steder i resources/skills/. Udløsningsbedømmelser, alle 5 korrekte: JA på "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"; NEJ på "Write a Postgres query with a lateral join for each customer's latest order" og "Analyze this CSV of sales figures and tell me which region grew fastest" — selvom beskrivelsens anden sætning ("use this when the user needs data, queries, or analysis") ikke har en ClickHouse-kvalifikator og er en reel over-udløsningsfare. Output-test på en MergeTree-tabel (PARTITION BY toYYYYMM(event_date), ORDER BY (event_date, site_id, event_time)): baseline.sql producerede `FROM page_views WHERE site_id = 42 AND event_time >= now() - INTERVAL 7 DAY ... uniqExact(user_id) ... LIMIT 10;` mens skill.sql producerede `FROM analytics.page_views WHERE event_date >= toDate(now() - INTERVAL 7 DAY) AND event_time >= ... AND site_id = 42 ... uniq(user_id) ... LIMIT 10` uden semikolon — fire diff-hunks, hvor den bærende var den tilføjede event_date-prædikat, som baseline udelader, hvilket er det, der lader ClickHouse beskære partitioner og bruge det sparsomme indeks, når den filtrerer den sekundære PK-kolonne site_id. Jeg kunne ikke verificere det med EXPLAIN (ingen clickhouse, clickhouse-local eller docker på denne maskine), og jeg kunne ikke udføre skillens egen KRITISKE REGEL — validate_sql — fordi det værktøj leveres med DataStoria web-appen, deraf dommen "opsætning" snarere end "bestået".

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

Installation

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

Kommandoer og eksempelprompter

  • /sql-expertClickHouse SQL-regler: førende-PK-filtre, kvalificerede navne, uniq over uniqExact

Skills udløses af almindelige forespørgsler — ingen kommandoer at huske. Efter installationen aktiverer prompter som disse skillen (på engelsk):

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