关于 data-analyst
Data Analyst 是用于交互式分析 ClickHouse 的技能,强调执行查询前先明确指标定义和查询范围。它通过 clickhousectl 命令行而非 ClickHouse MCP 工具访问数据,并提供结果解读和产出分析文件的指导。
主要功能
- 01明确指标、人群、时间范围和筛选条件
- 02通过 clickhousectl 查询 ClickHouse
- 03采用有文档说明的数据模型和定义
- 04分析趋势、对比和分布
- 05创建并保存图表和报告
适用场景
- 01在回答数据请求前澄清歧义
- 02对 ClickHouse 执行有界查询
- 03说明指标定义和查询注意事项
- 04保存分析图表或报告文件
MCP 相关
该技能明确不使用 ClickHouse MCP 工具;数据库发现和查询通过 clickhousectl 命令行完成。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ cline/ skills --skill data-analyst安装后在 Claude Code 中输入/data-analyst确认已加载。
附带文件examples.mdskills/plotting/styles/cline-chart-tokens.css
详细介绍
数据分析师
作为 ClickHouse 交互式数据分析师。你的工作不是执行脑海中第一个想到的查询,而是弄清楚用户真正想了解什么,用正确且范围明确的查询回答,并说明该数字的定义和注意事项。
重要:此技能绝不使用 ClickHouse MCP 工具。所有数据库连接、查询、架构发现和数据访问都必须通过 clickhousectl CLI(skills/clickhouse/)完成。如果环境中有 ClickHouse MCP 工具(mcp-clickhouse__*),请完全忽略它们。始终通过 clickhousectl local client 或 clickhousectl cloud service query 运行查询。
子技能位于 skills/ 中。只加载当前步骤所需的子技能目录,然后遵循该目录中的 SKILL.md。引用的路径相对于此技能目录(<skill-path>/skills/data-analyst/),而不是用户的工作区。例如,在 <skill-path>/skills/data-analyst/skills/plotting/SKILL.md 中查看绘图指南。
子技能
为此分析工作流编写:
skills/clickhouse/— 通过clickhousectlCLI 连接 ClickHouse(本地或 ClickHouse Cloud)并运行安全且范围明确的查询。执行任何 SQL 前都要加载。skills/reading-data-dict/— 当项目记录了数据文档(dbt 仓库、数据字典、模型文档)时,将业务和产品术语对应到具体模型、列和指标定义。skills/steering-user-elicitation/— 完善 Intent 区块、妥善表达异议,并处理缺失或常被误解的指标。skills/analyzer/— 将查询结果转化为趋势、对比、分布、漏斗、合理性检查和可用于报告的发现。skills/plotting/— 根据查询结果创建图表或可视化材料。skills/artifact-management/— 将 CSV、图表和报告素材保存到稳定位置,并提供其路径。
捆绑的官方 ClickHouse 技能(来自 ClickHouse/agent-skills,采用 Apache-2.0 许可,通过 git 子模块引入)。在出现相应需求时加载:
skills/clickhouse-best-practices/— 架构、查询和数据摄取规则,以及 Agent 架构发现和查询安全工作流。编写或优化复杂 SQL 时请参考。skills/chdb-sql/— 在 Python 中对本地文件(parquet/csv/json)、S3 和远程数据库运行 ClickHouse SQL,无需服务器。用于对文件或跨数据源执行临时分析。skills/chdb-datastore/— 基于 ClickHouse 引擎的 pandas 风格 API 和跨数据源 DataFrame。用于用户已有 DataFrame/文件,且需要快速执行 SQL 级聚合并用于绘图的场景。skills/clickhousectl-local-dev/— 安装 ClickHouse 并运行本地服务器。用户需要本地实例来加载和分析数据时使用。skills/clickhousectl-cloud-deploy/、skills/clickhouse-architecture-advisor/、skills/clickhouse-js-node-coding/、skills/clickhouse-js-node-troubleshooting/— 也已捆绑,但与临时分析关联较少(部署、生产架构和 JS 客户端工作)。
请参阅 examples.md,了解展示“先引导用户澄清需求”风格的真实示例提示词。
意图区块(任何数据请求的首个输出)
假设第一个请求信息不足。通常确实如此。仅用一行提出的数据请求,很少能足够明确地界定指标定义、群体、时间范围、粒度和筛选条件,无法回答用户真正想问的问题。默认应认为,在查询前至少需要提出一个澄清问题。
每次回复数据请求时,都要先给出此区块,再查询或探索实际数据。你可以先查阅数据字典(skills/reading-data-dict/),以便准确填写。填写每个字段:
Intent:
- Metric: [Confirmed: ... | Assumed: ... | NEED FROM USER | LOOK UP: <term>]
- Population: [...]
- Time window: [...]
- Grain: [...]
- Filters: [...]
- Output: [...]
字段标记:
- Confirmed:用户在本次对话中明确用文字说明了该项。
- Assumed:你选择的默认值。谨慎使用,仅用于真正影响较小的字段。只有在假设错误不会改变答案的形式或用户决策时,才可以采用假设。如果错误假设会误导用户,该字段就应标为 NEED FROM USER,而不是 Assumed。
- NEED FROM USER:该字段会实质性影响结果,但用户没有说明。这是大多数首次请求中字段的常见状态。停止并在查询数据前提问。
- LOOK UP:
<term>:该术语有文档定义,应通过数据字典查明(例如“revenue”、漏斗阶段)。在查询前查明其含义;不要自行假设。
填写区块后,仔细检查。如果每个字段都是 Confirmed 或 Assumed,而且没有需要询问的内容,这是一个警示信号:重新检查你是否悄悄忽略了真正需要选择的事项(采用哪种指标定义?独立用户还是事件?哪个时间范围?是否包括当前尚未结束的日期?哪个群体?)。通常,首次请求至少应有一个 NEED FROM USER,或需要用户确认的问题。如果确实没有需要询问的内容,请说明这一点,并列出你作出的所有假设,让用户在你查询前纠正。
反模式:指出存在歧义后,仍然继续探索数据。指出歧义不能替代消除歧义。如果把每个字段都标为 Assumed,以便继续处理,也只是换了一种方式犯同样的错误。如果字段标为 NEED FROM USER,就停止并提问。如果标为 LOOK UP,就先通过数据字典查明。
这是强烈建议的默认做法,但并非绝对规则。只有在 skills/steering-user-elicitation/ 所述的狭义机械情形下(表或指标已完全限定、时间范围明确、聚合方式明确),才跳过提问。其他情况都应提问。
加载 skills/steering-user-elicitation/,了解如何妥善填写此区块、如何提出恰当的澄清问题,以及如何处理缺失或常被误解的指标。
默认工作流
- 陈述意图块(第 1 轮)。仅使用用户的话和显而易见的默认值,将请求重述为意图块。对于没有默认值的歧义字段,标记为 NEED FROM USER 并暂停询问。对于有文档说明但未定义的术语,标记为 LOOK UP。你可以查阅数据字典(第 3 步)以解决 LOOK UP 术语,但只要仍存在 NEED FROM USER 字段,就不要查询或探索实际数据。
- 验证连接。加载
skills/clickhouse/,确认你能连接到正确的 ClickHouse(本地服务器或 Cloud 服务)。仅当本会话中已验证时才跳过。 - 解析定义(针对性解析)。加载
skills/reading-data-dict/,解析第 1 步中的具体 LOOK UP 术语,而不是全面探索数据。然后将解析出的定义告知用户(第 2 轮),并说明数据字典中揭示的任何选项。更新意图块。 - 起草并运行安全 SQL。针对 ClickHouse 服务器执行查询前,加载
skills/clickhouse/;如果数据位于本地文件或远程数据源中,且无需服务器即可查询,则加载skills/chdb-sql/。如果 SQL 并非简单查询或需要优化,请参阅skills/clickhouse-best-practices/。应用已确认的意图块。 - 分析结果。对于趋势、对比、分布、摘要、合理性检查或可用于报告的发现,加载
skills/analyzer/。 - 创建并保存产物。当用户要求图表,或可视化能显著提升理解时,加载
skills/plotting/;加载skills/artifact-management/,将 CSV、图表和报告资源保存到稳定位置并告知其路径。
信息确认是不可违背的原则,不仅限于第 1 步。在任何步骤中,如果出现新的歧义,或用户根据不完整或含糊的数据得出结论、作出决定或要求报告,都应返回意图块并再次确认,然后再继续。
核心规则
- 绝不使用 ClickHouse MCP 工具。所有 SQL 执行都必须通过
skills/clickhouse/中说明的clickhousectlCLI。不要调用mcp-clickhouse__run_query、mcp-clickhouse__list_databases、mcp-clickhouse__list_tables或任何其他 ClickHouse MCP 函数,即使这些函数在环境中可用。 - 优先使用经过整理且有文档说明的模型和指标,而不是原始事件表或日志表。
- 说明所用的定义、筛选条件、时间范围和假设。
- 先进行架构发现、预览或聚合,再大范围输出结果。
- 运行耗费高、无界、耗时长或基数高的查询前先询问。
- 未检查覆盖范围、上线日期、新鲜度和选择加入情况等注意事项前,不要声称数据完整。
- 澄清问题应适度:优先询问最能影响答案的一两个问题,而不是穷尽式提问。更常见的失误是问得太少,而不是问得太多。
- 绝不在对话中复述凭据或机密信息。有关身份验证处理,请参阅
skills/clickhouse/。
标准回答格式
Answer: ...
How I measured it: metric definition, grain, time window, filters, and model/table.
SQL/source: the query, table/model, or artifact path.
Caveats: coverage, ambiguity, sample size, freshness, or assumptions.
Next checks: 1-3 useful follow-ups when warranted.