

万村乐数字乡村的网格信息来自多个村的信息员手工录入,数据源杂、口径乱。某次汇总全县人口数据时发现,光"性别"字段就有男/女/M/F/1/0/未知七种写法,手机号缺位、重复、格式错各占一批。这些数据如果直接进可视化大数据平台,出来的报表没人敢信。我们搭了一套ETL加质量规则引擎,先把脏数据洗干净再入库。统计显示,治理前全县网格数据字段完整率只有68%,治理后提升到97%。

抽取:多数据源接入
万村乐的底层数据源不止MySQL 8.0.28,可视化大数据平台还对接达梦、MongoDB、PostgreSQL、Oracle和第三方API。ETL的第一阶段是抽取,用定时任务把各源的数据拉到贴源层(ODS)。例如网格信息从业务库抽出来,先原样落ODS,不做任何转换,保证可回溯。
清洗:标准化与去重
清洗阶段做字段标准化。性别统一映射为0/1/2(未知),手机号用正则校验并补全区号,身份证做校验位计算。重复记录按id_card去重,保留最新修改时间那条。我们用MybatisPlus 3.5.1的批量接口写回,单批5000条,避免长事务。
实测一批3.6万条网格记录,清洗后剔除脏数据约4200条,占总量的11.7%。这些被剔除的记录不删除,而是进"待人工复核"表,由网格员确认后回填。
质量规则引擎
脏数据花样多,写死在代码里维护成本高。我们做了一套规则引擎,规则存数据库,运行时加载成检查链。每条规则有字段、算子、阈值和严重级别。例如"手机号非空且符合正则"是强制规则,"年龄与身份证不符"是警告规则。
引擎跑完产出一张质量评分表,按表和字段维度给分。村干部在后台能看到哪张表质量低,点进去看具体是哪些规则没过。2024年第二季度,全县21张核心表的平均质量分从72分升到91分。

批量导出与云端存储
网格信息支持云端存储,一键调取、修改、批量导出。导出走后台异步任务,生成Excel后存到文件服务(本地、阿里云或腾讯云三种存储可配),前端轮询下载链接。大批量导出用流式写,避免把整张表读进内存。某次全县人口核查,一次性导出12.8万条记录,内存稳定在300MB以内。
血缘与对账
数据治理的收尾一步是血缘追踪。每条ODS到DWD到DWS的流转都记血缘,出问题能定位是哪一层引入的脏数据。每天跑对账,比对业务库和数仓的户数、人数总量,偏差超0.5%就告警。这套机制帮我们抓到过一次同步任务漏跑导致的人数少统计8000的事故。
数据标准制定
清洗规则之外,我们和县里一起制定了字段标准,比如性别、民族、证件类型的枚举值统一下发到各村信息员录入端,从源头减少脏数据。对比只做后端清洗,源头标准化让网格信息完整率又提升了9个百分点。
乡镇落地案例
某镇2024年做人口核查,原始数据12.8万条,治理前字段完整率仅65%,治理后到98%。核查周期从预计的45天缩到22天,网格员复核工作量下降一半。这个案例后来作为模板推广到周边6个乡镇。
数据服务化
治理干净的数据不只在内部用,还通过API对外提供,比如给可视化大数据平台做人口结构分析。数据源覆盖MySQL、达梦、MongoDB、PostgreSQL、Oracle和第三方API,质量规则保证下游拿到的数可信。2024年依托这批数据做的返贫预警模型,提前识别出230户潜在风险家庭。
权限与审计
网格数据敏感,ETL和导出都走SaToken 1.30.0的权限校验,谁导出了什么、导给谁都有操作日志记录。审计发现过一次越权导出尝试,靠日志快速定位并撤销。数据治理和安全合规在这里是绑定的两件事。
质量月度评分
2024年全县数据质量月度评分从年初的72分稳步升到年底的93分,21张核心表里有19张达到90分以上,剩下2张因历史遗留正在分批回填。这套治理流程上线后,村干部从"不敢信数据"变成"主动用数据",网格信息真正成了基层治理的底座。
数据治理的边界
治理不是无限清洗。我们定了原则:能标准化的字段源头控,清洗只兜底明显错误,存疑的进人工复核不强行改。过度清洗会把真实但少见的数据误删。2024年某村一批留守老人证件号缺失,系统没硬填,而是标记复核,网格员上门补全,既保质量又不造假。这套有边界的治理,让数据既干净又可信。治理成果还反向推动了录入端改造,我们把高频错误类型反馈给信息员录入界面做实时校验,源头少错让后端清洗量逐年下降,2024年清洗剔除量比2023年少约31%。
数据治理的成效最终体现在用数上。2024年依托干净数据做的返贫预警、人口结构分析,直接服务了县里多项决策,网格信息从"录了没人看"变成"决策靠得住"。
小结
万村乐数字乡村的数据治理,难点不在技术框架而在"让村干部信数据"。ETL把多源数据拉平,清洗把脏数据标准化,质量规则引擎把检查从代码里解放出来,三者合起来才让网格数据从"录了没人看"变成"敢拿去做决策"。下一步我们打算把规则模板沉淀成县里统一的一套标准,覆盖更多乡镇。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。