CN114840539A - 数据处理方法、装置、设备和存储介质 - Google Patents
数据处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114840539A CN114840539A CN202210426148.6A CN202210426148A CN114840539A CN 114840539 A CN114840539 A CN 114840539A CN 202210426148 A CN202210426148 A CN 202210426148A CN 114840539 A CN114840539 A CN 114840539A
- Authority
- CN
- China
- Prior art keywords
- data
- version number
- grid
- server
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Remote Sensing (AREA)
- Navigation (AREA)
Abstract
本公开提供了一种数据处理方法、装置、设备和存储介质,涉及计算机技术领域,具体涉及自动驾驶、智能交通等技术领域。数据处理方法包括:响应于服务端发送的更新消息,向所述服务端请求当前版本号的服务端增量数据,所述更新消息是所述服务端在产生所述当前版本号的服务端增量数据后发送的,所述当前版本号的服务端增量数据是所述当前版本号对应的当前周期内发生变化的地图数据;基于所述当前版本号的服务端增量数据的获取情况,确定所述当前版本号的客户端增量数据;在更新前的客户端地图数据之外,添加所述当前版本号的客户端增量数据,以获取更新后的客户端地图数据。本公开可以提高客户端地图数据的时效性。
Description
技术领域
本公开涉及计算机技术领域,具体涉及自动驾驶、智能交通等技术领域,尤其涉及一种数据处理方法、装置、设备和存储介质。
背景技术
自动驾驶车辆(Autonomous vehicles;Self-driving automobile)又称无人驾驶车辆、电脑驾驶车辆或轮式移动机器人,是一种通过电脑***实现无人驾驶的智能车辆。
自动驾驶车辆行驶时可以采用车端内的地图数据。相关技术中,一般是定期更新车端内的全量数据,比如,定期从服务端下载全量数据或者到指定地点进行线下更新。但是,定期更新全量数据的方式限制了数据更新的频率,一般为季度级,进而导致车端地图数据的时效性较差。
发明内容
本公开提供了一种数据处理方法、装置、设备和存储介质。
根据本公开的一方面,提供了一种数据处理方法,包括:响应于服务端发送的更新消息,向所述服务端请求当前版本号的服务端增量数据,所述更新消息是所述服务端在产生所述当前版本号的服务端增量数据后发送的,所述当前版本号的服务端增量数据是所述当前版本号对应的当前周期内发生变化的地图数据;基于所述当前版本号的服务端增量数据的获取情况,确定所述当前版本号的客户端增量数据;在更新前的客户端地图数据之外,添加所述当前版本号的客户端增量数据,以获取更新后的客户端地图数据。
根据本公开的另一方面,提供了一种数据处理装置,包括:请求模块,用于响应于服务端发送的更新消息,向所述服务端请求当前版本号的服务端增量数据,所述更新消息是所述服务端在产生所述当前版本号的服务端增量数据后发送的,所述当前版本号的服务端增量数据是所述当前版本号对应的当前周期内发生变化的地图数据;确定模块,用于基于所述当前版本号的服务端增量数据的获取情况,确定所述当前版本号的客户端增量数据;更新模块,用于在更新前的客户端地图数据之外,添加所述当前版本号的客户端增量数据,以获取更新后的客户端地图数据。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一方面的任一项所述的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据上述任一方面的任一项所述的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据上述任一方面的任一项所述的方法。
根据本公开的另一方面,提供了一种自动驾驶车辆,包括如上述任一方面的任一项所述的电子设备。
根据本公开的技术方案,可以提高客户端地图数据的时效性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开第一实施例的示意图;
图2是本公开实施例中服务端增量数据和车端增量数据的示意图;
图3是根据本公开第二实施例的示意图;
图4是图3对应的***交互图;
图5是本公开实施例中网格交界处的地图元素的示意图;
图6是本公开实施例各个版本号对应的增量索引的示意图;
图7是本公开实施例增量索引的更新过程示意图;
图8是本公开实施例中车端地图数据的存储示意图;
图9是本公开实施例中数据库的组成示意图;
图10是本公开实施例中空间索引的示意图;
图11是本公开实施例中执行查询操作的流程示意图;
图12a~图12c是本公开实施例中执行合并操作的过程示意图;
图13是根据本公开第三实施例的示意图;
图14是根据本公开第四实施例的示意图;
图15是用来实现本公开实施例的数据处理方法的电子设备的示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
相关技术中,车端地图数据一般是采用定期更新全量数据的方式,这种方式限制了数据更新的频率,一般为季度级。
但是,季度级的数据更新方式,会导致车端地图数据的时效性较差,车端地图数据与现实世界的不一致,进而影响车辆的正常行驶。
为了提高车端地图数据的时效性,本公开提供如下实施例。
图1是根据本公开第一实施例的示意图,本实施例提供一种数据处理方法,本实施例提供的方法包括:
101、响应于服务端发送的更新消息,向所述服务端请求当前版本号的服务端增量数据,所述更新消息是所述服务端在产生所述当前版本号的服务端增量数据后发送的,所述当前版本号的服务端增量数据是所述当前版本号对应的当前周期内发生变化的地图数据。
102、基于所述当前版本号的服务端增量数据的获取情况,确定所述当前版本号的客户端增量数据。
103、在更新前的客户端地图数据之外,添加所述当前版本号的客户端增量数据,以获取更新后的客户端地图数据。
本实施例的方法可以应用于客户端,客户端可以包括:车端、移动端(如手机、平板电脑、可穿戴式设备)等。
下面实施例的数据处理方法中以车端为例进行说明,比如,可以由车辆上的自动驾驶***执行,和/或,由车辆上的车机***执行。
服务端,用于生产多个版本的地图数据,生产周期是较小的,比如小时级。
不同版本的地图数据可以用不同的版本号进行标识,比如,多个版本的地图数据的版本号分别是101、102和103。
增量数据是指当前周期内发生变化的地图数据,当前周期是指当前版本号的地图数据的产生时间点与上一版本号的地图数据的产生时间点之间的时间段。
地图数据一般为网格(或称为瓦片)为单位进行组织、处理等。
比如,服务端在t1产生上一版本号的地图数据,在t2产生当前版本号的地图数据,若在[t1,t2]这个时间段内,某个或某些网格内的网格数据发生了变化(比如,对应网格内的地图元素发生了变化),则将发生变化的网格数据作为当前版本号的服务端增量数据。
服务端和车端在存储地图数据时,可以采用增量数据的形式进行存储。相应地,增量数据可以分为服务端增量数据和车端增量数据。
初始的全量地图数据可以称为基线地图数据。服务端的基线地图数据可以称为服务端基线数据,车端的基线地图数据可以称为车端基线数据。
如图2所示,服务端的地图数据可以包括:服务端基线数据和服务端增量数据,服务端基线数据的版本号为101,服务端增量数据可以对应一个或多个版本号,图2中,服务端增量数据的版本号分别为102和103。
版本号为102的服务端增量数据用粗实线且用102标记;版本号为103的服务端增量数据用粗实线且用103标记。
服务端在发生版本更新时,比如,将101版本更新为102版本,或者,将102版本更新为103版本,可以向车端发送更新消息。
车端响应于服务端发送的更新消息,可以向服务端请求服务端增量数据。比如,服务端地图数据从101版本更新为102版本后,车端可以向服务端请求版本号为102的服务端增量数据。
虽然车端可以向服务端请求数据,但是,由于车端与服务端之间的网络连接可能较差甚至无网络,因此,车端可能获取到所请求的数据或者获取不到所请求的数据。
基于车端所请求的服务端增量数据的获取情况,可以确定车端增量数据。即,由于网络的不确定性,同一版本好的车端增量数据与服务端增量数据可能一致或不一致,
比如,如图2所示,假设获取不到的数据称为未知数据,用x表示,针对版本号102,版本号为102的服务端增量数据为5个标记为102的网格数据,但是,版本号为102的车端增量数据包括2个标记为102的网格数据,还包括3个为未知数据(用x标记)。针对版本号103,假设车端从服务端获取到全部的对应版本的增量数据,则版本号为103的服务端增量数据和版本号为103的车端增量数据均包括两个标记为103的网格数据。
确定当前版本号对应的车端增量数据后,可以采用添加的方式,进行车端地图数据的更新。
依然参考图2,假设当前版本号为102,则更新前的车端地图数据为版本号为101的车端基线地图数据,获取版本号为102的车端增量数据后,可以添加版本号为102的车端增量数据,从而更新后的车端地图数据包括:版本号为101的车端基线地图数据,以及版本号为102的车端增量数据。
假设当前版本号为103,则更新前的车端地图数据包括:版本号为101的车端基线地图数据,以及版本号为102的车端增量数据,获取版本号为103的车端增量数据后,可以添加版本号为103的车端增量数据,从而更新后的车端地图数据包括:版本号为101的车端基线地图数据、版本号为102的车端增量数据,以及,版本号为103的车端增量数据。
由于车端地图数据更新时,是采用添加的方式,将当前版本号的车端增量数据,添加到更新前的车端地图数据之外,并不是覆盖某个或某些网格数据的方式,因此,车端地图数据将包括多个版本号的车端地图数据。
本实施例中,采用当前版本号的车端增量数据更新车端地图数据,当前版本号的车端增量数据是响应于服务端的更新消息,基于服务端增量数据的获取情况确定的,更新消息是服务端产生新版本的增量地图数据后发送的,因此,车端增量数据的更新周期与服务端增量地图数据的产生周期一致,一般为小时级,相对于季度级的全量数据更新方式,可以保证车端地图数据及时被更新,提高车端地图数据的时效性,进而在后续查询地图数据时可以查询到最新数据;通过请求增量数据而不是全量数据,可以较快地进行车端地图数据的更新,还可以降低数据传输量,提高传输效率,节省资源开销;通过在更新前的车端地图数据之外,添加新版本对应的车端增量数据,而不是采用覆盖更新前的车端地图数据的方式,可以避免车端与服务端之间的网络连接不佳导致的数据缺失情况,保证车端地图数据的完整性和准确性,以及,在后续查询车端地图数据时还可以起到最优降级,即尽量查询最新版本的车端地图数据的效果。
上述描述了车端地图数据的更新过程,更新后的车端地图数据可以供后续流程使用。比如,车端上安装的应用可以在更新后的车端地图数据中进行查询,基于查询的车端地图数据进行路径导航等操作。又比如,由于更新后的车端地图数据是多个版本的地图数据,为了节省存储资源,提升查询效率等,可以定期对多个版本的地图数据进行合并操作。
图3是根据本公开第二实施例的示意图,本实施例提供一种数据处理方法,图4是图3对应的***交互图。
参见图3,本实施例提供的方法包括:
301、服务端生产当前版本号的服务端增量数据。
其中,服务端的生产周期一般为小时级,即,可以每小时生产一个新版本的服务端地图数据。
具体地,参见图4,服务端可以分为离线服务和在线服务,离线服务内的地图数据生产模块可以离线生成各个版本的服务端地图数据。离线服务生成新版本的服务端地图数据后,可以将新版本的服务端地图数据推送给在线地图数据服务,在图7中表示为发布最新版本数据。
当前版本号是指服务端所发布的最新版本数据的版本号。
初始版本的服务端地图数据可以称为服务端基线数据,非初始版本的服务端地图数据可以称为服务端增量数据。另外,服务端基线数据的增量数据可以认为是服务端基线数据本身。
多个版本的服务端地图数据可以如图2的左侧所示,包括版本号为101的服务端基线数据,版本号为102的服务端增量数据,以及版本号为103的服务端增量数据。
各个版本的服务端地图数据可以采用如下方式生产:
地图数据以网格(或称为瓦片)为单位进行处理,地图数据可以分为n(n为正整数)层,n越大,单个网格的大小越小,比如,m=18,网格的边长为150m,m=15,网格的边长为1200m,具体数值可以根据实际需求调整。
针对同一版本的地图数据,每个网格对应网格数据可以采用该版本内的唯一ID进行标识。上述的唯一ID可以采用GeoHash算法获得,GeoHash算法是一种地址编码方法,能够把二维的空间经纬度数据编码成一维的字符串。
地图元素可以包括点、线、面,网格交界处的点、线、面,可以如图5的(a)~(c)所示。
针对上述的点、线、面,对应的地图数据可以如下生成:
点数据,在相邻的两个网格的网格数据中各存储一份,并互相标记为同位点
线数据,在相邻的网格交界处打断,断点处关联的网格数据中分别生成新的节点(node),并互相标记为同位点。
面数据,在相邻的网格交界处打断,断点处关联的网格数据中分别生成新的node,并互相标记为同位点,与网格的顶点构成新的面数据。
302、服务端向车端发送更新消息。
其中,如图4所示,在线地图数据服务接收到新版本的地图数据后,可以将新版本的版本号发送到消息队列。车机中台服务订阅版本号,消息队列向车机中台服务推送版本更新消息。车机中台服务接收到版本更新消息后向车端的地图应用程序编程接口(Application Programming Interface,API)推送最新版本号。
303、车端响应于服务端发送的更新消息,向所述服务端请求当前版本号的服务端增量数据。
其中,当前版本号即为服务端所推送的最新版本号。
更新消息为推送消息,其中包含当前版本号。
车端接收到包含当前版本号的推送消息后,可以向服务端请求该当前版本号的服务端增量数据。
其中,如图4所示,车端地图数据服务可以包括基线地图数据模块、地图数据缓存模块、在线数据模块。车端基线数据可以存储在基线地图数据模块内;车端从服务端获取的增量数据可以存储在地图数据缓存模块内;在线数据模块用于从服务端实时获取数据。
地图API接收到服务端的更新消息后,可以向车端地图数据服务发送地图数据的读取指令,车端地图数据服务内的在线数据模块可以基于读取指令从在线地图数据服务内拉取最新版本数据。
可以理解的是,地图API的读取指令也可以是基于应用的触发生成,比如,应用需要使用地图数据时,应用可以向地图API发送查询请求,地图API基于查询请求生成读取指令。
由于车端地图数据一般是按照网格组织的,通过地图API可以将车端地图数据的组织结构屏蔽,建立逻辑上的无缝地图,并对上层应用提供地图数据。例如,通过地图API查询某条道路(link)的详情时,上层应用可以不必关注这个link所属的网格,可以根据link_id查询到对应版本的车端地图数据。
另外,服务端基线数据和车端基线数据都可以定期更新,由于基线地图数据是全量数据,其更新周期一般大于服务端生产的增量数据的生产周期。
服务端基线数据固定周期生成,能够减少在线地图数据服务在下发增量数据的时候需要查询的数据层级,减少旧版本数据的存储规模。车端基线数据也定期更新,减少在没有网络的情况使用基线数据过旧导致的badcase。
服务端基线数据和车端基线数据的版本号可以一致或不一致,用户可以指定一个版本号的全量数据作为车端基线数据。但增量数据对应的版本号需要一致。比如,车端基线数据的版本号为102,服务端基线数据的版本号为101,第一个版本的车端增量数据的版本号为103,则版本号103的车端增量数据需要基于版本号103的服务端增量数据的获取情况确定。
304、车端基于所述当前版本号的服务端增量数据的获取情况,确定所述当前版本号的车端增量数据,以及,生成所述当前版本号对应的增量索引,所述增量索引用于表明全量网格中各个网格的车端网格数据的最新版本号。
关于车端增量数据:
其中,由于车端与服务端之间的网络连接的不确定性,同一版本号的服务端增量数据与车端增量数据可以一致或不一致。
具体地,所述服务端增量数据包括:至少一个网格的服务端网格数据;所述车端增量数据包括:至少一个网格的车端网格数据;所述基于所述当前版本号的服务端增量数据的获取情况,确定所述当前版本号的车端增量数据,包括:针对第一网格,将所述当前版本号的所述第一网格的服务端网格数据,作为所述当前版本号的所述第一网格的车端网格数据;针对第二网格,将所述当前版本号的所述第二网格的车端网格数据,设置为未知数据;其中,所述第一网格是获取到的服务端网格数据所属的网格,所述第二网格是未获取到的服务端网格数据所属的网格。
比如,各个版本号的车端增量数据,与对应版本号的服务端增量数据的关系可以如图2所示。其中,未知数据用x标识,非未知数据用对应的版本号(如101、102、103)标识。车端基线数据的增量数据可以认为是车辆基线数据本身。
上述示例中,将第一网格的服务端增量数据作为第一网格的车端网格数据,可以及时更新第一网格的网格数据,保证对应网格的车端网格数据与服务端网格数据的一致性;将第二网格的车端网格数据设置为未知数据,由于第二网格是未获取到的服务端网格数据所属的网格,可以反映出真实的数据获取情况,保证车端地图数据的真实性。
关于增量索引:
其中,可以将所述当前版本号的上一版本号对应的增量索引,作为初始值;基于所述当前版本号的服务端增量数据的获取情况,对所述初始值进行更新,以生成所述当前版本号对应的增量索引。
其中,如图6所示,车端基线数据的版本号为101,其对应的增量索引用第一增量索引601表示,具体数值可以全部为其版本号,即第一增量索引601的各个网格对应的版本号均为101。
若当前版本号为102,可以对版本号101对应的第一增量索引601进行更新后,生成版本号102对应的第二增量索引602。
若当前版本号为103,可以对版本号102对应的第二增量索引602进行更新后,生成版本号103对应的第三增量索引603。
上述示例中,通过逐个版本号对应的增量索引的更新,可以获得各个版本号对应的增量索引。
具体地,针对第一网格,将所述第一网格的车端网格数据的最新版本号更新为所述当前版本号;针对第二网格,将所述所述第二网格的车端网格数据的最新版本号,设置为未知标记。
其中,基于图2所示的各个版本号的服务端增量数据的获取情况,可以获得图6所示的各个版本号对应的增量索引。
比如,当前版本号为102时,针对第一行第二列的网格,由于该网格未获取到数据,因此其对应的版本号用未知标记x表示。针对第二行第三列的网格,由于该网格获取到数据,因此其对应的版本号更新为当前版本号,即102。
又比如,当前版本号为103时,针对第三行第二列的网格,以及第三行第三列的网格,由于这两个网格均获取到数据,因此其对应的版本号更新为当前版本号,即103。
上述示例中,将第一网格对应的版本号更新为当前版本号,将第二网格对应的版本号设置为未知标记,这与车端网格数据的获取情况是一致的,也就是当前版本号对应的增量索引能够反映当前版本号的车端增量数据的最新情况,可以保证增量索引的准确性。
从初始值更新为当前版本号对应的增量索引的具体更新过程可以参见图7。为了更好地说明更新过程,其引入了更新标识。车端基线数据对应的更新标识可以设置为全1。图7以当前版本号为102为例。
如图7所示,初始状态,可以获得101对应的增量索引以及更新标识,分别是全101和全。
中间状态,针对更新标识,将发生变化的网格的更新标识设置为0,以及,将发生变化的网格的版本号设置为未知标记。其中,车端接收的更新消息中可以包含发生变化的网格的网格ID,因此,车端可以获知发生变化的网格,从而将其更新标识设置为0,对应的版本号设置为x。
最终状态,车端基于各个网格的网格数据的获取情况,若获取到网格数据,将对应网格的更新标识更新为1,以及,将对应网格的版本号更新为当前版本号102。若未获取到网格数据,保持对应网格的更新标识和版本号不变,即分别保持为0和x。
最终状态获得的增量索引,即为当前版本号对应的增量索引。
305、车端在更新前的车端地图数据之外,添加所述当前版本号的车端增量数据,以获取更新后的车端地图数据。
由于车端地图数据更新时,是采用添加的方式,将当前版本号的车端增量数据,添加到更新前的车端地图数据之外,并不是覆盖某个或某些网格数据的方式,因此,车端地图数据将包括多个版本号的车端地图数据。
其中,多个版本的车端地图数据可以存储在不同的数据库中。
假设更新前的车端地图数据存储在已有数据库内,则可以将所述当前版本号的车端增量数据存储到当前数据库内,所述当前数据库与所述已有数据库不同。
比如,如图8所示,版本号为101~103的车端地图数据分别存储在101~103对应对应的数据库中。具体地,版本号为101的数据库中存储版本号为101的车端基线数据,版本号为102的数据库中存储版本号为102的车端增量数据,版本号为103的数据库中存储版本号为103的车端增量数据。
上述示例中,多个版本的车端地图数据存储在不同的数据库中,由于不同版本的数据是分别独立存储的,可以在离线应用时提供最优的降级效果。比如无网络状态下,当103版本数据查询不到所需网格数据时,可以向前降级,查询102的网格数据。
地图数据可以分为多种图层,各个图层的数据存储结构可以如下:
针对路网图层数据,其存储结构可以如表1和表2所示:
表1
表2
针对兴趣点(Point of Interest,POI)图层数据,其存储结构可以如表3所示:
表3
针对区域面图层数据,其存储结构可以如表4所示:
表4
上述说明了各个版本的车端增量数据可以存储在不同的数据库内,各个版本对应的增量索引也可以存储在对应版本的数据库内。
比如,参见图9,多个数据库分别用第一数据库、第二数据库和第三数据库表示;每个数据库对应一个版本号,分别对应版本号101、102、103;每个数据库内包括对应版本号的增量索引和车端增量数据。另外,每个数据库内还可以存储相应的空间索引,用于空间检索。
其中,空间索引可以基于对应数据库内的车端增量数据的上述图层数据中的相关标识构建,其结构可以如图10所示。
如图10所示,空间索引表明网格标识(geohash)与路网(用link_id和node_id标识)、POI(用poi_id标识)以及区域面(用polygon_id标识)之间的关联关系。
基于空间索引,可以查询地图元素之间的空间关系,比如,查询某个POI的空间关系时,可以基于最新版本号对应的空间索引中的关联关系,获取该POI同一网格或周围网格内的其他地图元素的信息。
车端获得如图9所示的多个数据库后,后续可以基于该多个数据库执行相关操作,比如,地图数据的查询操作、地图数据的合并操作、空间关系的检索操作等。从而可以基于最新数据进行相关操作,保证操作准确度。
参见图3,以查询操作为例,该方法还可以包括:
306、车端接收车端上安装的应用发送的查询请求。
307、车端响应于所述查询请求,基于所述查询请求对应的增量索引执行查询操作。
具体地,针对查询操作,如图11所示,可以执行:
1101、响应于查询请求,确定第一版本号,所述第一版本号是服务端增量数据的最新版本号。
1102、确定所述第一版本号对应的增量索引。
1103、基于所述第一版本号对应的增量索引,确定当前网格对应的第二版本号,所述当前网格为所述查询请求所查询的地图数据所属的网格,所述第二版本号为所述增量索引表明的所述当前网格对应的版本号。
1104、基于所述第二版本号,获取所述查询请求所查询的地图数据。
上述示例中,第二版本号是所查询的地图数据所属的网格对应的版本号,该对应的版本号基于增量索引确定,增量索引用于表明各个网格的车端网格数据的最新版本号,因此,第二版本号是所查询的地图数据的最新版本号,进而基于第二版本号获得的地图数据是最新数据;另外,增量索引是基于第一版本号确定的,第一版本号是服务端增量数据的最新版本号,因此增量索引也是最新的。因此,可以提升所查询的地图数据与现实世界的一致性,比如,在车端与服务端的网络连接良好时,所查询的地图数据与服务端生成的最新数据是一致的。
其中,查询请求可以是车端上安装的应用(APP)产生的,比如,APP响应于用户的路线规划、绑路(确定车辆当前所处的道路)、检索(比如检索目的地的地址)等操作,产生查询请求。
服务端可以产生不同版本的地图数据,比如,以小时级进行地图数据的更新,产生不同版本的地图数据。
服务端每次产生一个新版本的地图数据后,可以将新版本号推送给车端,从而车端可以获知服务端地图数据的最新版本号。为了区分,服务端地图数据的最新版本号可以称为第一版本号。
车端可以基于第一版本号的服务端增量数据的获取情况,生成第一版本号对应的增量索引。增量索引用于表明全量网格中各个网格的车端网格数据的最新版本号。
不同版本号可以分别对应一组增量索引,比如,参见图6,版本号101对应第一增量索引601,版本号102对应第二增量索引602,版本号103对应第三增量索引603,假设第一版本号为103,则第一版本号对应的增量索引为第三增量索引603。
当前网格是指查询请求所请求的地图数据所属的网格,当前网格的数量可以为一个或多个。
比如,假设全量网格为图6所示的9个网格,当前网格是指这9个网格中的部分或者全部,具体可以基于已有算法确定,比如,查询请求中携带经纬度信息,通过对经纬度进行计算确定出当前网格。
基于第一版本号对应的增量索引,可以确定当前网络对应的第二版本号。
比如,参见图6,假设第一版本号对应的增量索引为第三增量索引603,假设当前网格是图6所示的9个网格中的第一行第一列的网格,则当前网格对应的第二版本号为101。又比如,假设当前网格包括图9所示的9个网格中的全部网格,则当前网格对应的第二版本号分别为101、x、101、x、x、102、101、103、103。
确定当前网格对应的第二版本号后,可以基于所述第二版本号,获取所述查询请求所查询的地图数据。
其中,可以从车端获取上述所查询的地图数据,和/或,从服务端获取上述所查询的地图数据。
具体地,若所述第二版本号不是未知标记,在所述第二版本号的车端增量数据中,获取所述当前网格对应的数据,作为所述查询请求所查询的地图数据;或者,若所述第二版本号是未知标记,且车端与服务端存在网格连接,从所述服务端获取所述第一版本号的服务端增量数据中的所述当前网格对应的数据,作为所述查询请求所查询的地图数据;或者,若所述第二版本号是未知标记,且车端与服务端不存在网络连接,按序查询所述第一版本号之前的版本号对应的增量索引中所述当前网格对应的版本号,直至所查询的版本号不是所述未知标记,在所述不是所述未知标记的所查询的版本号对应的车端增量数据中,获取所述当前网格对应的数据,作为所述查询请求所查询的地图数据。
比如,当前网格是9个网格中的第一行第一列的网格,由于该网格对应的第二版本号为101,则可以在101对应的车端增量数据中,获取当前网格(第一行第一列的网格)对应的数据,作为所查询的地图数据。
又比如,当前网格是9个网格中的全部网格,可以获取全部网格中各个网格对应的最新数据,将各个网格对应的最新数据组成所查询的地图数据。
针对各个网格,比如,针对其中对应的第二版本号为102的网格,可以从102对应的车端增量数据中,获取该网格(第二行第三列的网格)对应的数据,作为该网格(第二行第三列的网格)对应的最新数据。又比如,针对其中的最后一个网格(对应的第二版本号为103),可以从103对应的车端增量数据中,获取该网格(第三行第三列的网格)对应的数据,作为该网格(第三行第三列的网格)对应的最新数据。
另外,由于当前网格对应的第二版本号可能为未知标记(如x),此情况下,若车端与服务端存在网络连接,则可以从服务端获取数据,比如,当前网格是第一行第二列的网格,其对应的第二版本号为x,假设第一版本号为103,若车端与服务端存在网络连接,则可以从版本号为103的服务端增量数据中获取该网格(第一行第二列的网格)的网格数据,参考图2,该数据是标记为102的网格数据,服务端可以将该数据返回给车端作为该网格对应的最新数据。或者,若车端与服务端不存在网络连接,可以在车端降级查询,依然以该网格(第一行第二列的网格)为例,假设车端与服务端不存在网络连接,则可以按序查询下一个版本号对应的增量索引,比如,版本号103对应的增量索引中该网格对应的第二版本号为x,则查询版本号102对应的增量索引中该网格对应的第二版本号,参见图5,版本号为102对应的增量索引中该网格对应的第二版本号依然为x,再查询版本号为101对应的增量索引中该网格对应的第二版本号,该对应的第二版本号为101,不是未知标记x,则可以在版本号为101的车端增量数据(即车端基线数据)中,获取该网格对应的数据作为该网格的最新数据。
上述示例中,基于第二版本号获取所查询的地图数据时,可以从车端获取到最新数据,或者从服务端获取到最新数据,或者从车端获取到尽量新的数据,因此,可以基于实际情况,在车端存储最新数据或者车端未存储最新数据但存在良好网络连接时,能够获取到最新数据,进而可以使用最新数据;在车端未存储最新数据且不存在良好网络连接时,也可以获取到尽量新的数据,实现最优降级查询,最大程度的保证所查询的地图数据与现实世界的一致性。
针对合并操作,可以执行:
所述更新前的地图数据包括:初始版本号的车端基线数据;所述基于所述增量索引,执行地图数据的合并操作,包括:对所述初始版本号的车端基线数据进行复制操作,以获得复制数据;基于所述各个版本号对应的增量索引,对所述复制数据进行更新处理,以获得合并后的车端基线数据,并设置所述合并后的车端基线数据的版本号为所述多个版本号中的最新版本号。
其中,合并操作可以定期执行,假设初始版本号为101,对版本号为101~103版本号的车端地图数据进行合并操作。合并操作的过程可以参见图12a~图12c。
具体地,第一步,如图12a所示,将初始版本号101的车端基线数据复制一份作为复制数据,该复制数据也是待生成的合并后的车端基线数据的数据初始值。另外,将初始版本号101对应的增量索引作为合并后的车端基线数据的增量索引初始值。合并后的车端基线数据的版本号为最新版本号103。
第二步,如图12b所示,对复制数据及其对应的增量索引进行更新。更新可以包括:采用车端增量数据(版本号为102和103)更新对应的网格数据,以及,针对缺失数据(用x标识)可以从服务端获取对应的网格数据。
第三步,如图12c所示,经过更新过程,可以获得合并后的车端基线数据及其对应的增量索引,增量索引表明的各个网格对应的版本号被更新为最新版本号。
另外,之前的版本号为101的车端基线数据以及版本号为102的车端增量数据可以删除或保留,保留可以用于合并后获得的版本号为103的车端基线数据的回滚。
上述示例中,通过对多个版本号的车端地图数据进行合并操作,可以减少数据库的数量,降低存储冗余;还可以在查询数据时,减少查询层级,提升查询效率。
图13是根据本公开第三实施例的示意图,本实施例提供一种数据处理装置。如图13所示,数据处理装置1300包括:获取模块1301、确定模块1302和更新模块1303。
获取模块1301用于响应于服务端发送的更新消息,向所述服务端请求当前版本号的服务端增量数据,所述更新消息是所述服务端在产生所述当前版本号的服务端增量数据后发送的,所述当前版本号的服务端增量数据是所述当前版本号对应的当前周期内发生变化的地图数据;确定模块1302用于基于所述当前版本号的服务端增量数据的获取情况,确定所述当前版本号的客户端增量数据;更新模块1303用于在更新前的客户端地图数据之外,添加所述当前版本号的客户端增量数据,以获取更新后的客户端地图数据。
本实施例中,采用当前版本号的客户端增量数据更新客户端地图数据,当前版本号的客户端增量数据是响应于服务端的更新消息,基于服务端增量数据的获取情况确定的,更新消息是服务端产生新版本的地图数据后发送的,因此,客户端增量数据的更新周期与服务端产生地图数据的产生周期一致,一般为小时级,相对于季度级的全量数据更新方式,可以保证客户端地图数据及时被更新,提高客户端地图数据的时效性,进而在后续查询地图数据时可以查询到最新数据;通过请求增量数据而不是全量数据,可以降低数据传输量,提高传输效率,节省资源开销;通过在更新前的客户端地图数据之外,添加新版本对应的客户端增量数据,而不是采用覆盖更新前的客户端地图数据的方式,可以避免客户端与服务端之间的网络连接不佳导致的数据缺失情况,保证客户端地图数据的完整性和准确性,以及,在后续查询客户端地图数据时还可以起到最优降级,即尽量查询最新版本的客户端地图数据的效果。
一些实施例中,所述服务端增量数据包括:至少一个网格的服务端网格数据;所述客户端增量数据包括:至少一个网格的客户端网格数据;所述确定模块1302进一步用于:针对第一网格,将所述当前版本号的所述第一网格的服务端网格数据,作为所述当前版本号的所述第一网格的客户端网格数据;针对第二网格,将所述当前版本号的所述第二网格的客户端网格数据,设置为未知数据;其中,所述第一网格是获取到的服务端网格数据所属的网格,所述第二网格是未获取到的服务端网格数据所属的网格。
上述示例中,将第一网格的服务端增量数据作为第一网格的客户端网格数据,可以及时更新第一网格的网格数据,保证对应网格的客户端网格数据与服务端网格数据的一致性;将第二网格的客户端网格数据设置为未知数据,由于第二网格是未获取到的服务端网格数据所属的网格,可以反映出真实的数据获取情况,保证客户端地图数据的真实性。
一些实施例中,所述更新前的客户端地图数据存储在已有数据库内;所述更新模块1303进一步用于:将所述当前版本号的客户端增量数据存储到当前数据库内,所述当前数据库与所述已有数据库不同。
上述示例中,多个版本的客户端地图数据存储在不同的数据库中,由于不同版本的数据是分别独立存储的,可以在离线应用时提供最优的降级效果。
一些实施例中,所述更新后的客户端地图数据包括多个版本号的客户端地图数据,所述多个版本号的客户端地图数据中各个版本号的客户端地图数据包括至少一个网格的客户端网格数据;所述装置还包括:生成模块,用于生成所述各个版本号对应的增量索引,所述所述增量索引用于表明全量网格中各个网格的客户端网格数据的最新版本号;处理模块,用于基于所述增量索引,执行查询操作或者合并操作。
上述示例中,可以基于最新数据进行相关操作,保证操作准确度。
一些实施例中,所述各个版本号对应的增量索引包括:所述当前版本号对应的增量索引;所述生成模块进一步用于:将所述当前版本号的上一版本号对应的增量索引,作为初始值;基于所述当前版本号的服务端增量数据的获取情况,对所述初始值进行更新,以生成所述当前版本号对应的增量索引。
上述示例中,通过逐个版本号对应的增量索引的更新,可以获得各个版本号对应的增量索引。
一些实施例中,所述当前版本号的服务端增量数据包括:至少一个网格的服务端网格数据;所述生成模块进一步用于:针对第一网格,将所述第一网格的客户端网格数据的最新版本号更新为所述当前版本号;针对第二网格,将所述所述第二网格的客户端网格数据的最新版本号,设置为未知标记;其中,所述第一网格是获取到的服务端网格数据所属的网格,所述第二网格是未获取到的服务端网格数据所属的网格。
上述示例中,将第一网格对应的版本号更新为当前版本号,将第二网格对应的版本号设置为未知标记,这与客户端网格数据的获取情况是一致的,也就是当前版本号对应的增量索引能够反映当前版本号的客户端增量数据的最新情况,可以保证增量索引的准确性。
一些实施例中,所述处理模块进一步用于:响应于查询请求,确定第一版本号,所述第一版本号是服务端增量数据的最新版本号;确定所述第一版本号对应的增量索引;基于所述第一版本号对应的增量索引,确定当前网格对应的第二版本号,所述当前网格为所述查询请求所查询的地图数据所属的网格,所述第二版本号为所述增量索引表明的所述当前网格对应的版本号;基于所述第二版本号,获取所述查询请求所查询的地图数据。
上述示例中,第二版本号是所查询的地图数据所属的网格对应的版本号,该对应的版本号基于增量索引确定,增量索引用于表明各个网格的客户端网格数据的最新版本号,因此,第二版本号是所查询的地图数据的最新版本号,进而基于第二版本号获得的地图数据是最新数据;另外,增量索引是基于第一版本号确定的,第一版本号是服务端增量数据的最新版本号,因此增量索引也是最新的。因此,可以提升所查询的地图数据与现实世界的一致性。
一些实施例中,所述处理模块进一步用于:若所述第二版本号不是未知标记,在所述第二版本号的客户端增量数据中,获取所述当前网格对应的数据,作为所述查询请求所查询的地图数据;或者,若所述第二版本号是未知标记,且客户端与服务端存在网络连接,从所述服务端获取所述第一版本号的服务端增量数据中的所述当前网格对应的数据,作为所述查询请求所查询的地图数据;或者,若所述第二版本号是未知标记,且客户端与服务端不存在网络连接,按序查询所述第一版本号之前的版本号对应的增量索引中所述当前网格对应的版本号,直至所查询的版本号不是所述未知标记,在不是所述未知标记的所查询的版本号对应的客户端增量数据中,获取所述当前网格对应的数据,作为所述查询请求所查询的地图数据。
上述示例中,基于第二版本号获取所查询的地图数据时,可以从客户端获取到最新数据,或者从服务端获取到最新数据,或者从客户端获取到尽量新的数据,因此,可以基于实际情况,在客户端存储最新数据或者客户端未存储最新数据但存在良好网络连接时,能够获取到最新数据,进而可以使用最新数据;在客户端未存储最新数据且不存在良好网络连接时,也可以获取到尽量新的数据,实现最优降级查询,最大程度的保证所查询的地图数据与现实世界的一致性。
一些实施例中,所述处理模块进一步用于:所述更新前的地图数据包括:初始版本号的客户端基线数据;所述基于所述增量索引,执行地图数据的合并操作,包括:对所述初始版本号的客户端基线数据进行复制操作,以获得复制数据;基于所述各个版本号对应的增量索引,对所述复制数据进行更新处理,以获得合并后的客户端基线数据,并设置所述合并后的客户端基线数据的版本号为所述多个版本号中的最新版本号。
上述示例中,通过对多个版本号的客户端地图数据进行合并操作,可以减少数据库的数量,降低存储冗余;还可以在查询数据时,减少查询层级,提升查询效率。
可以理解的是,本公开实施例中,不同实施例中的相同或相似内容可以相互参考。
可以理解的是,本公开实施例中的“第一”、“第二”等只是用于区分,不表示重要程度高低、时序先后等。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
图14是根据本公开第四实施例的示意图,本实施例提供一种自动驾驶车辆。参见图14,自动驾驶车辆1400包括电子设备1401。关于电子设备1401的说明可以参见相关实施例。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图15示出了可以用来实施本公开的实施例的示例电子设备1500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图15所示,电子设备1500包括计算单元1501,其可以根据存储在只读存储器(ROM)1502中的计算机程序或者从存储单元1508加载到随机访问存储器(RAM)1503中的计算机程序,来执行各种适当的动作和处理。在RAM 1503中,还可存储电子设备1500操作所需的各种程序和数据。计算单元1501、ROM 1502以及RAM 1503通过总线1504彼此相连。输入/输出(I/O)接口1505也连接至总线1504。
电子设备1500中的多个部件连接至I/O接口1505,包括:输入单元1506,例如键盘、鼠标等;输出单元1507,例如各种类型的显示器、扬声器等;存储单元1508,例如磁盘、光盘等;以及通信单元1509,例如网卡、调制解调器、无线通信收发机等。通信单元1509允许电子设备1500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1501执行上文所描述的各个方法和处理,例如数据处理方法。例如,在一些实施例中,数据处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1502和/或通信单元1509而被载入和/或安装到电子设备1500上。当计算机程序加载到RAM 1503并由计算单元1501执行时,可以执行上文描述的数据处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元1501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据处理方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (22)
1.一种数据处理方法,包括:
响应于服务端发送的更新消息,向所述服务端请求当前版本号的服务端增量数据,所述更新消息是所述服务端在产生所述当前版本号的服务端增量数据后发送的,所述当前版本号的服务端增量数据是所述当前版本号对应的当前周期内发生变化的地图数据;
基于所述当前版本号的服务端增量数据的获取情况,确定所述当前版本号的客户端增量数据;
在更新前的客户端地图数据之外,添加所述当前版本号的客户端增量数据,以获取更新后的客户端地图数据。
2.根据权利要求1所述的方法,其中,
所述服务端增量数据包括:至少一个网格的服务端网格数据;
所述客户端增量数据包括:至少一个网格的客户端网格数据;
所述基于所述当前版本号的服务端增量数据的获取情况,确定所述当前版本号的客户端增量数据,包括:
针对第一网格,将所述当前版本号的所述第一网格的服务端网格数据,作为所述当前版本号的所述第一网格的客户端网格数据;
针对第二网格,将所述当前版本号的所述第二网格的客户端网格数据,设置为未知数据;
其中,所述第一网格是获取到的服务端网格数据所属的网格,所述第二网格是未获取到的服务端网格数据所属的网格。
3.根据权利要求1所述的方法,其中,
所述更新前的客户端地图数据存储在已有数据库内;
所述在更新前的客户端地图数据之外,添加所述当前版本号的客户端增量数据,包括:
将所述当前版本号的客户端增量数据存储到当前数据库内,所述当前数据库与所述已有数据库不同。
4.根据权利要求1-3任一项所述的方法,其中,
所述更新后的客户端地图数据包括多个版本号的客户端地图数据,所述多个版本号的客户端地图数据中各个版本号的客户端地图数据包括至少一个网格的客户端网格数据;
所述方法还包括:
生成所述各个版本号对应的增量索引,所述所述增量索引用于表明全量网格中各个网格的客户端网格数据的最新版本号;
基于所述增量索引,执行查询操作或者合并操作。
5.根据权利要求4所述的方法,其中,
所述各个版本号对应的增量索引包括:所述当前版本号对应的增量索引;
生成所述当前版本号对应的增量索引,包括:
将所述当前版本号的上一版本号对应的增量索引,作为初始值;
基于所述当前版本号的服务端增量数据的获取情况,对所述初始值进行更新,以生成所述当前版本号对应的增量索引。
6.根据权利要求5所述的方法,其中,
所述当前版本号的服务端增量数据包括:至少一个网格的服务端网格数据;
所述基于所述当前版本号的服务端增量数据的获取情况,对所述初始值进行更新,包括:
针对第一网格,将所述第一网格的客户端网格数据的最新版本号更新为所述当前版本号;
针对第二网格,将所述所述第二网格的客户端网格数据的最新版本号,设置为未知标记;
其中,所述第一网格是获取到的服务端网格数据所属的网格,所述第二网格是未获取到的服务端网格数据所属的网格。
7.根据权利要求4所述的方法,其中,所述基于所述增量索引,执行查询操作,包括:
响应于查询请求,确定第一版本号,所述第一版本号是服务端增量数据的最新版本号;
确定所述第一版本号对应的增量索引;
基于所述第一版本号对应的增量索引,确定当前网格对应的第二版本号,所述当前网格为所述查询请求所查询的地图数据所属的网格,所述第二版本号为所述增量索引表明的所述当前网格对应的版本号;
基于所述第二版本号和所述更新后的客户端地图数据,获取所述查询请求所查询的地图数据。
8.根据权利要求7所述的方法,其中,所述基于所述第二版本号,获取所述查询请求所查询的地图数据,包括:
若所述第二版本号不是未知标记,在所述第二版本号的客户端增量数据中,获取所述当前网格对应的数据,作为所述查询请求所查询的地图数据;或者,
若所述第二版本号是未知标记,且客户端与服务端存在网络连接,从所述服务端获取所述第一版本号的服务端增量数据中的所述当前网格对应的数据,作为所述查询请求所查询的地图数据;或者,
若所述第二版本号是未知标记,且客户端与服务端不存在网络连接,按序查询所述第一版本号之前的版本号对应的增量索引中所述当前网格对应的版本号,直至所查询的版本号不是所述未知标记,在不是所述未知标记的所查询的版本号对应的客户端增量数据中,获取所述当前网格对应的数据,作为所述查询请求所查询的地图数据。
9.根据权利要求4所述的方法,其中,
所述更新前的地图数据包括:初始版本号的客户端基线数据;
所述基于所述增量索引,执行地图数据的合并操作,包括:
对所述初始版本号的客户端基线数据进行复制操作,以获得复制数据;
基于所述各个版本号对应的增量索引,对所述复制数据进行更新处理,以获得合并后的客户端基线数据,并设置所述合并后的客户端基线数据的版本号为所述多个版本号中的最新版本号。
10.一种数据处理装置,包括:
获取模块,用于响应于服务端发送的更新消息,向所述服务端请求当前版本号的服务端增量数据,所述更新消息是所述服务端在产生所述当前版本号的服务端增量数据后发送的,所述当前版本号的服务端增量数据是所述当前版本号对应的当前周期内发生变化的地图数据;
确定模块,用于基于所述当前版本号的服务端增量数据的获取情况,确定所述当前版本号的客户端增量数据;
更新模块,用于在更新前的客户端地图数据之外,添加所述当前版本号的客户端增量数据,以获取更新后的客户端地图数据。
11.根据权利要求10所述的装置,其中,
所述服务端增量数据包括:至少一个网格的服务端网格数据;
所述客户端增量数据包括:至少一个网格的客户端网格数据;
所述确定模块进一步用于:
针对第一网格,将所述当前版本号的所述第一网格的服务端网格数据,作为所述当前版本号的所述第一网格的客户端网格数据;
针对第二网格,将所述当前版本号的所述第二网格的客户端网格数据,设置为未知数据;
其中,所述第一网格是获取到的服务端网格数据所属的网格,所述第二网格是未获取到的服务端网格数据所属的网格。
12.根据权利要求10所述的装置,其中,
所述更新前的客户端地图数据存储在已有数据库内;
所述更新模块进一步用于:
将所述当前版本号的客户端增量数据存储到当前数据库内,所述当前数据库与所述已有数据库不同。
13.根据权利要求10-12任一项所述的装置,其中,
所述更新后的客户端地图数据包括多个版本号的客户端地图数据,所述多个版本号的客户端地图数据中各个版本号的客户端地图数据包括至少一个网格的客户端网格数据;
所述装置还包括:
生成模块,用于生成所述各个版本号对应的增量索引,所述所述增量索引用于表明全量网格中各个网格的客户端网格数据的最新版本号;
处理模块,用于基于所述增量索引,执行查询操作或者合并操作。
14.根据权利要求13所述的装置,其中,
所述各个版本号对应的增量索引包括:所述当前版本号对应的增量索引;
所述生成模块进一步用于:
将所述当前版本号的上一版本号对应的增量索引,作为初始值;
基于所述当前版本号的服务端增量数据的获取情况,对所述初始值进行更新,以生成所述当前版本号对应的增量索引。
15.根据权利要求14所述的装置,其中,
所述当前版本号的服务端增量数据包括:至少一个网格的服务端网格数据;
所述生成模块进一步用于:
针对第一网格,将所述第一网格的客户端网格数据的最新版本号更新为所述当前版本号;
针对第二网格,将所述所述第二网格的客户端网格数据的最新版本号,设置为未知标记;
其中,所述第一网格是获取到的服务端网格数据所属的网格,所述第二网格是未获取到的服务端网格数据所属的网格。
16.根据权利要求13所述的装置,其中,所述处理模块进一步用于:
响应于查询请求,确定第一版本号,所述第一版本号是服务端增量数据的最新版本号;
确定所述第一版本号对应的增量索引;
基于所述第一版本号对应的增量索引,确定当前网格对应的第二版本号,所述当前网格为所述查询请求所查询的地图数据所属的网格,所述第二版本号为所述增量索引表明的所述当前网格对应的版本号;
基于所述第二版本号,获取所述查询请求所查询的地图数据。
17.根据权利要求13所述的装置,其中,所述处理模块进一步用于:
若所述第二版本号不是未知标记,在所述第二版本号的客户端增量数据中,获取所述当前网格对应的数据,作为所述查询请求所查询的地图数据;或者,
若所述第二版本号是未知标记,且客户端与服务端存在网络连接,从所述服务端获取所述第一版本号的服务端增量数据中的所述当前网格对应的数据,作为所述查询请求所查询的地图数据;或者,
若所述第二版本号是未知标记,且客户端与服务端不存在网络连接,按序查询所述第一版本号之前的版本号对应的增量索引中所述当前网格对应的版本号,直至所查询的版本号不是所述未知标记,在不是所述未知标记的所查询的版本号对应的客户端增量数据中,获取所述当前网格对应的数据,作为所述查询请求所查询的地图数据。
18.根据权利要求13所述的装置,其中,所述处理模块进一步用于:
所述更新前的地图数据包括:初始版本号的客户端基线数据;
所述基于所述增量索引,执行地图数据的合并操作,包括:
对所述初始版本号的客户端基线数据进行复制操作,以获得复制数据;
基于所述各个版本号对应的增量索引,对所述复制数据进行更新处理,以获得合并后的客户端基线数据,并设置所述合并后的客户端基线数据的版本号为所述多个版本号中的最新版本号。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-9中任一项所述的方法。
21.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-9中任一项所述的方法。
22.一种自动驾驶车辆,包括:如权利要求19所述的电子设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210426148.6A CN114840539A (zh) | 2022-04-21 | 2022-04-21 | 数据处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210426148.6A CN114840539A (zh) | 2022-04-21 | 2022-04-21 | 数据处理方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114840539A true CN114840539A (zh) | 2022-08-02 |
Family
ID=82565897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210426148.6A Pending CN114840539A (zh) | 2022-04-21 | 2022-04-21 | 数据处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114840539A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115905266A (zh) * | 2022-12-29 | 2023-04-04 | 支付宝(杭州)信息技术有限公司 | 图结构数据的处理方法和用于图结构数据的存储引擎 |
-
2022
- 2022-04-21 CN CN202210426148.6A patent/CN114840539A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115905266A (zh) * | 2022-12-29 | 2023-04-04 | 支付宝(杭州)信息技术有限公司 | 图结构数据的处理方法和用于图结构数据的存储引擎 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11550826B2 (en) | Method and system for generating a geocode trie and facilitating reverse geocode lookups | |
US20210108931A1 (en) | Method and apparatus for determining hybrid travel route, device and storage medium | |
CN113155141A (zh) | 地图的生成方法、装置、电子设备及存储介质 | |
CN109933585B (zh) | 数据查询方法和数据查询*** | |
CN110941686A (zh) | 一种定位地图处理的方法和装置 | |
CN114880337B (zh) | 地图数据一体化更新方法、装置、设备以及存储介质 | |
CN114661736B (zh) | 电子地图更新方法、装置、电子设备、存储介质及产品 | |
CN110895591A (zh) | 一种定位自提点的方法和装置 | |
CN111859187A (zh) | 基于分布式图数据库的poi查询方法、装置、设备及介质 | |
CN114840539A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN111339191A (zh) | 一种区块链的数据存储方法、装置、设备和介质 | |
CN111259090A (zh) | 关系数据的图生成方法、装置、电子设备和存储介质 | |
CN113344074A (zh) | 模型训练方法、装置、设备及存储介质 | |
CN112433757A (zh) | 一种确定接口调用关系的方法和装置 | |
CN111290714A (zh) | 数据读取方法和装置 | |
CN115905322A (zh) | 业务处理方法、装置、电子设备及存储介质 | |
CN116320033A (zh) | 一种资源调度优化方法及装置 | |
CN113139258B (zh) | 道路数据处理方法、装置、设备及存储介质 | |
CN113986866A (zh) | 一种大规模点云数据的处理方法、装置、设备及介质 | |
CN113868555A (zh) | 一种轨迹检索方法、装置、设备以及存储介质 | |
CN114036166A (zh) | 高精地图数据更新方法、装置、电子设备以及存储介质 | |
CN114138925A (zh) | 位置点所属区域检索方法、装置、电子设备、介质及产品 | |
CN114330807A (zh) | 路线的确定方法、装置和电子设备 | |
CN113656144B (zh) | 一种数据发布***、方法、装置、电子设备及存储介质 | |
CN112948461B (zh) | 日程数据处理的方法、设备、存储介质和程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |