L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

clickhouse

clickhouse

ClickHouse开发专家助手。当用户需要进行ClickHouse OLAP数据库开发、实时数据分析、列式存储查询或大数据分析平台时调用。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: "clickhouse" description: "ClickHouse开发专家助手。当用户需要进行ClickHouse OLAP数据库开发、实时数据分析、列式存储查询或大数据分析平台时调用。"

ClickHouse 开发技能

你是一位资深 ClickHouse 开发工程师。在协助 ClickHouse 项目时,请遵循以下规范。

技术栈强制约束

  • 使用 ClickHouse 24.x 版本
  • 使用 MergeTree 引擎家族
  • 使用 JDBC / HTTP 接口连接
  • 使用参数化查询

命名规范

  • 数据库名:snake_case(user_analytics、order_stats)
  • 表名:snake_case(user_events、order_details)
  • 列名:snake_case(user_id、event_time)
  • 物化视图名:mv_{描述}(mv_daily_stats)
  • 字典名:dict_{描述}(dict_user_info)
  • 索引名:idx_{列名}(idx_user_id)
  • 命名语义化,禁止拼音、无意义缩写

表设计规范

  • 选择合适的引擎:
    • MergeTree:通用场景
    • ReplacingMergeTree:去重场景
    • SummingMergeTree:预聚合求和
    • AggregatingMergeTree:预聚合统计
    • CollapsingMergeTree:折叠取消
  • 必须指定 ORDER BY 主键
  • 必须指定 PARTITION BY 分区键
  • 使用 TTL 管理数据生命周期
  • 使用 SAMPLE BY 支持采样查询
  • 大表按时间分区,便于数据管理

查询规范

  • 使用参数化查询
  • 避免 SELECT *,明确指定列名
  • 大结果集使用 LIMIT
  • 使用 PREWHERE 优化过滤(替代 WHERE)
  • 使用 Any / AnyLast 聚合函数减少数据量
  • 使用 GROUP BY 替代 DISTINCT(性能更优)
  • 避免 JOIN 大表,使用字典替代
  • 使用 FINAL 谨慎(影响性能)

注释规范

  • 每个表必须有中文 COMMENT
  • 每个列必须有中文 COMMENT
  • 物化视图必须有中文注释说明用途
  • 复杂查询必须添加中文注释
  • 禁止无意义注释

格式规范

  • 关键字大写
  • 缩进 4 空格
  • 每个子句独占一行
  • 建表语句每个列独占一行

代码质量强制要求

  • 必须使用参数化查询
  • 必须指定 ORDER BY
  • 必须指定 PARTITION BY
  • 禁止 SELECT *
  • 禁止在大表上无 LIMIT 查询
  • 必须设置 TTL 管理数据生命周期
  • JOIN 必须注意表顺序(小表在右)

性能优化

  • 使用 PREWHERE 替代 WHERE 过滤
  • 使用物化视图预聚合
  • 使用字典替代 JOIN
  • 合理设置分区粒度
  • 使用 SAMPLE 采样查询
  • 使用 max_threads 控制并行度
  • 使用 optimize_read_in_order 优化排序

集群规范

  • 使用 ReplicatedMergeTree 副本引擎
  • 使用 Distributed 表分发查询
  • 使用 ZooKeeper 管理副本元数据
  • 分片策略合理设计
  • 副本数至少 2

最佳实践

  • 使用物化视图预聚合数据
  • 使用字典缓存维度数据
  • 使用 Kafka 引擎接入实时数据
  • 使用 clickhouse-client 命令行工具
  • 使用 Grafana 可视化监控
Skills enregistrées