在数字化、数据化、智能化的背景下,物流科技正经历着全新的时代变革。作为快递物流行业的佼佼者,中通快递的大数据产业始终保持着高速发展的态势,技术创新取得明显突破。中通快递的大数据一直保持着良好的推进势头,数据体系日渐成熟,共分为【数据应用】,【数据仓库】,【基础架构】三个部分,支撑能力日益增强。
目前,中通已有众多成功的大数据应用,但就其效果和深度而言,当前仍处于发展阶段,根据大数据分析预测未来,指导实践的深层次应用将成为未来发展的重点。作为质量人,如何理解架构的设计,保障数据的质量,最大限度的提高交付质量与速度,已成为企业数据化发展的必要保障。
“那么什么是大数据?做了哪些质量保障?这些质量保障又是如何设计的呢?” 下面就从以下几个方面详细说明一下这三个问题,从而让大家更了解中通大数据质量保障之路的实践历程。
大数据介绍
开始第一个问题:【什么是大数据?】
通俗来说,大数据是无法使用传统常规工具进行处理的海量数据集。
那么大数据有什么特性呢?通常我们认为应具有 5 个特性,即大家常说的 5V 特性。
1-数据量大 (Volume):TB/PB/YB 级别。
2-多样化 (Variety):结构化,半结构化,非结构化。
3-真实性 (Veracity):可信性,真伪性,有效性。
4-速度快 (Velocity):实时,批处理,多进程,数据流。
5-价值 - 低密度价值 (Value):统计学,事件性,相关性,假设性。
目前中通大数据分为【数据应用层】【数据仓库层】【基础架构层】三个部分。
下面是大数据架构图,从图中可以清晰的看出来分成三个模块,数据应用层主要是数据展示,报表分析,数据中台连接等功能。数据仓库主要提供历史数据查询,数据订阅,JDBC API,下载的功能,分为实时和离线两种数据。基础架构层包括资源调度,分为实时和批量两种计算方式的数据服务平台,底层使用 HDFS,TIDB,ES,Redis 等进行存储。整个大数据结构中有严格的权限管理。
大数据架构图
最开始的时候主要是在数据应用层进行功能和接口方面的测试。后面为了提高测试效率引入了接口自动化测试,并搭建了精准化测试平台。也做了一些接口性能和前端页面自动化的工作。但是随着测试的深入,发现接口和前端页面展示都没有问题,很多问题出现在数据层面。那么为了弄清数据错误的原因,我们进行了数据仓库层的测试。开始主要是手工测试,编写 SQL 脚本/造数工具等进行人工对比,和传统的 MySql 和 Oracle 等数据库数据测试没有太大区别。随着工作的深入,数据量的增大,通过人工的一条条的数据去对比显然测试的范围有很大的局限性。因此我们做了一些数据自动对比,数据分析等测试工具加以辅助,又搭建了线上监控平台,对数据进行实时的监控。这样子在很大程度上保障了数据的准确性。
当我们认识到以前的常规工具无法用在现在的数据量上面的时候,我们对测试工具进行了整合,搭建了大数据质量平台。并完善线上监控的规则使之能够实现业务和技术整体串联。
目前中通的保障之路还属于发展阶段,例如数据质量平台的迭代优化,数据监控与业务方规则也在更深入的对接,相关人员的数据敏感度的培养。
下面通过中通大数据的分组:【数据应用层】,【数据仓库层】和【基础架构层】来详细介绍一下【这些质量保障是如何设计的?】。
数据应用包含:报表系统,大屏管理和数据中台三个部分。
智能报表:利用智能报表自助分析,提供可视化数据分析解决方案,帮助企业实现数字化运营。
大屏管理 :如今的可视化大屏,搭载地理轨迹、飞线、热力、区块、3D 地图等技术,能更加生动友好地活化数据,同时也能结合丰富的交互功能和实时性,让数据开口说话,传达出超出其本身的信息。大屏信息量的高度集中,能够多方位、多角度、全景展现各项指标,实时监控,动态数据一目了然。
数据中台:对接业务部门,提供大数据接口服务,实现大数据和业务数据对接的功能,包含很多离线和实时的接口。
功能测试:主要是对业务流程和产品的各个功能进行验证。
数据测试:主要是界面字段与数据库字段进行对比验证。和传统的数据测试有些许不同,主要体现在查询数据的量和查询数据库的方式。常规的功能和接口测试是通过查询关系型数据库 MySql 或者 Oracle。大数据除了关系型数据库还包括一些 Hbase,ES,Redis 等非关系型数据库的查询。
性能测试:主要是进行接口的负载和基准的测试。
探索性测试:由于测试人员会存在测试疲劳,因此会进行交叉测试和 Monkey 测试。
接口测试:目前主要包括两种接口的测试,前端接口和服务端接口。
接口自动化:提升测试效率,主要采用工具、脚本、平台三种方式进行实现。
联调测试:组内联调和组外联调。组内联调主要是数据应用层和数据仓库层进行数据联调。组外联调主要包括数据中台的对外服务和业务方进行联调。
专项测试:因为前端的报表需要在 PC 端和不同型号的手机端进行展示,所以需要进行专项测试。
那么数据应用层具体如何做质量保障的呢?主要是通过代码,产品,平台三方面进行质量保障。
代码方面:使用 SpringBoot 框架开发联调工具,使用 Maven+TestNG 框架进行测试环境搭建。
平台方面:进行了工程化接入。
产品方面:规范安全,线上监控和风险预警。
由于章节的原因先介绍到这里,给大家简单介绍了中通目前大数据的情况,大数据的框架以及大数据中数据应用是如何进行质量保障的。后面会给大家介绍数据仓库和基础架构的质量保障建设的说明,敬请期待。