分享

案例分享丨疫情大数据平台的设计

 高校信息化 2021-04-27

南航疫情大数据平台采用敏捷开发模型、协同开发模式,在微服务架构的支持下,多项开发工作并行开展。通过正确的技术选型、合理的模块划分,最大程度发挥微服务优势。

2020年初新冠肺炎(COVID-19)疫情在全国大规模爆发,严重影响了各大高校的正常管理和教学秩序。这既是高校管理上面临的一次重大考验,也是引入高科技手段、推动信息化建设、提升数据治理水平的重要机会。

南京航空航天大学信息化处根据学校关于做好疫情控制有关工作的系列通知要求,快速响应,长远谋划,主动出击,依托移动校园App、网上办事大厅、主数据中心等平台,从2020年1月底开始在不到两个月的时间内开发并上线了“每日健康打卡”、“每日健康数据上报”、“教职工返校”、“学生预约返校”、“校外人员入校”、“食堂就餐码”等10余个疫情防控相关的应用和流程,建设并启用了3校区的校门道闸及人脸识别系统,并在此基础上设计和实现了集师生健康数据、学生返校数据、人员入校实况等为一体的疫情大数据平台。

系统设计

南京航空航天大学疫情大数据平台(下文简称“平台”)采用层次设计模型,总体架构如下图所示,自底向上分为数据源、数据接入、数据服务和数据应用4层。

疫情大数据平台总体架构

01

数据源层

数据源层位于平台底部,汇集了平台所涉及的各类数据,采用数据库存储组织,从逻辑上划分为基础数据和疫情专题数据两部分。

基础数据主要来自学校主数据中心,包括师生个人基本信息、组织机构基本信息、人员机构隶属关系等;疫情专题数据,主要来自疫情相关的应用系统,包括:1.源自每日健康打卡和每日健康数据上报系统的疫情上报数据、地理位置(手机定位)数据;2.源自学生预约返校流程和管理系统的预约返校数据;3.源自道闸系统的人员进出(道闸系统的实时流水)数据等。

02

数据接入层

数据接入层位于数据源层与数据服务层之间,起到承上启下作用。对于数据服务层,它是数据的访问接口,为业务逻辑提供数据处理与分析的支撑服务;对于数据源层,它是数据清洗、处理、汇集的中心,提供数据的封装和转发服务。

数据接入层通过数据抽取工具和数据转换服务,定时从数据源抽取数据进行分析处理,并将结果存入“疫情数据库”中。

此外,数据接入层还将道闸系统的流水数据直接推送到返校学生实况应用模块中,从而实现实时跟踪返校人员情况的需求。

03

数据服务层

数据服务层由众多业务处理单元构成,每个业务处理单元从数据接入层请求数据,经业务模型处理后得到运算结果并提供给顶层的数据应用层进行可视化。

业务处理单元的结果统一以基于微服务[1]架构的API进行分发,实现前端渲染和后端运算的相互独立和并行处理。按功能类型可分为:

1.源数据封装汇总。根据数据应用层对数据格式的要求将源数据进行封装,统一以JSON字符串的形式传输,实现源数据的可视化。同时,能够接收请求参数,实现按需查询和封装,如填报记录查询、查询留校学生等。

2.源数据统计分析。对源数据按指定要求进行汇总、统计,得到分析结果后以API服务的形式转发,同样支持接收请求参数实现按需查询,如近14天的在校人数、确诊感染人数、重点观察人数、疑似感染人数、人员体温分布等。

平台目前实现了当日疫情通报、健康情况、具体人员查询、人员分布、人员追踪、填报记录查询、严控部门、疫情查询等8类共计110个API。

04

数据应用层

数据应用层主要是对业务应用分析的成果数据进行可视化展现,通过网页端、移动端和大屏等形式,给学校领导和职能部门提供各种大数据的应用服务。

数据应用层由一系列多类型、多样式的交互性图表组成可视化页面。应用从API服务中请求数据、呈现结果,即所有的计算、统计、分析等功能均在服务器端由数据服务层完成,前端只负责数据的可视化。通过这样的微服务架构,能够大幅减少数据应用层的负载,显著降低系统的耦合性,有效提升系统性能和可视化效果(见下表)。

数据应用层可视化方案

05

关键技术

平台对接的系统较多,需要通过ETL(Extract-Transform-Load)工具进行数据抽取、清洗、转换、装载,遵循统一的数据标准和清洗规则进行整合处理。然而,从学校各个系统直接获取的数据,质量参差不齐,突出的问题表现在以下几个方面。

1.数据缺失。基础数据或关键属性数据的缺失引发统计错误。例如,院聘或课题组自聘人员未纳入学校人事系统管理,导致人员基础数据失准;学生所在校区、性别、年级等信息缺失导致按校区、性别、年级统计时出现数据缺口等。

2.数据不规范。不规范的数据会导致统计口径不一的问题。例如,按学院统计数据时发现某院的名称出现了“民航/飞行学院”和“民航学院/飞行学院”两种,进而引发数据统计错误。采用标准化编码或者字典可以有效解决此类问题。

3.数据统计边界不清晰。源数据因业务原因可能含有不在疫情数据统计范围内的数据,这部分数据应该在数据采集过程中过滤剔除。

鉴于数据质量问题多样,兼顾速度与效果,综合采用下图所示方法对数据进行清洗。

数据清洗方法

06

技术栈选型

鉴于疫情防控工作的紧迫性,平台需要争分夺秒进行建设、尽快上线提供服务。此时,“微服务+前后端分离”成为技术栈选型的必要条件。

1.基于Spring Cloud的微服务技术

作为目前最为流行的微服务系统架构一站式解决方案,Spring Cloud为构建微服务过程中需要完成的工作(服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等)提供了一套简易的编程模型,使得开发者能在Spring Boot的基础上轻松地实现微服务项目的构建[2]

同时集成Swagger2,用于生成、描述、调用和可视化Restful风格的Web服务,以实现:接口文档在线自动生成,文档随接口变动实时更新,节省维护成本;支持在线接口测试,不依赖第三方工具[3]

2.基于Vue.js的前端开发

Vue.js是一套构建用户界面的渐进式框架,采用自底向上增量开发的设计模式,目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件。Vue的核心库只关注视图层,非常容易与其他库或已有项目整合[4]

3.基于ECharts的大数据可视化技术

ECharts是一个使用JavaScript实现的开源可视化库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器[5]。

平台充分利用ECharts在数据可视化图表方面简便直观、交互性强、定制性高的优势,实现了由柱状图、折线图、热力图、动态表格等组成的可视化大屏界面和移动端界面,具有数据呈现效果理想、操作互动性强、稳定高效以及兼容性好的特点。

在平台建设过程中,通过正确的技术选型、合理的模块划分,最大程度发挥微服务优势,在满足功能和性能需求的同时,将每个板块的开发周期控制在半个月以内。同时,分布式的设计既克服了算力瓶颈,又确保了数据的冗余性和系统的扩展性;任务定时调度机制则保证了数据的实时性和准确性。

系统实现

南航疫情大数据平台采用敏捷开发模型、协同开发模式,在微服务架构的支持下,多项开发工作并行开展。平台目前包括“疫情大数据”和“返校大数据”两大板块9项应用。

01

疫情大数据板块

疫情大数据板块通过采集师生的健康数据,如体温、行程轨迹、个人信息等,多角度、多层次剖析疫情数据,重点关注异常人群,实现对重点关注人群的溯源和实时追踪。数据每1小时更新1次,保证了数据的及时性和有效性。

疫情大数据大屏版主要用于大屏展示,是疫情数据的核心展示内容,效果如下图所示。

疫情大数据大屏版

疫情大数据手机端包括疫情大数据详情版、疫情查询系统、疫情就餐预警系统等模块,主要用于手机端(或电脑端)查询。其中:

1.疫情大数据详情版以人员分布图表、体温分布曲线、异常体温趋势曲线、返校人数趋势图等全面展现了学校的疫情总体情况和细分到二级单位的统计数据;

2.疫情查询系统以日为单位,查询单日全校和各二级单位的疫情数据,做到有据可查,历史可溯;

3.疫情就餐预警系统在对各校区餐厅和餐位精细建模的基础上,实现了查找与重点对象近距离接触群体的功能,便于追踪潜在感染者。

疫情大数据板块上线后迅速成为学校领导和各职能鄒门、院系单位掌握学校实时疫情、把握师生动向的有力工具,为做好疫情防控、阻断专染源,提共了科学决策支持,也为开展返校复学各项工作提共了依据。

02

返校大数据板块

返校大数据板块采集学生每日健康打卡、返校申请、各校门道闸流水等数据,汇总融合,生成返校态势和返校实况,协助有关部门统筹安排学生返校工作,缓解集中返校带来的疫情管控风险和压力。

返校学生态势

返校学生态势如上图所示,动态展示了各校区申请返校人数、已返校人数、14天内所在或经停中高风险地区的人数;对学校3个校区的审批通过人数和已返校人数进行了汇总。该模块动态展示返校态势,10分钟更新1次数据,可宏观、可微观,帮助学校合理调配学生返校,实现学生健康入学。

返校学生实况实时展示各校区人员入校情况,包括各校区当前累计审批通过人数、累计已返校人数、返校率和异常人数等,并以折线图展示近7日各校区校门处的人流量趋势。

同时,将审批通过人数、返校率、已返校人数和异常人数等数据细分到学院级。此外,还以校区平面图的形式展示了各校区的返校数据,以知识卡片的形式实时展现抵校学生基本信息。

学生返校大数据板块取得了良好的应用效果,帮助学校基于人员分布地的风险等级、学生所在年级、培养层次等制定返校计划,有效缓解了返校人流压力,降低了疫情扩散的风险。

校园疫情大数据平台是南京航空航天大学信息化建设,特别是大数据建设和数据治理方面的一次重大尝试。平台上线后获得了学校领导和各个部门的高度关注和广泛好评,在疫情防控工作中发挥了不可替代的作用。

参考文献

[1]龙新征,彭一明,李若森.基于微服务框架的信息 服务平台[J].东南大学学报(自然科学版),2017, 47(Sl):48-52.

[2]Spring Cloud Overview[EB/OL].https:/// projects/spring-cloud.

[3]SpingBoot 集成 Swagger2[EB/OL].https://www. jianshu.com/p/c79f6al4f6c9.

[4]Vue.js 是什么[EB/OL].https://cn./v2/guide/ #Vue- js-%E6%98%AF%E4%BB%80%E4%B9%88.

[5]Echarts 特性[EB/OL].https://echarts./zh/ feature.html.

基金项目:中央高校基本科研业务费前瞻性发展策略 研究基金项目(NW2020003)

作者:刘佳、刘勇(南京航空航天大学信息化处)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多