技能 cc-skill-clickhouse-io
📦

cc-skill-clickhouse-io

安全

掌握 ClickHouse 分析与查询优化

在大型数据集上使用缓慢的分析查询让您困扰?学习 ClickHouse 专有的列式存储模式、查询优化和实时聚合技术,实现高性能分析。

支持: Claude Codex Code(CC)
🥉 74 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“cc-skill-clickhouse-io”。 创建一个用于每小时市场统计的表

预期结果:

CREATE TABLE market_stats_hourly (hour DateTime, market_id String, total_volume AggregateFunction(sum, UInt64), total_trades AggregateFunction(count, UInt32), unique_users AggregateFunction(uniq, String)) ENGINE = AggregatingMergeTree() PARTITION BY toYYYYMM(hour) ORDER BY (hour, market_id)

正在使用“cc-skill-clickhouse-io”。 查询过去 30 天的每日活跃用户

预期结果:

SELECT toDate(timestamp) AS date, uniq(user_id) AS daily_active_users FROM events WHERE timestamp >= today() - INTERVAL 30 DAY GROUP BY date ORDER BY date

正在使用“cc-skill-clickhouse-io”。 计算交易规模百分位数(中位数、p95、p99)

预期结果:

SELECT quantile(0.50)(trade_size) AS median, quantile(0.95)(trade_size) AS p95, quantile(0.99)(trade_size) AS p99 FROM trades WHERE created_at >= now() - INTERVAL 1 HOUR

安全审计

安全
v1 • 2/25/2026

This skill is documentation-only containing SQL queries and TypeScript code examples for ClickHouse database operations. All 87 static analyzer findings are false positives: backticks are markdown code fences not shell execution, SQL aggregation functions (uniq, sum, countMerge) are not cryptographic algorithms, and system table queries are legitimate ClickHouse monitoring features. No executable code or security risks detected.

1
已扫描文件
437
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

38
架构
90
可维护性
87
内容
50
社区
100
安全
100
规范符合性

你能构建什么

构建分析平台的数据工程师

设计和优化 ClickHouse 表以支持高容量事件跟踪和用户分析,使用物化视图实现实时仪表板。

执行队列分析的分析师

使用 ClickHouse 专有聚合函数在大型数据集上执行留存分析、漏斗转化跟踪和时间序列查询。

集成实时指标的开发人员

实现流式数据摄入和自动化 ETL 管道,将事务数据从 PostgreSQL 同步到 ClickHouse 以支持分析工作负载。

试试这些提示

入门:创建基础分析表
帮我创建一个 ClickHouse 表用于存储每日市场分析数据,包含日期、market_id、volume 和 trade count 列。使用适合时间查询的适当引擎和分区策略。
中级:优化慢查询
我在一个有 1 亿行的表上按 market_name 和 volume 过滤的 ClickHouse 查询很慢。该表按 (date, market_id) 排序。建议优化方案并解释如何重构表或查询以获得更好的性能。
高级:设计实时仪表板后端
设计一个带有物化视图的 ClickHouse 模式,为实时交易仪表板提供动力,显示每个市场的每小时 volume、trade count 和唯一交易者。包括基础表、物化视图定义和仪表板的示例查询。
专家:实现用户留存分析
创建一个 ClickHouse 查询来计算按注册月份划分的用户留存队列,显示注册后第 0 天、第 1 天、第 7 天和第 30 天的活跃用户。使用包含 user_id 和 timestamp 列的事件表。

最佳实践

  • 使用 DATE 或 DateTime 列按时间(月或日)分区表,以优化时间范围查询
  • 按最频繁过滤的列排序键,基数最高的列放在前面,以最大化索引使用率
  • 使用批量插入而不是单行插入,以显著提高摄入性能

避免

  • 使用 SELECT * 而不是指定列 - 不必要地增加 I/O 和内存使用
  • 执行小规模频繁插入而不是批量插入 - 导致过多的合并操作并降低性能
  • 在查询中依赖 FINAL 子句 - 强制在查询执行前合并数据,显著降低读取速度

常见问题

MergeTree 和 ReplacingMergeTree 引擎之间有什么区别?
MergeTree 是适用于大多数用例的通用引擎。ReplacingMergeTree 在合并期间自动去重具有相同主键的行,适用于从可能产生重复的多个来源摄入数据的场景。
ClickHouse 中的物化视图如何工作?
物化视图自动处理源表的 INSERT 操作,并用转换或聚合的数据填充目标表。它们无需手动 ETL 作业即可实现实时聚合。
插入数据的最优批量大小是多少?
目标为每次插入 10,000 到 100,000 行或 10-100 MB。避免每秒向每个表插入超过一次,以防止创建过多的数据分区。
什么时候应该使用 AggregatingMergeTree?
当需要存储预计算的聚合以便稍后合并时使用 AggregatingMergeTree。它需要 AggregateFunction 数据类型和 state/merge 函数,但提供快速的聚合指标查询。
如何在 ClickHouse 中监控慢查询?
查询 system.query_log 表并按 query_duration_ms 和 type='QueryFinish' 过滤。这会显示已完成查询的执行时间、读取行数、读取字节数和内存使用情况。
ClickHouse 支持事务吗?
ClickHouse 不支持传统的 ACID 事务。它针对以附加操作为主的分析工作负载进行了优化。使用原子 INSERT 操作并设计模式以处理最终一致性。

开发者详情

文件结构

📄 SKILL.md