千万级 CSV 数据清洗与分析:本地 AI 工作流,无需代码无需 SQL|DT-Bot
在处理大规模数据时,许多朋友都会遇到这样一个场景:手里有一个千万级别的CSV文件(例如用户行为日志、销售记录或传感器数据),需要在本地进行清理和分析。
然而,直接用Excel打开,等待你的往往是“无响应”或“文件加载不完整”。Excel最多只能处理104万行数据,千万级的数据量早已超出了它的能力范围。
更让人头疼的是,传统的解决方案往往要求你懂编程、会SQL、熟悉各种数据库操作——这对于非技术人员来说,门槛实在太高了。
今天给大家带来的教程就是:
就能对千万级表格进行清洗分析,而且所有数据都在你的本地电脑上处理,不用担心隐私泄露。你只需要像跟朋友聊天一样,用提示词描述你的需求,就会帮你搞定一切。
一、工作流程原理
首先你需要知道对于数据处理需要进行下面4个核心步骤:
- 数据清洗:对 CSV、Excel 等原始数据进行清洗工作。
- 数据入库:将 清洗后的CSV、Excel 导入平台数据库堆,生成表。
- 表统计:对数据库堆中的表进行统计(过滤,分组,联表,计算等)。
- 数据出库:将表进行下载导出CSV、Excel 结果文件。
1.1 数据清洗
原始数据通常不是直接可用的,数据分析里一个很重要的环节就是数据清洗。数据清洗可以将表格的数据进行整理,以便于后面的数据分析。比如:清除异常的数据,空值,新增列,修改列等。
我们只需要输入如下口令:
1. 删除“订单ID”列为空的记录。
2. 删除“账期结束”列早于“账期开始”的记录。
3. 将“客户编码”列中的前后空格清理掉,把小写字母统一转成大写。并且将“#”,“_”,“/”,“.”, 空格" ,这些字符都替换成"-"。
4. 删除“订单号”列重复的记录,仅保留第一次出现的记录。
5. 新增“订单摘要”列,将“下单渠道”“客户等级”“收货省份”三列的值按“渠道-等级-省份”的形式拼接起来。
6. 将“支付金额”列统一保留2位小数,按四舍五入修改原值。
通过AI的基础,对清洗步骤进行链式描述,就可以达到对原始XLSX,CSV表格的数据清洗操作。
数据清洗速度很快,经测试,对于1000w数据,只需40秒左右即可完成清洗,内部充分利用了本地电脑的CPU资源。
1.2 数据入库
数据入库就是将多个表格文件(XLSX,CSV)统一导入到一个地方,我们叫数据库堆,只有入了数据库堆的表才能进行数据分析。底层就是利用了数据库这个插件来实现。
数据库是什么?
数据库的核心功能是高效、可靠地存储和管理数据。它就像一个有超级智能分拣系统的仓库,不仅能安全地存放海量信息(持久化存储),还能让你通过查询语言,从千万条记录中快速精确地找到所需内容(高效检索)。更重要的是,它允许成千上万人同时使用和修改数据而不会乱套(并发控制),并通过各种规则自动检查,防止录入错误或矛盾的数据(完整性保证),从而为应用程序和决策分析提供准确、统一的数据支撑。
简而言之,数据库就是一个存储多张表格数据的地方,然后可以通过SQL语言对多张表进行分析统计。
数据入库的工作原理就类似数据库,我们可以将多个表格文件(XLSX,CSV)进行导入到数据库堆,每一张表格就是一张表。
导入到数据库堆的结构如下:

数据库堆创建好之后,我们就可以对表进行任意统计了。
1.3 表统计
表统计就是通过自然语言描述,来进行你想要的数据分析统计,生成结果新表。你可以描述如下口吻:
1. 帮我找出退款金额最高的前 10 笔退款记录,看看都是什么订单、什么商品、什么退款原因。
2. 查看每个店铺的总销售额与最终利润。
3. 帮我看看最近一周来了多少人访问,有多少人最后注册成用户了,注册转化怎么样。
4. 帮我算一下每个活动的 ROI,看看投一块钱大概能换回来多少收益。
5. 我想知道哪些活动虽然卖得多,但是优惠券和活动折扣给得太狠,最后利润并不高。
6. 统计低于安全库存的商品,查看需要优先补货的商品清单。
7. 把 Boss直聘、智联、猎聘、内推这些渠道从投递到面试、再到 offer、最后到接受这一整条链路拉出来,看哪个渠道最值钱。
8. 把工时特别短、特别长的人挑出来,看是不是考勤异常、请假太多,还是加班过头了。
前面介绍过,数据库要用SQL语言才能进行分析统计。上面的描述一般是老板的口吻,然后数据分析师就会判断得出SQL,然后交给数据库分析,当然,这是传统的分析模式。
我们的表统计底层,有一层AI分析引擎结合数据库堆中的表信息,直接将老板口吻转换成了SQL从而进行统计分析。你不需要懂任何技术语言。
当然,为了精确,防止AI异想天开,你也可以描述下面精准口吻:
1. 请基于‘订单明细’表,筛选出下单日期在2024年且订单金额>100的记录,然后按‘城市’汇总,输出每个城市的订单数、总金额、平均金额,并按总金额从高到低排序。<br>
2. 基于“缺货严重商品”、“库存表”、“销售表”、“入库表”、“退货表”、“采购单表”、“库存安全预警”、“库存资金占用”进行统计;
分组维度:仓库ID;输出字段:仓库ID、入库数量、缺货天数;
统计指标:入库数量、缺货天数;
排序规则:按入库数量从高到低排序;
补充约束:使用‘缺货严重商品’表、按‘仓库’分组、找出‘缺货压力最大的仓库’。
关联路径:缺货严重商品通过商品ID关联库存表;缺货严重商品通过商品ID关联销售表;缺货严重商品通过商品ID关联入库表;缺货严重商品通过商品ID关联退货表。
1.4 数据出库
出库就是导出,可以将数据库堆中的任意多个表导出成CSV,XLSX表格文件。
二、操作步骤
实际工作模式是一套完整的AI工作流体系,如图:

下面我以一个“电商订单退款分析”为例子,来介绍下如何使用。
电商订单退款分析
统计每个店铺的各个退款情况:
给我按店铺和退款原因,把订单总数、退款单数、退款率和平均退款金额拉个清单。
上面是老板要求的原话。
数据准备
有一批子表 “订单表” ,位置在“F:\压测\电商订单退款数据分析\订单主表” , 如图:

每个表格有200w数据,一起1000w数据。表头和部分数据如下:
![]()
还有一批子表“退款表”,位置在“F:\压测\电商订单退款数据分析\退款表” , 如图:

每个表格有100w数据,一起500w数据。表头和部分数据如下:
![]()
我们配置一个 “文件助手”智能体节点,如图:

输入提示词:
获取“F:\压测\电商订单退款数据分析\订单主表”目录下面的所有csv文件
这样就把所有的订单子表获取到了。这个节点会有一个输出,输出就是获取的结果csv文件。
数据清洗
在数据清洗阶段进行如下操作:
1. 将多个子订单表 和 退款表分别进行合并,生成一个1000w的“总订单表”和一个500w的“总退款表”。
2. 删除“总订单表”订单金额≤0、订单状态异常的记录行。
接着我们挂两个智能体节点,文件合并 和 内容清洗,如图:

文件合并: 就把上一个节点的输出进行合并成一个总的csv文件,并且输出到下一个节点。
内容清洗: 根据你输入的提示词,对输入文件的每一行进行数据转换整理。
退款表也是雷同的配置,我就不说了。整体数据清洗步骤如图:

表统计
现在需要对“订单总表”和“退款总表”进行关联分析:
给我按店铺和退款原因,把订单总数、退款单数、退款率和平均退款金额拉个清单。
数据入库后面,我们设置一个 “表统计”节点,配置提示词,如下图:

然后执行工作流得到统计结果:

回溯提示词和SQL
我们还可以回溯您的提示词,经过AI回溯,可以看到提示词到底是怎么查询的,以及SQL是什么样子的,如图:

“给我按店铺和退款原因,把订单总数、退款单数、退款率和平均退款金额拉个清单。” 这个提示词的SQL如下:
SELECT
agg_src_0.`店铺名称` AS `店铺名称`,
agg_src_0.`退款原因` AS `退款原因`,
agg_src_0.`订单总数` AS `订单总数`,
agg_src_0.`退款单数` AS `退款单数`,
agg_src_0.`平均退款金额` AS `平均退款金额`,
ROUND(
CASE
WHEN agg_src_0.`订单总数` IS NULL OR agg_src_0.`订单总数` = 0 THEN 0
ELSE agg_src_0.`退款单数` * 1.0 / agg_src_0.`订单总数`
END,
4
) AS `退款率`
FROM (
SELECT
t1.`店铺名称` AS `店铺名称`,
t2.`退款原因` AS `退款原因`,
COUNT(DISTINCT t1.`订单号`) AS `订单总数`,
COUNT(DISTINCT t2.`订单号`) AS `退款单数`,
AVG(t2.`退款金额`) AS `平均退款金额`
FROM `总订单表` t1
LEFT JOIN `总退款表` t2
ON t1.`订单号` = t2.`订单号`
GROUP BY
t1.`店铺名称`,
t2.`退款原因`
) agg_src_0
步骤解析如下:
1. 首先,从“总订单表”和“总退款表”这两张数据表开始。这一步的目的是把这两张表的信息关联起来。具体做法是:以“总订单表”(我们叫它t1)为主,去匹配“总退款表”(我们叫它t2)。匹配的规则是,看两张表里的“订单号”是否相同。如果“总订单表”里某个订单在“总退款表”里找不到对应的退款记录,这个订单的信息也会保留,只是退款相关的信息会显示为空。这一步处理完后,会得到一个临时的、合并了订单和退款信息的数据集合。
2. 接着,对这个合并后的数据集合进行分组和统计。分组的依据是两个信息:“店铺名称”和“退款原因”。这意味着,系统会把所有“店铺名称”相同、并且“退款原因”也相同的记录放到一组里。然后,对每一组数据分别进行三次计算:第一,数一数这个组里一共有多少个不同的“订单号”,结果叫做“订单总数”;第二,数一数这个组里在退款表里有多少个不同的“订单号”(也就是实际发生了退款的订单数),结果叫做“退款单数”;第三,计算这个组里所有“退款金额”的平均值,结果叫做“平均退款金额”。这一步完成后,会得到一个中间结果,里面每一行都代表一个“店铺”+“退款原因”的组合,以及对应的三个统计数字。
3. 然后,处理上一步得到的中间结果(我们叫它agg_src_0)。主要任务是计算一个新的指标:“退款率”。计算方法是:用“退款单数”除以“订单总数”。为了保证计算安全,系统会先检查:如果“订单总数”是空值或者是0,那么“退款率”就直接记为0,避免出现除以零的错误。如果不是0,就进行除法运算。为了让数字更规整,除法结果会被保留4位小数。同时,这一步还把中间结果里的所有列(店铺名称、退款原因、订单总数、退款单数、平均退款金额)以及新算出来的“退款率”一起,整理成最终要展示的几列数据。
最终结果是什么:
最终查出来的结果是一个列表。每一行告诉我们:在某个特定的店铺里,因为某个特定的原因(比如“商品损坏”、“不想要了”等),一共产生了多少笔订单,其中有多少笔发生了退款,平均每笔退款多少钱,以及退款订单占所有订单的比例(即退款率)是多少。这个结果可以帮助我们快速了解各个店铺在不同退款原因上的具体情况。
三、其它说明
智能体执行监控,结果可追溯
配置的工作流的每一个智能体的执行都是由严格的监控的,你可以监控每一个智能体节点的运行结果。还可以对数据库堆的所有表,以及数据进行查看。
对于表统计,我们还可以回溯您的提示词,经过AI分析的具体步骤,如下案例:

对于单个节点可以查看运行结果,如图:


支持节点调试
支持节点调试功能,您可以在任何一个节点进行运行,而不必每次都整个工作流执行,在节点右键即可执行调试。如图:

系统会将当前节点和箭头连接的上游所有节点进行执行。
支撑千万数据量级以上
在设计上充分考虑了海量数据处理场景,单表支持千万级以上的数据量。所有数据均存储于本地磁盘(位于软件目录下),处理时采用分页加载机制,仅将当前所需数据调入内存,从根本上避免内存溢出问题。
经实测,约 1000 万行、10 列左右的 CSV 数据,占用磁盘空间约为 1.5 GB。如需处理大规模数据,请提前预留充足的磁盘空间。
数据安全性
在数据处理过程中高度保障数据安全。所有表格数据均存储在本地磁盘(软件安装目录下),不经过任何云端服务器。这一设计不仅确保了数据的物理隔离与控制权,也使得 DT-Bot 能够兼容千万级以上的海量数据场景。
在调用 AI 能力时,流向大模型的仅为用户所描述的提示词指令,原始表格数据不会上传。但需特别说明的是:部分文本提取类智能体(如“多媒体入库智能体”)会将图片中的文字内容通过 OCR 识别后,发送至 AI 模型进行关键信息提取。
所有 AI 接口均采用直连官方 API 的方式,不经过任何第三方中转服务器,进一步保障数据传输链路的安全性。使用时,用户需自行准备并配置官方 API 密钥(API Key)。
四、总结
如果您不懂任何编程语言,SQL技术,请按照我文章的教程来试一试,数据表格自动化处理教程。有问题可以联系我,我们一块探讨。下方有名片。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)