返回顶部
c

chat2duckdbDuckDB 分析工具

基于 DuckDB 引擎的高效数据分析工具;当用户需要对 CSV/JSON/Parquet/Excel 等数据文件进行 SQL 查询、数据分析、数据抽样或需要自动纠错的查询执行时使用

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
123
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

chat2duckdb

Chat2DuckDB 数据分析

任务目标

  • - 本技能用于对数据文件进行快速、高效的 SQL 查询和分析
  • 能力包含:数据文件注册为表、自然语言转 SQL、查询执行、数据抽样、错误校正、分析结论生成
  • 触发条件:用户需要分析数据文件、执行 SQL 查询、探索数据结构、生成数据分析报告

前置准备

  • - 依赖说明:安装 DuckDB 和 pandas

duckdb>=1.5.0
pandas>=2.0.0

核心功能

1. 数据探索(Describe 模式)

  • - 基本信息:总行数、列数、表结构
  • 数值列统计:平均值、中位数、标准差、最大/最小值
  • 分类列统计:唯一值数量、最常见值、Top 值分布
  • 日期列统计:最早/最晚日期、唯一日期数
  • 数据质量:缺失值统计、完整性分析

2. SQL 查询执行

  • - 智能 SQL 生成:根据自然语言描述自动生成 SQL
  • 自动重试机制:最多 3 次智能重试
  • SQL 校正引擎
- 语法错误自动修复(移除多余分号、逗号等) - 列名错误智能纠正(基于编辑距离匹配) - 引号规范化(双引号转单引号) - SQL 关键字大小写规范化
  • - 数据抽样:支持按比例抽样查询,快速验证逻辑

3. 结果分析

  • - 查询结果格式化输出
  • 执行时间和性能统计
  • 数据洞察和业务建议生成

操作步骤

步骤 1:数据准备

确认数据文件路径(CSV/JSON/Parquet/Excel 等格式)

步骤 2:数据探索

bash

完整统计模式(推荐)

python scripts/duckdbanalyzer.py --filepath ./data.csv --mode describe

简单模式(仅基本信息)

python scripts/duckdbanalyzer.py --filepath ./data.csv --mode describe --simple

导出分析报告

python scripts/duckdbanalyzer.py --filepath ./data.csv --mode describe --output report.json

Excel 文件(默认读取第一个工作表)

python scripts/duckdbanalyzer.py --filepath ./data.xlsx --mode describe

Excel 文件(指定工作表)

python scripts/duckdbanalyzer.py --filepath ./data.xlsx --excel_sheet sheetTitle --mode describe

步骤 3:SQL 查询

bash

基础查询

python scripts/duckdbanalyzer.py --filepath ./data.csv --mode query \ --sql SELECT * FROM data LIMIT 10

聚合查询

python scripts/duckdbanalyzer.py --filepath ./data.csv --mode query \ --sql SELECT category, SUM(price * quantity) as total_sales FROM data GROUP BY category

抽样验证(先在小样本上测试)

python scripts/duckdbanalyzer.py --filepath ./data.csv --mode query \ --sql SELECT * FROM data WHERE price > 100 --sample_fraction 0.1

导出查询结果(支持 CSV/Excel/JSON/Parquet)

python scripts/duckdbanalyzer.py --filepath ./data.csv --mode query \ --sql SELECT * FROM data --output result.csv

python scripts/duckdbanalyzer.py --filepath ./data.csv --mode query \
--sql SELECT * FROM data --output result.xlsx

持久化到 DuckDB 文件(后续可直接关联查询)

python scripts/duckdbanalyzer.py --filepath ./data.csv --mode query \ --persistdbpath ./analysis.duckdb --persist_table \ --sql SELECT category, SUM(price * quantity) as total_sales FROM data GROUP BY category

步骤 4:结果分析

  • - 查看查询结果和数据预览
  • 分析执行时间和重试次数
  • 根据结果生成业务洞察

步骤 5:数据持久化(可选)

  • - --persistdbpath:指定 DuckDB 数据库文件路径
  • --persist_table:将注册表持久化为普通表(默认是临时表)
  • 典型用途:跨批次积累结果、后续多表关联查询、沉淀分析基表

资源索引

注意事项

最佳实践

  1. 1. 先探索后查询:先用 describe 模式了解数据结构,再生成 SQL
  2. 复杂查询先抽样:对于复杂查询,先用 --sample_fraction 参数在小样本上验证
  3. 合理使用 LIMIT:查询结果超过 1000 行时,建议使用 LIMIT 或聚合查询
  4. 利用自动校正:SQL 错误时会自动重试和校正,无需手动干预

性能建议

  • - 大数据集使用抽样验证后再执行完整查询
  • 聚合查询比全表查询更高效
  • 可以设置 --max_retries 参数调整重试次数

错误处理

  • - 语法错误会自动修复(多余分号、逗号等)
  • 列名错误会尝试匹配最相似的列名(编辑距离≤2)
  • 表名错误会提示检查表名
  • 所有校正操作都会在输出中显示

使用示例

示例 1:完整数据探索

场景:拿到新数据集,需要了解数据结构和质量

命令
bash
python scripts/duckdbanalyzer.py --filepath ./sales_data.csv --mode describe

输出包含

  • - 基本信息:20 行,7 列
  • 表结构:各字段名称和数据类型
  • 数值列统计:price 的平均值 356.99,中位数 264.99 等
  • 分类列统计:category 有 2 个唯一值,Electronics 出现 12 次
  • 日期列统计:sale_date 从 2024-01-15 到 2024-02-02
  • 数据质量:所有列数据完整,无缺失值

示例 2:销售分析查询

场景:分析各类别产品的销售表现

命令
bash
python scripts/duckdbanalyzer.py --filepath ./sales_data.csv --mode query \
--sql SELECT category, COUNT() as numproducts, SUM(price quantity) as totalrevenue, AVG(price) as avgprice FROM data GROUP BY category ORDER BY totalrevenue DESC

输出

执行 SQL: SELECT category, COUNT() as numproducts, SUM(price quantity) as totalrevenue, AVG(price) as avgprice FROM data GROUP BY category ORDER BY totalrevenue DESC

【查询结果】
执行时间:0.05 秒
重试次数:0
结果行数:2

数据预览:
category numproducts totalrevenue avg_price
Electronics 12 42938.24 356.99
Furniture 8 19949.23 356.99

业务洞察

  • - Electronics 类别贡献了 68% 的总收入
  • 两个类别的平均价格相同,但 Electronics 销量更高

示例 3:区域销售对比

场景:分析不同区域的销售情况

命令
bash
python scripts/duckdbanalyzer.py --filepath ./sales_data.csv --mode query \
--sql SELECT region, COUNT() as numorders, SUM(price quantity) as totalsales, AVG(price) as avgordervalue FROM data GROUP BY region ORDER BY total_sales DESC

示例 4:高价产品筛选(带抽样验证)

场景:找出高价产品(price > 200),先在 10% 样本上验证

命令
bash

先在样本上验证


python scripts/duckdbanalyzer.py --filepath ./sales_data.csv --mode query \
--sql SELECT productname, category, price FROM data WHERE price > 200 --samplefraction 0.1

验证无误后执行完整查询

python scripts/duckdbanalyzer.py --filepath ./sales_data.csv --mode query \ --sql SELECT product_name, category, price FROM data WHERE price > 200 ORDER BY price DESC

示例 5:自动 SQL 校正

场景:SQL 有语法错误(多余分号),系统自动校正

命令
bash
python scripts/duckdb_analy

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 chat2duckdb-1775886795 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 chat2duckdb-1775886795 技能

通过命令行安装

skillhub install chat2duckdb-1775886795

下载

⬇ 下载 chat2duckdb v1.0.0(免费)

文件大小: 14.61 KB | 发布时间: 2026-4-12 09:20

v1.0.0 最新 2026-4-12 09:20
chat2duckdb v1.0.0

- Initial release of a high-efficiency data analysis tool built on the DuckDB engine.
- Supports SQL queries, data exploration, automated error correction, and sampling for CSV, JSON, Parquet, and Excel files.
- Features intelligent SQL generation from natural language, auto-retry/error fixing, and detailed descriptive analysis modes.
- Enables exporting query results to CSV, Excel, JSON, and Parquet formats.
- Includes performance recommendations, detailed example commands, and best-practice guides for data analysis workflows.
- Core functionality provided via the script: `scripts/duckdb_analyzer.py`.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部