2018-04-03
2018-04-03 本文已影响0人
GeorgeV
今天进行了AGS的姓名匹配工作,由于系统默认在发动机关车后进行数据上传,因此实际观察下来后可以按照QAR系统接收时间和航班实际关车时间做对比进行匹配,一般间隔时间均为几分钟内,实际匹配过程中按照1小时30分钟掌握即可,如果间隔再拉大,对于短航班可能会匹配到下一航段,所以时间间隔不宜太大。
另外需要注意的一点是:最好按照前后2天,总共5天的航班进行匹配,因为长航线10几个小时,在数据接收时间上很容易跨天,所以间隔短了很容易匹配不到。
具体代码如下:
#进行mysql语句层面的匹配,规则为取前后三天的航班进行时间间隔相减,如果两者时间间隔小于一小时且数据只有一条,则认为精确匹配
sql="select key_id,timediff('%s' ,实到) as 时间间隔 from flight_link_chn where 航班日期 between '%s' and '%s' and 机号='%s' having 时间间隔<='01:00:00' and 时间间隔>='00:00:00'" % (ags_datetime,ags_datetime-timedelta(days = 2),ags_datetime+timedelta(days = 2),ags_reg[2:6])
实际测试效果:
2018年1-2月份总快照数量为17954,剔除掉无效数据409条后还剩余有效数据17545条。
进行上述匹配后精确匹配的数据总量为17145条,匹配率97.7%
未匹配的数据大部分为国际航班,可能和无线QAR数据上传延迟有关,比如当段上传失败,后续回到国内再进行上传的,按照我的匹配规则时间间隔太长,导致匹配失败
还有一部分航班日期和航班号相同,但机号不同,显示数据错乱的可能性,具体原因未知