公安工作疫情流调大数据建模和安全分析
2022-11-15田学成
田学成,韩 宁
(1.国电南京自动化股份有限公司,江苏 南京 211100;2.武威市公安局凉州分局,甘肃 武威733000)
0 引言
当前国内疫情形势仍然严峻,防控正处于关键紧要时期,在“外防输入、内防输出、动态清零”的总体要求下,开展精准流调工作至关重要。疫情期间开展流调工作需要依托大数据支持,数据处理结果关乎疫情防疫政策的实施,如何对流调数据快速精准的定位和筛选是地方政府疫情防疫环节中重要的一环。而目前流调数据普遍呈现出零碎化、非结构化特点,导致公安民警在进行流调数据处理工作时,需要投入了大量时间成本和宝贵人力。本文基于MySQL数据库快速筛选出符合条件的数据,将大数据处理变得自动化、灵活化,提高疫情流调工作的效率,提高民警对大数据处理的工作效率,为防疫工作争取更多时间,更好地将精力投入后期的安全防控措施中去,同时减轻基层公安民警工作负担。本文对疫情流调数据处理方法适用于临时情况下数据处理任务。基于流调数据特点,建立流调数据模型。图1是流调数据处理流程。
图1 流调数据处理流程
1 疫情流调数据建模
1.1 流调数据特点
疫情流调中最初的数据格式基于xls或者xlsx居多,原始的流调数据存在时间冗余、信息重复、数据分散、数据噪音等特点[1],不能直接用于疫情流调工作的开展,同时Excel文件数据不属于结构化数据,对数据的交叉处理使用率低,且数据处理函数复杂不易掌握。图2是流调数据的特点。
图2 流调数据特点
1.2 流调数据模型生成
本文基于流调数据的特点,设计流调数据模型。数据是大数据处理的核心,数据模型设计的原则要满足实验需求,同时尽可能体现仿真原则。根据三大运营商移动号码规则使用随机数的方法生成随电话号码,按照流调时间范围生成随机时间,按照中文姓氏和名字生成随机姓名,最终组合成数据模型为“手机号码、时间、手机型号、姓名”的流调数据模型,数据单位容量为1 000。该流调数据模型同时也要满足下面要求:
(1)同一时间有不同的人;
(2)存在同一人不同时间段出现;
(3)允许存在出现时间记录仅一次。
根据流调数据特点最终生成如表1所示流调模型数据。
表1 流调数据模型
2 基于MySQL数据过滤
2.1 疫情数据处理
2.1.1 数据清洗
流调数据模型中手机型号、通信运营商属于噪声信息,流调模型数据的手机型号对防疫流调调查没有研究意义,在数据清洗中应当剔除,确保流调数据过滤无干扰数据。
数据清洗是对脏数据进行检测和纠正的过程,对数据缺失、数据冗余、数据冲突和数据错误等噪声进行保真化处理,同时挖掘出后续数据分析和可视化等必须的关键数据,是提高数据研究质量的重要手段之一[2]。
2.1.2 数据集成
数据集成是将多个数据源中的数据整合并存储到一致的数据库中。这一过程中首先需要解决三个问题:模式匹配、数据冗余、数据值冲突检测与处理[3]。对来自多个实体的不同数据进行匹配是处理数据集成的首要问题。
流调数据值冲突问题主要表现在来源不同实体的数据存在数据格式差异、数据冗余和数据可期望值分散的问题,作为筛选模板的数据,数据不可删除、不可对缺失的值做均值填补、回归插补等噪声过滤处理方法,目的是保持数据的唯一可信度[4]。
数据分组的目的是在预定条件的基础上对每个逻辑分组再分组,得到更细致化的数据,使得数据符合防疫需求。基于MySQL的多层嵌套子查询数据过滤方法可以实现对数据的简单过滤。图2是将不同的数据源按照流调需求进行数据合并的过程。
2.2 疫情数据格式转换
使用Navicat for MySQL可以将Excel数据导入MySQL数据库,根据Excel表中的数据字段格式在Navicat中添加新表的字段并设置字段属性,导入数据之后对表进行刷新,数据格式转换应当遵循数据类型的要求,避免数据转换后数据长度损失等情况。表2是流调数据模型Excel表转换MySQL字段对照表。
表2 数据格式字段转换
2.3 数据查询
MySQL数据库支持对数据的子查询和嵌套查询,方便对数据的过滤。使用子查询,可将每个查询结果作为一个查询条件继续查询数据[5]。据此可对流调数据模型使用嵌套子查询,查询流调数据模型中重复出现某疫情区域的人,并按照姓名和时间先后进行排列,查询语句为:
可以看到查询结果的数据特征,据此分析流调数据。查询结果见表3。
表3 重复出现查询结果
基于流调模型数据,事实上可能存在不重复记录的号码,在考虑数据过滤的时候要根据实际情况而定。可以指定日期间隔过滤数据,对在某个日期窗口期停留的人员进行筛选确定通行码是否变更为黄码,可指定筛选条件:Datel≤Time≤Date2。
查询语句为:
表4是指定日期窗口查询结果。
表4 时间段查询结果
MySQL数据库伴随数据量增大和嵌套子查询的层数的增多,使用子查询占据的时间也会增多,反映出MySQL在处理多条件嵌套子查询时间延迟问题,需要使用第三方优化查询方法。
3 基于Python的数据处理
3.1 基于Pandas的过滤函数设计
大数据预处理技术主要是指完成对已接收数据的辨析、抽取、清洗、填补、平滑、合并、规格化及检查一致性等操作[6]。基于MySQL流调数据使用嵌套子查询不能满足复杂的数据需求。可以使用Python第三方库Pandas处理流调数据基于时间过滤的需求。Pandas是一个强大的分析结构化数据的工具集,支持多种文件格式,比如CSV、JSON、SQL、Excel数据导入,同时Pandas可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特点[7]。因为流调数据中电话号码具有唯一性,而姓名可能存在重复,所以对电话号码相同的字段进行过滤,将相同号码对应的时间存储到对应的数组中Tphone,则Tphone=[T1,T2,…,Tn],将对应重复号码的时间合并到一个数组里面,每个一号码对应形成新的 数组P=[name,phone,Tphone], 表5是使用Pandas对流调数据重组后的表。
表5 基于停留时间数据重组
为了计算在疫区停留间隔时间,需要对单个人的停留时间取时间最大值Tmax=max(T1,T2,…,Tn)和时间最小值Tmin=min(T1,T2,…,Tn),并计算时间差值Tcell=(Tmax-Tmin).total_seconds(),遍历输出每个人对应的停留时间信息{phone,name,Tcell}。最后按照防疫要求对时间间隔停留超过半小时的人进行筛选。Tcell/60≥30 min,按照当地防疫要求停留时间超过t
(min)则通行码需要变更为黄码。
3.2 基于Python的数据过滤功能实现
基于MySQL数据的查询,需要建立MySQL的数据驱动,需要安装的第三方库文件Pandas,MySQL数据驱动连接核心代码实现部分如下:
按照设计的时间处理函数,使用Pandas对结构化MySQL数据进行时间过滤,并对停留时间内超过30 min的数据进行统计输出,其核心功能代码如下:
输出结果按照{phone,name,Tcell}数组形式输出,图3是基于停留时间间隔过滤输出结果。该结果可用于防疫工作指导通行码变更的依据。
图3 停留时间超过30 min的人
根据防疫需求可修改时间间隔判断条件Tcell/60≥tmin,但是可能存在有的基站的记录个人电话号码只有一次,不能凭据时间间隔过滤,理论上存在还在疫区的可能,所以将这部分人群也全部标记出来。
4 数据可视化和数据传输安全
4.1 流调数据可视化意义
数据可视化是将数据作为数据视觉表现的一种形式,可以直观地反映数据信息。
目前大数据可视化主要包括:文本可视化、网络可视化、多维数据可视化等[8]。本文基于流调数据模型MySQL数据做可视化处理,采用开源的数据可视DataGear开发平台,具有易于部署、操作简单、可集成可视化面板等数据分析功能,支持接入SQL、CSV、Excel、HTTP接 口、JSON等 多 种 数 据 源。系统主要功能包括:数据管理、SQL工作台、数据导入/导出、数据集管理、图表管理、看板管理等。支持运行时接入任意提供JDBC驱动的数据库,包括MySQL、Oracle、PostgreSQL、SQL Server等 关 系 数据库,以及Elasticsearch、ClickHouse、Hive等大数据引擎[9]。
本文流调数据模型数据可视化使用数据图表饼图,直观地反映流调数据不同维度的数据情况。便于防疫疫情的研判和工作的开展,基于DataGear对流调数据模型做可视化处理。图4是流调数据模型可视化处理的流程。
图4 数据可视化流程
4.2 数据可视化内容
数据可视化需要根据防疫工作需要,确定可视化内容。疫情防疫的工作需要及时更新数据、动态追踪数据变化情况。为防疫工作提供更多的参照信息。
在基于流调数据模型MySQL,实现了对不同日期数据过滤,可视化后可以直观地反映相邻几个日期内数据的变化趋势。图5是1月1日~3日之间疫区停留人数统计可视化。
图5 流调数据模型日期分布
为了预测本地区是否有潜在的外部输入型疫情风险,需要可视化本地区人数和非本地区人数情况。图6是基于流调数据模型统计的人口情况。
图6 流调数据模型外来人口情况
流调其中一个关键的目的是快速确定防疫区停留时间超过某个时间间隔的人,以及时调整通信码状态。据此需要将停留时间间隔停留人数可视化。图7是停留时间间隔超过tmin的可视化情况。
图7 流调数据模型疫区停留时间间隔
4.3 数据传输安全
疫情流调数据传输安全是数据安全保障基本要求,根据《中华人民共和国数据安全法》[10]中的要求,需要保障流调数据传输过程中的完整性的保密性。传统数据压缩加密容易被攻击者截获破解,造成数据泄露,数据的完整性使用MD5验证方法[11],数据的保密性采用基于国密算法SM4分组对称加密算法对疫情流调数据进行加密传输[12],可实现流调数据传输安全性。
5 结论
新冠肺炎作为一种突发性、大规模的公共卫生事件,不但威胁着人类的健康和生命安全,也给基层防疫工作带来了巨大的挑战。本文建立流调数据模型,基于MySQL对流调数据进行过滤,使用Pandas对流调数据基于时间过滤,并通过DataGear对流调数据模型做了可视化处理,可以提高流调数据效率,同时减轻基层公安民警工作负担;使用国密算法SM4对流调数据加密可保证数据传输安全。本文方法对疫情期间的大数据处理工作具有指导意义。