SQL Expert

Règles SQL ClickHouse : filtres PK principaux, noms qualifiés, uniq plutôt que uniqExact

par FrankChen021 · FrankChen021/datastoria

Fonctionne avec configuration ★ 7.2/10

SQL Expert — Règles SQL ClickHouse : filtres PK principaux, noms qualifiés, uniq plutôt que uniqExact

Ce que fait

Un ensemble de règles d'écriture SQL ClickHouse qui contraint la manière dont les requêtes sont écrites : noms de table entièrement qualifiés, pas de points-virgules finaux, LIMIT obligatoire sur les requêtes d'exploration, fenêtres temporelles bornées, un filtre sur la colonne de clé primaire principale chaque fois qu'une colonne secondaire est filtrée, uniq() au lieu de uniqExact(), et une table plus petite du côté droit des jointures. Se déclenche lorsque l'utilisateur demande d'écrire, de corriger ou d'optimiser une requête ClickHouse, ou d'extraire des données d'une table ClickHouse. Son workflow de découverte de schéma et de validation/exécution SQL obligatoire dépend des outils fournis par l'application web DataStoria, donc dans Claude Code simple, seules les règles d'écriture SQL s'appliquent.

Rapport de test

Cloné le dépôt (l'API GitHub était limitée en débit, j'ai donc utilisé git), trouvé SKILL.md à resources/skills/sql-expert/, et installé dans un HOME temporaire ($(mktemp -d)) — le frontmatter a été analysé comme un YAML valide avec name=sql-expert et une description de 129 caractères. Vérifié ponctuellement les récupérations brutes : SKILL.md 200 et clickhouse-system-queries/references/system-query-log.md 200, mais sql-expert/references/system-query-log.md est 404, donc la référence relative du corps est en suspens lorsque la compétence est installée seule ; aucun curl|sh, base64, ou texte d'injection nulle part dans resources/skills/. Jugements de déclenchement, tous les 5 corrects : OUI sur « 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 » ; NON sur « Write a Postgres query with a lateral join for each customer's latest order » et « Analyze this CSV of sales figures and tell me which region grew fastest » — bien que la deuxième phrase de la description (« use this when the user needs data, queries, or analysis ») n'ait pas de qualificatif ClickHouse et soit un véritable risque de sur-déclenchement. Test de sortie sur une table MergeTree (PARTITION BY toYYYYMM(event_date), ORDER BY (event_date, site_id, event_time)) : baseline.sql a produit `FROM page_views WHERE site_id = 42 AND event_time >= now() - INTERVAL 7 DAY ... uniqExact(user_id) ... LIMIT 10;` tandis que skill.sql a produit `FROM analytics.page_views WHERE event_date >= toDate(now() - INTERVAL 7 DAY) AND event_time >= ... AND site_id = 42 ... uniq(user_id) ... LIMIT 10` sans point-virgule — quatre blocs de diff, le plus important étant le prédicat event_date ajouté que la base de référence omet, ce qui permet à ClickHouse d'élaguer les partitions et d'utiliser l'index sparse lors du filtrage de la colonne PK secondaire site_id. Je n'ai pas pu vérifier cela avec EXPLAIN (pas de clickhouse, clickhouse-local, ou docker sur cette machine), et je n'ai pas pu exécuter la RÈGLE CRITIQUE de la compétence — validate_sql — car cet outil est livré avec l'application web DataStoria, d'où le verdict « setup » plutôt que « pass ».

Testé le: 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

Commandes et exemples de prompts

  • /sql-expertRègles SQL ClickHouse : filtres PK principaux, noms qualifiés, uniq plutôt que uniqExact

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

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