mcpField
D
data-analyst

data-analyst

github.com/cline数据与数据库402.3k 次安装15 周前更新
代码仓库

关于 data-analyst

Data Analyst 是用于交互式分析 ClickHouse 的技能,强调执行查询前先明确指标定义和查询范围。它通过 clickhousectl 命令行而非 ClickHouse MCP 工具访问数据,并提供结果解读和产出分析文件的指导。

主要功能

  1. 01明确指标、人群、时间范围和筛选条件
  2. 02通过 clickhousectl 查询 ClickHouse
  3. 03采用有文档说明的数据模型和定义
  4. 04分析趋势、对比和分布
  5. 05创建并保存图表和报告

适用场景

  1. 01在回答数据请求前澄清歧义
  2. 02对 ClickHouse 执行有界查询
  3. 03说明指标定义和查询注意事项
  4. 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/ — 通过 clickhousectl CLI 连接 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. 陈述意图块(第 1 轮)。仅使用用户的话和显而易见的默认值,将请求重述为意图块。对于没有默认值的歧义字段,标记为 NEED FROM USER 并暂停询问。对于有文档说明但未定义的术语,标记为 LOOK UP。你可以查阅数据字典(第 3 步)以解决 LOOK UP 术语,但只要仍存在 NEED FROM USER 字段,就不要查询或探索实际数据。
  2. 验证连接。加载 skills/clickhouse/,确认你能连接到正确的 ClickHouse(本地服务器或 Cloud 服务)。仅当本会话中已验证时才跳过。
  3. 解析定义(针对性解析)。加载 skills/reading-data-dict/,解析第 1 步中的具体 LOOK UP 术语,而不是全面探索数据。然后将解析出的定义告知用户(第 2 轮),并说明数据字典中揭示的任何选项。更新意图块。
  4. 起草并运行安全 SQL。针对 ClickHouse 服务器执行查询前,加载 skills/clickhouse/;如果数据位于本地文件或远程数据源中,且无需服务器即可查询,则加载 skills/chdb-sql/。如果 SQL 并非简单查询或需要优化,请参阅 skills/clickhouse-best-practices/。应用已确认的意图块。
  5. 分析结果。对于趋势、对比、分布、摘要、合理性检查或可用于报告的发现,加载 skills/analyzer/。
  6. 创建并保存产物。当用户要求图表,或可视化能显著提升理解时,加载 skills/plotting/;加载 skills/artifact-management/,将 CSV、图表和报告资源保存到稳定位置并告知其路径。

信息确认是不可违背的原则,不仅限于第 1 步。在任何步骤中,如果出现新的歧义,或用户根据不完整或含糊的数据得出结论、作出决定或要求报告,都应返回意图块并再次确认,然后再继续。

核心规则

  • 绝不使用 ClickHouse MCP 工具。所有 SQL 执行都必须通过 skills/clickhouse/ 中说明的 clickhousectl CLI。不要调用 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.

评论

支持 Markdown