Skills Agentes

Clickhouse Best Practices

Úsalo obligatoriamente al revisar schemas, queries o configuraciones de ClickHouse: contiene 31 reglas que deben verificarse antes de dar recomendaciones.

Oficial
Estrellas
536

en todo el repo

Actividad
44

0–100, la ruta de este skill

Actualizado
hace 4 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
2.6k tok

54 tok en reposo

Paquete
37 archivos

138 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add ClickHouse/agent-skills --skill clickhouse-best-practices --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Aplica un checklist de 31 reglas de ClickHouse antes de dar recomendaciones sobre schema, queries, inserts o conectividad de agentes
  • Obliga a leer archivos de reglas en `rules/` y citarlos como 'Per `rule-name`...' en la respuesta
  • Define un flujo de conexión y descubrimiento de schema (conectar, descubrir, planear, ejecutar, recuperar) para agentes que consultan ClickHouse
  • Estructura la salida en secciones de Reglas Verificadas, Hallazgos y Recomendaciones

Úsalo cuando

  • Se revisan sentencias CREATE TABLE o ALTER TABLE
  • Se diseñan ORDER BY, PRIMARY KEY o tipos de datos
  • Se optimizan queries con JOIN o índices
  • Se diseñan pipelines de ingesta o estrategias de update/delete, o un agente necesita conectarse y descubrir el schema

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • “Revisa este CREATE TABLE de ClickHouse antes de crearlo”
    • “¿Cómo debería ordenar las columnas del ORDER BY en esta tabla?”
    • “Ayúdame a optimizar este JOIN lento en ClickHouse”
    • “¿Cuál es la mejor estrategia para hacer batch insert en ClickHouse?”
    • “Conecta este agente a ClickHouse y descubre el schema de forma segura”

    SKILL.md

    En inglés

    ClickHouse Best Practices

    Comprehensive guidance for ClickHouse covering schema design, query optimization, data ingestion, and AI agent connectivity. Contains 31 rules across 4 main categories (schema, query, insert, agent), prioritized by impact.

    Official docs: ClickHouse Best Practices

    IMPORTANT: How to Apply This Skill

    Before answering ClickHouse questions, follow this priority order:

    1. Check for applicable rules in the rules/ directory
    2. If rules exist: Apply them and cite them in your response using "Per rule-name..."
    3. If no rule exists: Use the LLM's ClickHouse knowledge or search documentation
    4. If uncertain: Use web search for current best practices
    5. Always cite your source: rule name, "general ClickHouse guidance", or URL

    Why rules take priority: ClickHouse has specific behaviors (columnar storage, sparse indexes, merge tree mechanics) where general database intuition can be misleading. The rules encode validated, ClickHouse-specific guidance.


    Agent Connectivity & Query Workflow

    Before querying ClickHouse, agents must establish a connection and follow the discovery workflow:

    1. rules/agent-connect-mcp.md - Connection setup (MCP + CLI), credential discovery, output format selection
    2. rules/agent-discovery-schema.md - CRITICAL: 7-step schema discovery workflow
    3. rules/agent-query-safety.md - CRITICAL: LIMIT, timeouts, progressive exploration

    Every agent session should follow this sequence:

    1. Connect — establish connection via MCP or CLI (see agent-connect-mcp)
    2. Discover — databases → tables → columns + comments → sort keys → skip indexes → sample → EXPLAIN
    3. Plan — use sort key and skip index knowledge to write efficient WHERE clauses
    4. Execute — run queries with LIMIT and timeouts
    5. Recover — on timeout/memory errors, narrow filters and retry (see agent-query-safety)

    Subagent architecture notes

    If your system dispatches ClickHouse tasks to specialized subagents:

    • Schema discovery + query execution: any model — the steps are procedural
    • EXPLAIN analysis + query optimization: benefits from mid-tier reasoning
    • Schema design review against all 28 rules: benefits from mid-tier reasoning

    Review Procedures

    For Schema Reviews (CREATE TABLE, ALTER TABLE)

    Read these rule files in order:

    1. rules/schema-pk-plan-before-creation.md - ORDER BY is immutable
    2. rules/schema-pk-cardinality-order.md - Column ordering in keys
    3. rules/schema-pk-prioritize-filters.md - Filter column inclusion
    4. rules/schema-types-native-types.md - Proper type selection
    5. rules/schema-types-minimize-bitwidth.md - Numeric type sizing
    6. rules/schema-types-lowcardinality.md - LowCardinality usage
    7. rules/schema-types-avoid-nullable.md - Nullable vs DEFAULT
    8. rules/schema-partition-low-cardinality.md - Partition count limits
    9. rules/schema-partition-lifecycle.md - Partitioning purpose

    Check for:

    • PRIMARY KEY / ORDER BY column order (low-to-high cardinality)
    • Data types match actual data ranges
    • LowCardinality applied to appropriate string columns
    • Partition key cardinality bounded (100-1,000 values)
    • ReplacingMergeTree has version column if used

    For Query Reviews (SELECT, JOIN, aggregations)

    Read these rule files:

    1. rules/query-join-choose-algorithm.md - Algorithm selection
    2. rules/query-join-filter-before.md - Pre-join filtering
    3. rules/query-join-use-any.md - ANY vs regular JOIN
    4. rules/query-index-skipping-indices.md - Secondary index usage
    5. rules/schema-pk-filter-on-orderby.md - Filter alignment with ORDER BY

    Check for:

    • Filters use ORDER BY prefix columns
    • JOINs filter tables before joining (not after)
    • Correct JOIN algorithm for table sizes
    • Skipping indices for non-ORDER BY filter columns

    For Insert Strategy Reviews (data ingestion, updates, deletes)

    Read these rule files:

    1. rules/insert-batch-size.md - Batch sizing requirements
    2. rules/insert-mutation-avoid-update.md - UPDATE alternatives
    3. rules/insert-mutation-avoid-delete.md - DELETE alternatives
    4. rules/insert-async-small-batches.md - Async insert usage
    5. rules/insert-optimize-avoid-final.md - OPTIMIZE TABLE risks

    Check for:

    • Batch size 10K-100K rows per INSERT
    • No ALTER TABLE UPDATE for frequent changes
    • ReplacingMergeTree or CollapsingMergeTree for update patterns
    • Async inserts enabled for high-frequency small batches

    Output Format

    Structure your response as follows:

    ## Rules Checked
    - `rule-name-1` - Compliant / Violation found
    - `rule-name-2` - Compliant / Violation found
    ...
    
    ## Findings
    
    ### Violations
    - **`rule-name`**: Description of the issue
      - Current: [what the code does]
      - Required: [what it should do]
      - Fix: [specific correction]
    
    ### Compliant
    - `rule-name`: Brief note on why it's correct
    
    ## Recommendations
    [Prioritized list of changes, citing rules]
    

    Rule Categories by Priority

    Priority Category Impact Prefix Rule Count
    1 Primary Key Selection CRITICAL schema-pk- 4
    2 Data Type Selection CRITICAL schema-types- 5
    3 JOIN Optimization CRITICAL query-join- 5
    4 Insert Batching CRITICAL insert-batch- 1
    5 Mutation Avoidance CRITICAL insert-mutation- 2
    6 Partitioning Strategy HIGH schema-partition- 4
    7 Skipping Indices HIGH query-index- 1
    8 Materialized Views HIGH query-mv- 2
    9 Async Inserts HIGH insert-async- 2
    10 OPTIMIZE Avoidance HIGH insert-optimize- 1
    11 JSON Usage MEDIUM schema-json- 1
    12 Agent Schema Discovery CRITICAL agent-discovery- 1
    13 Agent Query Safety CRITICAL agent-query- 1
    14 Agent Connectivity + Formats HIGH agent-connect- 1

    Quick Reference

    Schema Design - Primary Key (CRITICAL)

    • schema-pk-plan-before-creation - Plan ORDER BY before table creation (immutable)
    • schema-pk-cardinality-order - Order columns low-to-high cardinality
    • schema-pk-prioritize-filters - Include frequently filtered columns
    • schema-pk-filter-on-orderby - Query filters must use ORDER BY prefix

    Schema Design - Data Types (CRITICAL)

    • schema-types-native-types - Use native types, not String for everything
    • schema-types-minimize-bitwidth - Use smallest numeric type that fits
    • schema-types-lowcardinality - LowCardinality for <10K unique strings
    • schema-types-enum - Enum for finite value sets with validation
    • schema-types-avoid-nullable - Avoid Nullable; use DEFAULT instead

    Schema Design - Partitioning (HIGH)

    • schema-partition-low-cardinality - Keep partition count 100-1,000
    • schema-partition-lifecycle - Use partitioning for data lifecycle, not queries
    • schema-partition-query-tradeoffs - Understand partition pruning trade-offs
    • schema-partition-start-without - Consider starting without partitioning

    Schema Design - JSON (MEDIUM)

    • schema-json-when-to-use - JSON for dynamic schemas; typed columns for known

    Query Optimization - JOINs (CRITICAL)

    • query-join-choose-algorithm - Select algorithm based on table sizes
    • query-join-use-any - ANY JOIN when only one match needed
    • query-join-filter-before - Filter tables before joining
    • query-join-consider-alternatives - Dictionaries/denormalization vs JOIN
    • query-join-null-handling - join_use_nulls=0 for default values

    Query Optimization - Indices (HIGH)

    • query-index-skipping-indices - Skipping indices for non-ORDER BY filters

    Query Optimization - Materialized Views (HIGH)

    • query-mv-incremental - Incremental MVs for real-time aggregations
    • query-mv-refreshable - Refreshable MVs for complex joins

    Insert Strategy - Batching (CRITICAL)

    • insert-batch-size - Batch 10K-100K rows per INSERT

    Insert Strategy - Async (HIGH)

    • insert-async-small-batches - Async inserts for high-frequency small batches
    • insert-format-native - Native format for best performance

    Insert Strategy - Mutations (CRITICAL)

    • insert-mutation-avoid-update - ReplacingMergeTree instead of ALTER UPDATE
    • insert-mutation-avoid-delete - Lightweight DELETE or DROP PARTITION

    Insert Strategy - Optimization (HIGH)

    • insert-optimize-avoid-final - Let background merges work

    Agent Integration - Discovery (CRITICAL)

    • agent-discovery-schema - Always discover schema before querying

    Agent Integration - Safety (CRITICAL)

    • agent-query-safety - LIMIT, timeouts, progressive exploration

    Agent Integration - Connectivity + Formats (HIGH)

    • agent-connect-mcp - MCP + CLI setup, credential discovery, output format selection

    When to Apply

    This skill activates when you encounter:

    • AI agent connecting to ClickHouse (MCP, CLI, HTTP)

    • Agent workflow design for ClickHouse

    • Schema discovery or exploration requests

    • CREATE TABLE statements

    • ALTER TABLE modifications

    • ORDER BY or PRIMARY KEY discussions

    • Data type selection questions

    • Slow query troubleshooting

    • JOIN optimization requests

    • Data ingestion pipeline design

    • Update/delete strategy questions

    • ReplacingMergeTree or other specialized engine usage

    • Partitioning strategy decisions


    Rule File Structure

    Each rule file in rules/ contains:

    • YAML frontmatter: title, impact level, tags
    • Brief explanation: Why this rule matters
    • Incorrect example: Anti-pattern with explanation
    • Correct example: Best practice with explanation
    • Additional context: Trade-offs, when to apply, references

    Full Compiled Document

    For the complete guide with all rules expanded inline: AGENTS.md

    Use AGENTS.md when you need to check multiple rules quickly without reading individual files.

    Reproducido de ClickHouse/agent-skills bajo licencia Apache-2.0. Leer esta página en markdown.

    Archivos

    37 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere acceso a los archivos de reglas en el directorio `rules/` (o `AGENTS.md` como versión compilada) incluidos en el skill.

    Detalles

    Creador
    ClickHouse
    Categoría
    Bases de datos
    Licencia
    Apache-2.0
    Recursos incluidos
    Incluye scripts o referencias
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de ClickHouse/agent-skills

    Este repo incluye 11 skills. Si instalas uno, normalmente ya tienes los demás. Ver el pack agent-skills entero y su comando de instalación

    Genera código TypeScript/JavaScript que lee/decodifica y escribe/codifica streams RowBinary de ClickHouse para el servidor HTTP; solo para Node.js, no cubre navegadores.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    193 archivos
    Última actualización
    hace 2 meses
    Oficialbases de datos

    Configura y gestiona ClickHouse con la CLI clickhousectl: servidor local para desarrollo y servicios ClickHouse Cloud gestionados para producción, incluyendo auth, esquemas y conexión.

    Costo de contexto al activarse
    661 tok
    Tamaño del paquete
    5 archivos
    Última actualización
    hace 2 meses
    Oficialbases de datos

    Configura y gestiona Postgres con clickhousectl: Postgres local con Docker para desarrollo, o servicios Postgres gestionados en ClickHouse Cloud (conexiones, TLS, réplicas, failover, restauración).

    Costo de contexto al activarse
    664 tok
    Tamaño del paquete
    5 archivos
    Última actualización
    hace 2 meses
    Oficialbases de datos

    Conecta un colector OpenTelemetry a un servicio Managed ClickStack en ClickHouse Cloud, desplegando uno nuevo o configurando el existente, y envía telemetría sintética para verificarlo en ClickStack.

    Costo de contexto al activarse
    9.9k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    Oficialdevops infraestructura

    Escribe código idiomático para el cliente Node.js de ClickHouse (@clickhouse/client): configuración, ping, inserts, selects, parámetros, sesiones y tipos de datos. No usar para código de cliente Web/navegador.

    Costo de contexto al activarse
    2.8k tok
    Tamaño del paquete
    13 archivos
    Última actualización
    hace 3 meses
    Oficialbases de datos

    Soluciona problemas comunes del cliente Node.js de ClickHouse (@clickhouse/client): socket hang-up, Keep-Alive, streams, tipos de datos, TLS/proxy y timeouts.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    hace 3 meses
    Oficialbases de datos

    Skills relacionados

    Ejecuta SQL analítico con chDB, ClickHouse embebido en Python, sobre archivos locales, URLs, S3 o bases remotas (Postgres, MySQL, MongoDB, Iceberg, Delta Lake) sin servidor.

    Costo de contexto al activarse
    1.2k tok
    Tamaño del paquete
    8 archivos
    Última actualización
    hace 4 meses
    Oficialbases de datos

    Úsalo obligatoriamente al diseñar arquitecturas ClickHouse, elegir patrones de ingesta o modelado, o traducir buenas prácticas en diseños específicos del workload.

    Costo de contexto al activarse
    791 tok
    Tamaño del paquete
    15 archivos
    Última actualización
    hace 4 meses
    Oficialbases de datos

    Escribe código idiomático para el cliente Node.js de ClickHouse (@clickhouse/client): configuración, ping, inserts, selects, parámetros, sesiones y tipos de datos. No usar para código de cliente Web/navegador.

    Costo de contexto al activarse
    2.8k tok
    Tamaño del paquete
    13 archivos
    Última actualización
    hace 3 meses
    Oficialbases de datos