一种基于车联网的数据存储方法及系统与流程

文档序号:11458686阅读:457来源:国知局
一种基于车联网的数据存储方法及系统与流程

本发明涉及车联网领域,特别涉及一种基于车联网的数据存储方法及系统。



背景技术:

随着现代社会科技的发展,大数据时代的到来对各行各业带来了较大的冲击与发展,面对面对日益增长的海量数据,传统的集中式数据库的弊端日益显现,传统的关系型数据库开始暴露出一些难以克服的缺点。例如查询速度慢,难以扩展,没法应对无限增长的海量数据。对于某些数据量有限,对数据资源需求不是特别强烈的领域,传统的数据存储模型可以很好的支撑。但是对于像车辆网系统这种处理的数据量大,对数据管理能力要求高的系统而言,传统的关系型数据库往往已经难以支撑。车联网,是指通过在车辆仪表台安装车载终端设备,实现对车辆所有工作情况和静、动态信息的采集、存储并发送。车联网系统一般具有实时实景功能,可以利用移动网络实现人车交互。

现有技术中,传统的车联网系统中,底层的存储模块一般采用的是传统的关系型数据库模型,这种模型可以应对有限的数据量的数据,但是,对于大数据时代中每天都有很大持续增长的车辆数据的支持有着明显的缺陷。其有以下的问题:考虑到车辆信息是无限增长的,传统的关系型数据库的扩展能力不足,一旦信息数据到达的关系型数据库的存储阈值,对于整个车联网系统而言,其产生的影响将是灾难性的;尽管对于小数据量的数据处理,关系型数据库的处理速度还是人们可以接受的,但是随着车辆数据的持续增长,其处理数据所带来的延迟会很大程度上降低用户体验。因此,如何能够在大数据时代中提高车联网中数据的存储阈值,并减少数据处理的延迟时间,提升用户体验,是现今急需解决的问题。



技术实现要素:

本发明的目的是提供一种基于车联网的数据存储方法及系统,以采用传统的关系型数据库和分布式数据库集群的混合存储模型,提高车联网中数据的存储阈值,并减少数据处理的延迟时间,提升用户体验。

为解决上述技术问题,本发明提供一种基于车联网的数据存储方法,包括:

对车载终端发送的数据的类型进行识别;

当所述类型为实时信息时,将所述数据存储至分布式数据库集群;其中,所述实时信息包括can总线信息和obd信息;

当所述类型为配置信息时,将所述数据存储至关系型数据库;其中,所述配置信息包括车辆配置信息和车载终端配置信息。

可选的,所述分布式数据库集群具体为mongodb数据库集群。

可选的,所述将所述数据存储至mongodb数据库集群,包括:

通过mongos路由器根据所述数据的标识,将所述数据分摊到对应的mongodb片,利用所述mongodb片对所述数据进行存储,并将所述数据和响应的配置信息保存在mongoconfig服务器。

可选的,所述利用所述mongodb片对所述数据进行存储,包括:

所述mongodb片中的仲裁节点根据副本集中的副本节点的性能确定最优副本节点;

主节点写入所述数据并将所述数据复制到所述最优副本节点中。

可选的,该方法还包括:

当所述主节点宕机时,将所述最优副本节点作为所述主节点。

可选的,该方法还包括:

当需要读取所述数据时,通过所述最优副本节点读取所述数据。

此外,本发明还提供了一种基于车联网的数据存储系统,包括:

车联网云平台,用于对车载终端发送的数据的类型进行识别;

分布式数据库集群,用于当所述类型为实时信息时,存储所述数据;其中,所述实时信息包括can总线信息和obd信息;

关系型数据库,用于当所述类型为配置信息时,存储所述数据;其中,所述配置信息包括车辆配置信息和车载终端配置信息。

可选的,所述分布式数据库集群具体用于通过mongos路由器根据所述数据的标识,将所述数据分摊到对应的mongodb片,利用所述mongodb片对所述数据进行存储,并将所述数据和响应的配置信息保存在mongoconfig服务器。

可选的,所述分布式数据库集群,包括:

最优副本节点确定模块,用于所述mongodb片中的仲裁节点根据副本集中的副本节点的性能确定最优副本节点;

数据写模块,用于主节点写入所述数据并将所述数据复制到所述最优副本节点中。

可选的,所述分布式数据库集群,包括:

数据读模块,用于当需要读取所述数据时,通过所述最优副本节点读取所述数据。

本发明所提供的一种基于车联网的数据存储方法,包括:对车载终端发送的数据的类型进行识别;当所述类型为实时信息时,将所述数据存储至分布式数据库集群;其中,所述实时信息包括can总线信息和obd信息;当所述类型为配置信息时,将所述数据存储至关系型数据库;其中,所述配置信息包括车辆配置信息和车载终端配置信息;

可见,本发明通过当数据的类型为实时信息时,将数据存储至分布式数据库集群,可以将车辆的无限增长的实时信息类型的数据,用分布式数据库集群进行存储管理;通过当数据的类型为配置信息时,将数据存储至关系型数据库,可以通过传统的关系型数据库对配置信息类型的数据进行存储管理,结合了分布式数据库集群和传统的关系型数据库各自的优点,实现了对车联网中数据的有效管理,提高了车联网中数据的存储阈值,并减少了数据处理的延迟时间,提升了用户体验。此外,本发明还提供了一种基于车联网的数据存储系统,同样具有上述有益效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例所提供的一种基于车联网的数据存储方法的流程图;

图2为本发明实施例所提供的一种基于车联网的数据存储方法的数据存储系统整体架构的示意图;

图3为本发明实施例所提供的另一种基于车联网的数据存储方法的流程图;

图4为本发明实施例所提供的另一种基于车联网的数据存储方法的mongodb数据库集群整体架构的示意图;

图5为本发明实施例所提供的另一种基于车联网的数据存储方法的mongodb片内部架构的示意图;

图6为本发明实施例所提供的另一种基于车联网的数据存储方法的数据接收存储的e-r图;

图7为本发明实施例所提供的一种基于车联网的数据存储系统的结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1和图2,图1为本发明实施例所提供的一种基于车联网的数据存储方法的流程图;图2为本发明实施例所提供的一种基于车联网的数据存储方法的数据存储系统整体架构的示意图。该方法可以包括:

步骤101:对车载终端发送的数据的类型进行识别。

其中,本步骤可以为如图2所示的车联网云平台接收车载终端发送的多个数据后,对每个数据相关的处理并对每个数据的类型进行识别,然后分别通过步骤102或步骤103与底层的数据存储模块进行交互,也就是将对应类型的数据存储至分布式数据库集群或传统的关系型数据库,实现数据的实例化。图2中的客户端可以为用户对车联网中存储数据进行查询或其他交互过程的终端,本实施例对此不做任何限制。

可以理解的是,对于车联网中进行本步骤对车载终端发送的数据的类型进行识别的具体位置,可以为如图2所示的车联网云平台;也可以为底层的数据存储模块,如车联网云平台对数据进行相应的处理后,由数据存储模块对数据的类型进行识别,并将对应类型的数据存储至分布式数据库集群或传统的关系型数据库;还可以为车联网数据存储系统的其他位置,本实施例对此不做任何限制。

需要说明的是,本步骤中车载终端的发送的数据可以为一个车载终端发送的一种类型的数据,也就是说每个车载终端发送的每种类型的数据均可以通过本步骤进行识别。若车载终端发送多种类型的数据,则也可通过与本步骤相似的方式,如通过车联网云平台对多种类型的数据进行相应的处理,然后将该数据中对应类型的数据存储至分布式数据库集群或传统的关系型数据库。本实施例对此不受任何限制。

具体的,对于车联网云平台对车载终端发送的数据的类型进行识别的具体过程,可以由设计人员根据实用场景和用户需求自行设置相应的识别程序,本实施例对此不做任何限制。

步骤102:当所述类型为实时信息时,将所述数据存储至分布式数据库集群;其中,所述实时信息包括can总线信息和obd信息。

可以理解的是,本步骤的目的是为了将如can总线信息和obd信息这类车辆的无限增长的实时信息类型的数据存储至分布式数据库集群,以提高如图2的车联网数据存储系统中底层的数据存储模块的存储阈值,并且通过分布式数据库集群存储并管理实时信息类型的数据,可以降低处理该数据的延迟,提升用户体验。

需要说明的是,对于分布式数据库集群的具体类型和设置方式,可以由设计人员根据实用场景和用户需求自行设置,如可以使用mongodb数据库集群和相应的设置方式,也可以使用其他类型的分布式数据库集群和对应的设置方式。本实施例对此不做任何限制。

具体的,对于本步骤中将数据存储至分布式数据库集群的具体过程,可以根据分布式数据库集群的具体类型和设置方式对应进行,如当分布式数据库集群为mongodb数据库集群时,可以通过mongos路由器根据数据的标识,将数据分摊到对应的mongodb片,利用mongodb片对数据进行存储,并将数据和响应的配置信息保存在mongoconfig服务器。本实施例对此不做任何限制。同样,对于分布式数据库集群对存储的数据进行管理的具体方式,如mongodb片中主节点中将数据复制到副本集中的副本节点的具体方式和从mongodb片中读取数据的具体方式,可以由设计人员根据分布式数据库集群的具体类型和设置方式对应进行设置,本实施例对此同样不做任何限制。

步骤103:当所述类型为配置信息时,将所述数据存储至关系型数据库;其中,所述配置信息包括车辆配置信息和车载终端配置信息。

可以理解的是,本步骤的目的是为了将如车辆配置信息和车载终端配置信息这类基础的配置信息类型的数据存储至传统的关系型数据库。因为传统的关系型数据库对配置信息类型的数据处理具有很大的优势,因此通过传统的关系型数据库对配置信息类型的数据进行存储和管理,可以很好的发挥传统的关系型数据库的优点,并且将原本存储至关系型数据库的实时信息类型的数据存储至分布式数据库集群,大大减少了关系型数据库中存储的数据量,可以降低关系型数据库处理配置信息类型的数据的延迟,提升用户体验。

需要说明的是,对于关系型数据库的具体类型和设置方式,可以使用现有技术中传统的关系型数据库,如mysql数据库集群,也可以使用其他类型的关系型数据库,本实施例对此不做任何限制。

具体的,对于本步骤中将数据存储至关系型数据库的具体过程和关系型数据库对存储的数据进行管理的具体方式,可以为采用与现有技术中如mysql数据库集群的传统的关系型数据库相似的过程和方式,也可以采用其他与关系型数据库的具体类型和设置方式对应的过程和方式。本实施例对此不受任何限制。

本实施例中,本发明实施例通过当数据的类型为实时信息时,将数据存储至分布式数据库集群,可以将车辆的无限增长的实时信息类型的数据,用分布式数据库集群进行存储管理;通过当数据的类型为配置信息时,将数据存储至关系型数据库,可以通过传统的关系型数据库对配置信息类型的数据进行存储管理,结合了分布式数据库集群和传统的关系型数据库各自的优点,实现了对车联网中数据的有效管理,提高了车联网中数据的存储阈值,并减少了数据处理的延迟时间,提升了用户体验。

请参考图3、图4、图5和图6,图3为本发明实施例所提供的另一种基于车联网的数据存储方法的流程图;图4为本发明实施例所提供的另一种基于车联网的数据存储方法的mongodb数据库集群整体架构的示意图;图5为本发明实施例所提供的另一种基于车联网的数据存储方法的mongodb片内部架构的示意图;图6为本发明实施例所提供的另一种基于车联网的数据存储方法的数据接收存储的e-r图。该方法可以包括:

步骤201:对车载终端发送的数据的类型进行识别。

其中,本步骤与步骤101相似,在此不再赘述。

步骤202:当数据的类型为实时信息时,通过mongos路由器根据数据的标识,将数据分摊到对应的mongodb片,利用mongodb片对数据进行存储,并将数据和响应的配置信息保存在mongoconfig服务器。

其中,本实施所提供的方法中,存储实时信息类型的数据的分布式数据库集群可以为如图4所示的mongodb数据库集群。对于mongodb数据库集群存储实时信息类型的数据的具体方式,可以如图4所示,车联网云平台(client)将实时信息类型的数据发送至mongos路由器(mongos),通过mongos路由器根据该数据的标识,将该数据分摊到对应的mongodb片(shard),利用mongodb片对该数据进行存储,并将该数据和响应的配置信息保存在mongoconfig服务器(mongoconfig),以实现mongodb数据库集群的可扩展性和负载均衡;也可以使用其他结构的mongodb数据库集群和对应的方式存储实时信息类型的数据。本实施例对此不做任何限制。对于mongos路由器根据数据的标识,将数据分摊到对应的mongodb片的具体过程和数据的标识的具体设置,可以由设计人员根据实用场景和用户需求自行设置,如可以将数据的标识设置为片键。只要mongos路由器根据数据的片键,将数据分摊到对应的mongodb片,本实施例对此不做任何限制。

可以理解的是,对于利用mongodb片对数据进行存储的具体方式,可以为如图4中mongodb片(shard)中的仲裁节点(shardserver仲裁)根据副本集中的副本节点的性能确定最优副本节点(shardserver副本),主节点(shardserver)写入数据并将数据复制到最优副本节点中,以减少主节点的复制压力,提高系统性能;也可以使用如现有技术中的mongodb片对数据进行存储方式,如主节点直接数据并将数据复制到副本集的全部副本节点中。本实施例对此不受任何限制。

优选的,本实施例所提供的方法还可以包括当mongodb片中的主节点宕机时,将最优副本节点作为主节点对数据进行存储和管理,以达到热部署的效果,提高系统的稳定性。

需要说明的是,对于实际需求而言,mongodb片中大部分业务都是读业务,也就是从mongodb片中读取数据,因此,在需要从mongodb片中读取数据时,可以通过该mongodb片的副本集中的副本节点读取数据,也就是读取副本集中副本节点作为最优副本节点时复制的主节点中的数据,可以如图5所示的副本集设置(replicaset),对于外界的应用服务器而言,其操作中的读操作是面向mongodb片的副本集中的副本节点的,而其操作中的写操作是面向副本集中的主节点(主服务器)的,这样可以有效的减小mongodb数据库集群的压力,提高了系统的性能以及存储效率;也可以如现有技术般通过mongodb片主节点读取数据,本实施例对此不做任何限制。

具体的配置操作可以如下:

准备三台机器:192.168.1.136、192.168.1.137、192.168.1.138。192.168.1.136当作副本集的主节点,192.168.1.137、192.168.1.138作为副本集的副本节点。

之后分别在每台机器上建立mongdb副本集文件夹,并且安装启动mongodb程序包,其指令如下:

#存放整个mongodb文件

mkdir-p/data/mongodbtest/replset

#存放mongodb数据文件

mkdir-p/data/mongodbtest/replset/data

#进入mongodb文件夹

cd/data/mongodbtest

#下载mongodb安装包

wgethttp://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.8.tgz

#解压下载的压缩包

tarxvzfmongodb-linux-x86_64-2.4.8.tgz

#运行mongodb程序

/data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongod--dbpath/data/mongodbtest/replset/data--replsetrepset

之后对副本集进行相应的初始化配置:

这里选择三台机器上的任意一台机器登入,并且使用admin数据库,这时,修改其配置文件,定义副本集配置变量:

之后通过设置配置文件中的几个参数来实现读写分离。其中,需要在副本节点secondary设置setslaveok,之后再程序中设置副本节点负责读操作。

其中,读参数除了decondary以外还有五个参数:primary、primarypreferred、secondary、secondarypreferred、nearest。primary,默认参数,只从主节点上进行读取操作;primarypreferred,大部分从主节点上读取数据,只有主节点不可用时,从secondary节点(最优副本节点)读取数据;secondary,只从secondary节点上进行读取操作,存在的问题是secondary节点的数据会比primary节点数据“旧”;secondarypreferred,优先从secondary节点进行读取操作,secondary节点不可用时从主节点读取数据;nearest:不管是主节点、secondary节点,从网络延迟最低的节点上读取数据。

步骤203:当数据的类型为配置信息时,将数据存储至mysql数据库集群。

可以理解的是,对于本步骤中将数据存储至mysql数据库集群的具体过程和mysql数据库集群对存储的数据进行管理的具体方式,可以使用与现有技术相似的过程和方式,也可以使用其他过程和方式,本实施例对此不做任何限制。

需要说明的是,对于本实施例所提供的方法中mongodb数据库集群和mysql数据库集群分别的配置信息类型的数据和实时信息类型的数据的具体划分方式,可以由设计人员根据实用场景和用户需求自行设置,本实施例对此不受任何限制。如图6所示,对于车载终端发送过来的数据,其实时的gps数据、can信息和obd信息可以使用monodb数据库集群存储,而车辆的相对固定的配置信息(车辆信息、车载设备装车信息和车载终端信息)可以由mysql数据库进行存储,有效地减轻了现有技术中mysql数据库的压力,提高了系统性能。

本实施例中,本发明实施例通过当数据的类型为实时信息时,利用mongodb片对数据进行存储实现了mongodb数据库集群的可扩展性和负载均衡;通过mongodb片中最优副本节点的设置,减少了主节点的复制压力,提高了系统性能;通过当mongodb片中的主节点宕机时,将最优副本节点作为主节点对数据进行存储和管理,达到了热部署的效果,提高了系统的稳定性;通过从最优副本节点读取数据,有效的减小了mongodb数据库集群的压力,提高了系统的性能以及存储效率,提升了用户体验。

请参考图7,图7为本发明实施例所提供的一种基于车联网的数据存储系统的结构图。该系统可以包括:

车联网云平台100,用于对车载终端发送的数据的类型进行识别;

分布式数据库集群200,用于当所述类型为实时信息时,存储所述数据;其中,所述实时信息包括can总线信息和obd信息;

关系型数据库300,用于当所述类型为配置信息时,存储所述数据;其中,所述配置信息包括车辆配置信息和车载终端配置信息。

可选的,所述分布式数据库集群200可以具体用于通过mongos路由器根据所述数据的标识,将所述数据分摊到对应的mongodb片,利用所述mongodb片对所述数据进行存储,并将所述数据和响应的配置信息保存在mongoconfig服务器。

可选的,所述分布式数据库集群200,可以包括:

最优副本节点确定模块,用于所述mongodb片中的仲裁节点根据副本集中的副本节点的性能确定最优副本节点;

数据写模块,用于主节点写入所述数据并将所述数据复制到所述最优副本节点中。

可选的,所述分布式数据库集群200,可以包括:

数据读模块,用于当需要读取所述数据时,通过所述最优副本节点读取所述数据。

本实施例中,本发明实施例通过分布式数据库集群200当数据的类型为实时信息时,存储数据,可以将车辆的无限增长的实时信息类型的数据,用分布式数据库集群进行存储管理;通过关系型数据库300当数据的类型为配置信息时,存储数据,可以通过传统的关系型数据库对配置信息类型的数据进行存储管理,结合了分布式数据库集群和传统的关系型数据库各自的优点,实现了对车联网中数据的有效管理,提高了车联网中数据的存储阈值,并减少了数据处理的延迟时间,提升了用户体验。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的基于车联网的数据存储方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1