[发明专利]一种数据上报方法、装置和设备在审
申请号: | 202111492052.1 | 申请日: | 2021-12-08 |
公开(公告)号: | CN114168605A | 公开(公告)日: | 2022-03-11 |
发明(设计)人: | 李雅哲;王路宽;谭东 | 申请(专利权)人: | 镁佳(北京)科技有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/22 |
代理公司: | 北京三聚阳光知识产权代理有限公司 11250 | 代理人: | 林韵英 |
地址: | 100102 北京市朝阳*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 上报 方法 装置 设备 | ||
本发明公开了一种数据上报方法、装置和设备,其中所述方法包括:从消息队列中读取预设数量的生产者上报的消息数据到缓存,预设数量包括时间长度限制和数据条数限制;在缓存中基于各个消息数据的唯一标识和其内部键值对的时间戳,将各个消息数据进行合并;将合并后的消息数据发送至数据库,以使数据库根据各消息数据的时间戳的顺序对存储的消息数据进行更新。本发明提供的技术方案,通过缓存机制预先对一段时间内上报的数据消息进行合并,避免了因为时间戳过期导致的数据丢失问题。
技术领域
本发明涉及数据同步领域,具体涉及一种数据上报方法、装置和设备。
背景技术
随着移动网络的普及,车辆、高铁等交通工具或智能设备上报自身的状态数据是一个常见的需求。一般上报的单个状态数据是以键值对的形式表示的。上报数据的场景主要分为触发型事件和阶段性上报事件,触发型事件是当某个事件发生时即刻上报,例如打开车门是一个触发型事件,该事件将对应车门变化状态上报,主要针对离散数据使用。阶段性上报事件主要针对连续变化的数据,进行周期性的上报,例如周期性的上报整车的车窗状态、车门状态、轮胎状态、发动机状态等,每个周期上报的数据一般包含一个用于标明上报设备身份的唯一标识、用于表征上报数据内容的多个键值对和一个表征上报时间的总体的时间戳。云端在接收到车辆上报的数据后,会比较数据时间戳,用较新的记录覆盖较旧的记录,从而维护车辆当前的最新状态。
然而由于网络问题等原因会导致最新的数据不一定会比旧的数据更早到达服务器,那么可能会导致数据丢失问题。例如:现有两条消息数据,每条消息数据中均包含多个键值对,第一条消息数据的时间戳是t1,第二条消息数据的时间戳是t2,t1<t2,理论上应当第一条消息数据先上报第二条消息数据后上报,但是实际可能出现第二条消息数据先上报的情况,此时数据库中的时间戳是t2,当第一条消息数据上报时,由于其时间戳不大于t2,因此无法更新数据库,但是第一条消息数据中某个键值对的最新数据在第二条消息数据中是不存在的,那么该键值对的最新数据也就无法更新到数据库中,从而导致了数据丢失。
为解决上述问题,现有技术通常会修改上报协议,使得上报的数据中每个键值对都标有时间戳,再依次上报进行比对,但是该方法会大大增加上报数据的体量,使得上报过程中的数据库的比对次数指数上升,尤其是在重复消息很多的情况下,严重降低上报效率。因此,如何在不修改上报协议的前提下,避免数据丢失是亟待解决的问题。
发明内容
有鉴于此,本发明实施方式提供了一种数据上报方法、装置和设备,从而避免了因为时间戳过期导致的数据丢失。
根据第一方面,本发明提供了一种数据上报方法,所述方法包括:从消息队列中读取预设数量的生产者上报的消息数据,所述预设数量包括时间长度限制和数据条数限制;基于各个消息数据的唯一标识和其内部键值对的时间戳,将各个消息数据进行合并;将合并后的消息数据发送至数据库,以使数据库根据各消息数据的时间戳的顺序对存储的消息数据进行更新。
可选地,所述将合并后的数据发送至数据库,包括:将合并后的消息数据中的更新数据存入临时表中,所述更新数据是消息数据的唯一标识在所述数据库中已经存在的消息数据;将合并后的消息数据中的插入数据和所述临时表发送至所述数据库,所述插入数据是消息数据的唯一标识在所述数据库中不存在的消息数据。
可选地,数据库根据各消息数据的时间戳的顺序对存储的消息数据进行更新的过程,包括:存储全部所述插入数据到正式表中;将所述临时表中所述更新数据的各个键值对的时间戳与所述正式表中对应键值对的时间戳进行比对,并用比对结果中表征时间超前的键值对替换所述正式表中对应的键值对。
可选地,所述存储全部所述插入数据到正式表中,包括:使用insertignore语句将全部所述插入数据插入到所述正式表中。
可选地,在将合并后的消息数据中的更新数据存入临时表中之前,所述方法还包括:删除上一次上报数据使用的旧临时表,并创建新临时表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于镁佳(北京)科技有限公司,未经镁佳(北京)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111492052.1/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置