一种基于实时地理位置数据流处理方法

文档序号:6523749阅读:200来源:国知局
一种基于实时地理位置数据流处理方法
【专利摘要】本发明涉及交通信息【技术领域】,提供了一种基于分布式计算的实时地理位置数据流处理方法,实现了对实时交通数据的大规模可靠的实时计算处理,包括:以一个包含了多个逻辑处理节点的特定拓扑结构来表示处理框架,实时数据流将会在该拓扑结构中以特定的方法流经各个逻辑处理节点,各个逻辑处理节点包含了数据流接收节点、数据流解析节点、数据修正节点、数据一致性保证节点、数据计算与写入节点。本发明还提供了一种基于分布式计算的实时地理位置数据流处理系统。本发明能够实时地清洗、修正、计算处理大量的实时地理位置数据,保证了数据结果的时效性,而且保证了数据计算的可靠性、数据一致性、和计算规模的可扩展性。
【专利说明】—种基于实时地理位置数据流处理方法
【技术领域】
[0001]本发明涉及实时交通【技术领域】,特别是涉及一种基于分布式计算的实时地理位置数据流处理方法及系统。
【背景技术】
[0002]近年来城市机动车的数量急速增长,引发了许多诸如堵车、停车难、打车难等严重影响老百姓出行质量的问题。同时城市的交通网络也日趋复杂,对一个完善的管理系统的要求越来越高。在未来构建智能城市的蓝图中,智能交通可谓是重中之重。大数据时代的到来为智能交通的建立提供了一个契机,然而数据量的爆炸性增长,如何高效地处理这些数据成为了一个急需解决的问题,其中一个思路就是在数据产生时实时处理这些数据,一方面减少后期计算的压力,一方面又可以提供高时效性的数据服务。
[0003]实时交通数据主要有一下特点:(1)数据的维度大,不但包含了 GPS载体的位置坐标信息,而且还包含了载体的状态信息,如当前到达的位置名称、实时速度、实时海拔高度、载体设备的状态等等,因此要求处理框架能够识别并且支持各个维度的数据的计算。(2)数据量大,由于GPS载体的多样性,包含了公交车、出租车、物流车、私家车、个人手机等等,并且GPS载体的数量巨大,因此每秒产生的数据量极其巨大,因此要求处理框架能够可规模化扩展以承担海量实时数据的分发和计算。(3)异常数据多,GPS设备种类众多,受到卫星定位的精度,定位设备的限制,网络信号等多种客观并且不可预知的因素的影响,导致数据中存在大量不可预知的数据,因此要求处理框架能够实时高效地清洗或者修正这些异常数据。
[0004]现有最常用的技术把接收的数据保存在存储介质中,由后台处理单元在固定的时间间隔进行批量处理计算。
[0005]由于现有的常用技术使用批量处理实时接收到的数据,无法保证时效性,可靠性、数据一致性、和计算规模的可扩展性。

【发明内容】

[0006]本发明采用一种基于分布式计算的实时地理位置数据流处理方法,实现了对实施交通数据的大规模可靠的实时计算处理,保证了数据的可靠性,一致性和计算规模的可扩展性。
[0007]本发明采用如下方案:
[0008]一种基于分布式计算的实时地理位置数据流处理方法,包括:
[0009]获取实时地理位置数据;
[0010]对所述数据进行解析;
[0011]对解析后得到的异常数据进行修正;
[0012]对解析后得到的正确数据和通过修正异常数据后得到的正确数据进行一致性操作;[0013]对一致性操作后得到的数据进行计算;
[0014]将经过计算得到的数据写入数据库。
[0015]优选地,所述获取的实时地理位置数据为二进制数据,可以通过网络socket读入,也可以是数据存储介质中的文件读入。
[0016]优选地,在所述对所述数据进行解析的步骤中,将所述获取到的每份实时地理位置数据解析成为独立的字段。
[0017]优选地,在所述对解析后得到的数据进行修正的步骤中,忽略无异常的数据记录,只处理异常的数据记录。
[0018]优选地,所述数据获取,数据解析,数据修正,数据计算,数据写入,按shufflegrouping机制和field grouping机制在当前步骤的多个线程和进程中进行分发,数据在各个线程和进程独立地进行计算处理。
[0019]优选地,所述数据在各个线程或进程之间的分发机制包含shuffle grouping机制和 field grouping 机制。
[0020]一种基于分布式计算的实时地理位置数据流处理系统,其特征在于:所述系统包括数据获取模块,数据解析模块,数据修正模块,数据一致性保证模块,数据计算模块和数据写入模块;其特征在于,所述系统采用权利要求1?6任一项所述的方法进行数据流处理。
[0021]本发明公开的一种基于分布式计算的实时地理位置数据流处理方法及系统,通过数据获取,数据解析,数据修正,数据一致性操作,数据计算和数据写入,能实现对实时交通数据的大规模可靠的实时计算处理。保证了数据的可靠性,一致性和计算规模的可扩展性。
【专利附图】

【附图说明】
[0022]图1为本发明实施例1 一种基于分布式计算的实时地理位置数据流处理方法;
[0023]图2为本发明实施例2 —种基于分布式计算的实时地理位置数据流处理系统。
【具体实施方式】
[0024]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0025]本发明实施例提供了一种基于分布式计算的实时地理位置数据流处理方法,其特征在于,包括:
[0026]获取实时地理位置数据;
[0027]对所述数据进行解析;
[0028]对解析后得到的异常数据进行修正;
[0029]对解析后得到的正确数据和通过修正异常数据后得到的正确数据进行一致性操作;
[0030]对一致性操作后得到的数据进行计算;
[0031 ] 将经过计算得到的数据写入数据库。
[0032]本发明实施例还提供了一种基于分布式计算的实时地理位置数据流处理系统,所述系统包括数据获取模块,数据解析模块,数据修正模块,数据一致性保证模块,数据计算模块和数据写入模块,所述系统采用前述的方法进行数据流处理。
[0033]本发明实施例通过数据获取,数据解析,数据修正,数据一致性保证,数据计算模块和数据写入,能实现对实时交通数据的大规模可靠的实时计算处理。且能够保证实时性、一致性、可靠性和计算规模的可扩展性。
[0034]下面对本发明进行详细阐述。
[0035]实施例1:
[0036]请参阅图1所示,为本发明一种基于分布式计算的实时地理位置数据流处理方法流程图。该方法包括下述步骤:
[0037]步骤S1:获取实时地理位置数据。
[0038]该步骤获取实时地理位置数据。为了更好地保证数据接收的同步性和一致性,该步骤只用一个进程来执行。数据接收模块把数据流按每个数据记录的大小进行划分,然后每个数据记录的原始二进制数据独立地发送到下个步骤。该步骤的数据在进程中的分发机制包含 shuffle grouping 机制和 field grouping 机制。
[0039]步骤S2:对获取所述数据进行解析。
[0040]该步骤对步骤SI中发送的二进制数据进行解析,由多个进程来执行,将原始数据为一串二进制编码的数据,解析成为独立的字段,该步骤的数据在进程中的分发机制采用shuffle grouping 机制。
[0041]步骤S3:对所述解析后得到的数据进行清洗,异常数据进行修正。
[0042]该步骤对步骤S2发送的数据进行记录,忽略无异常的数据记录,只处理异常的数据记录,该步骤基于静态数据和历史数据,根据一类特定的数据记录,通过不同的计算方法修正异常数据。该步骤中相同属性的数据记录被同一个进程接受处理,该步骤使用FieldsGrouping机制进行分发所接收到的数据。
[0043]步骤S4:对所述解析后得到的正确数据和通过清洗、修正异常数据后得到的正确数据进行一致性操作。
[0044]该步骤对步骤S2及步骤S3发出的数据进行数据一致性操作。由于数据修正只接收异常数据记录而忽略无异常的数据记录,导致数据在经过了数据解析及数据修正后数据顺序不正确。数据一致性操作将按照具有特定属性数据的记录对顺序不正确的数据进行调整。该步骤中,具有特定属性数据记录被分发到同一个进程,该步骤使用Fields Grouping机制分发所接收到的数据。数据一致性操作可以是如下操作:例如在出租车实时位置应用中,检查timestamp是否小于已经接收到的该car_id数据的最新timestamp,如果是,贝Ij表明该位置数据已经过期,可以去掉,或者做其他处理。
[0045]步骤S5:对所述一致性操作后得到的数据进行计算。
[0046]该步骤对步骤S4发送的数据执行计算。该步骤的数据在进程中的分发机制采用shuffle grouping机制。计算方式根据不同的应用而不同:例如在出租车实时位置的应用中,可以根据数据中的GPS坐标点(lat, 1n),结合静态数据(如GIS道路数据),计算得到该出租车所处的道路名称等等;或者,在实时公交应用中,根据数据的GPS坐标点(lat,1n),计算得到该公交车是否到站,是否离站,或者位于公交线路的哪个区间,等等。
[0047]步骤S6:对所述经过计算后得到的数据写入数据库。[0048]该步骤将步骤S5发出的数据写入数据库。
[0049]实施例2:
[0050]本实施例提供了一种基于分布式的实时地理位置数据流处理系统。请参阅图2所示,为用户操作本发明实施例3 —种基于分布式的实时地理位置数据流处理系统示意图。实施例3提供的该系统用于实现各个模块对数据流的处理,系统包括数据获取模块,数据解析模块,数据修正模块,数据一致性保证模块,数据计算模块和数据写入模块,该系统采用实施例1的方法进行人机交互。
[0051]步骤S1:数据获取模块获取实时地理位置数据。
[0052]该步骤通过数据获取模块获取实时地理位置数据。为了更好地保证数据接收的同步性和一致性,该步骤只用一个进程来执行。数据接收模块把数据流按每个数据记录的大小进行划分,然后每个数据记录的原始二进制数据独立地发送给数据解析模块。该步骤的数据在进程中的的分发机制包含shuffle grouping机制和field grouping机制。
[0053]步骤S2:数据解析模块对获取所述数据进行解析。
[0054]该步骤通过数据解析模块对数据获取模块发送的原始二进制数据进行解析,由多个进程来执行,解析为一个独立的数据记录,该步骤的数据在进程中的的分发机制采用shuffle grouping 机制。
[0055]步骤S3:数据修正模块对所述解析后得到的异常数据进行修正。
[0056]该步骤通过数据修正模块对数据解析模块输出的已经解析完毕的数据进行记录。数据修正模块忽略无异常的数据记录,只处理异常的数据记录,数据修正模块基于静态数据和历史数据,根据一类特定的数据记录,通过不同的计算方法修正异常数据。该步骤中相同属性的数据记录被同一个进程接受处理,该步骤使用Fields Grouping机制进行分发所接收到的数据。
[0057]步骤S4:数据一致性操作模块对所述解析后得到的正确数据和通过修正异常数据后得到的正确数据进行一致性操作。
[0058]该步骤通过数据一致性保证模块接收数据解析模块输出的已经解析完毕的数据记录中无异常的数据记录及数据修正模块修正后得到的无异常数据记录。由于数据修正模块只接受异常数据记录而忽略无异常的数据记录,导致数据在经过了解析模块和修正模块后数据顺序不正确。数据一致性保证模块将具有特定属性数据记录对顺序不正确的数据通过具有特定属性数据记录的顺序进行调整。该步骤中,具有特定属性数据记录被分发到同一个进程,该步骤使用Fields Grouping机制分发所接收到的数据。
[0059]步骤S5:数据计算模块对所述一致性操作后得到的数据进行计算。
[0060]该步骤通过数据计算模块接收数据一致性保证模块发送的数据,并执行计算。该步骤的数据在进程中的分发机制采用shuffle grouping机制。
[0061]步骤S6:数据写入模块对所述经过计算后得到的数据写入数据库。
[0062]该步骤通过数据写入模块接收数据计算模块执行计算后得到的数据,并且将数据写入数据库。
[0063]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于分布式计算的实时地理位置数据流处理方法,其特征在于,包括: 获取实时地理位置数据; 对所述数据进行解析; 对解析后得到的异常数据进行修正; 对解析后得到的正确数据和通过修正异常数据后得到的正确数据进行一致性操作; 对一致性操作后得到的数据进行计算; 将经过计算得到的数据写入数据库。
2.根据权利要求1所述的方法,其特征在于:所述获取的实时地理位置数据为二进制数据,可以通过网络socket读入,也可以是数据存储介质中的文件读入。
3.根据权利要求1所述的方法,其特征在于:在所述对所述数据进行解析的步骤中,将所述获取到的每份实时地理位置数据解析成为独立的字段。
4.根据权利要求1所述的方法,其特征在于:在所述对解析后得到的数据进行修正的步骤中,忽略无异常的数据记录,只处理异常的数据记录。
5.根据权利要求1所述的方法,其特征在于:所述数据获取,数据解析,数据修正,数据计算,数据写入,按shuffle grouping机制和field grouping机制在当前步骤的多个线程和进程中进行分发,数据在各个线程和进程独立地进行计算处理。
6.根据权利要求1所述的方法,其特征在于:所述数据在各个线程或进程之间的分发机制包含 shuffle grouping 机制和 field grouping 机制。
7.一种基于分布式计算的实时地理位置数据流处理系统,其特征在于:所述系统包括数据获取模块,数据解析模块,数据修正模块,数据一致性保证模块,数据计算模块和数据写入模块;其特征在于,所述系统采用权利要求1?6任一项所述的方法进行数据流处理。
【文档编号】G06F17/30GK103699607SQ201310686779
【公开日】2014年4月2日 申请日期:2013年12月12日 优先权日:2013年12月12日
【发明者】邹瑜斌, 张帆, 彭贤斌, 须成忠 申请人:深圳先进技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1