一种数据库文件的导入方法及装置与流程

文档序号:18190632发布日期:2019-07-17 05:34阅读:161来源:国知局
一种数据库文件的导入方法及装置与流程
本申请涉及数据存储
技术领域
,特别是涉及一种数据库文件的导入方法及装置。
背景技术
:网络相机(ipcamera,ipc)与网络视频录像机(networkvideorecorder,nvr)组成的系统中,ipc可以捕捉人脸图像,并将人脸图像发送至nvr。nvr接收到ipc发送的人脸图像之后,可以将该人脸图像与数据库中的人脸数据进行匹配。nvr可以根据匹配结果给出相应的报警。因此,数据库中数据的丰富程度会直接影响匹配结果。在相关技术中,nvr中的数据库的数据来源包括该nvr设备预先从人脸图像中提取的数据和人工录入的数据。nvr中的数据库存在版本信息,例如,nvr1中的数据库存储的数据顺序为姓名、年龄和电话,nvr2中的数据库存储的数据顺序为姓名、电话和年龄,那么这两个数据库的版本信息不同。由于各个nvr中的数据库版本不同,因此无法将从其他nvr中导出的数据库文件直接导入该nvr的数据库中,数据库数据的丰富程度较低。技术实现要素:本申请实施例的目的在于提供了一种数据库文件的导入方法及装置,以实现将数据库文件直接导入数据库中,提高数据库数据的丰富程度。具体的技术方案如下。第一方面,本申请实施例提供了一种数据库文件的导入方法。该方法包括:获取待导入的数据库文件,所述数据库文件中的每条数据包括数据标签、数据长度和数据内容,所述数据长度用于表示所述数据内容的长度;根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将所述数据库文件中的数据存储至所述数据库。可选的,所述数据库文件包括多个条目数据,每条目数据中包括多条数据;所述根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将所述数据库文件中的数据存储至所述数据库的步骤,包括:针对所述数据库文件中的每个条目数据,从所述数据库中确定所述条目数据中各条数据的存储位置;根据数据库文件中的数据标签与数据库中的数据标签的对应关系,将所述数据库文件中所述条目数据的各个数据标签与所述数据库中所述条目数据的各个数据标签进行匹配;针对所述条目数据中匹配成功的数据标签所在的每条数据,根据所述数据的数据长度从所述数据库文件中获取对应的数据内容,将所述数据内容存储至所述数据库的所述条目数据中所述数据的存储位置。可选的,该方法还包括:针对所述数据库文件中匹配失败的数据标签所在的数据,拒绝将该数据存储至所述数据库;针对所述数据库中匹配失败的数据标签所在的数据,将该数据的数据内容置空或置为第一预设值。可选的,在将所述数据内容存储至所述数据库的所述条目数据中所述数据的存储位置之前,该方法还包括:获取所述数据内容的版本信息;判断所述版本信息是否与预设的所述数据库对应的版本信息兼容;如果兼容,则执行将所述数据内容存储至所述数据库的所述条目数据中所述数据的存储位置的步骤。可选的,所述数据库文件的条目数据中还包括:与获取的数据内容对应的图像,获取的数据内容为预先对对应的图像进行特征提取得到的数据;当所述版本信息与预设的所述数据库对应的版本信息不兼容时,该方法还包括:将所述数据内容替换为第二预设值,将所述第二预设值存储至所述数据库的所述条目数据中所述数据的存储位置;当与所述数据内容对应的图像已存储至所述数据库时,对所述图像进行特征提取,采用提取得到的数据内容替换所述数据库中的所述第二预设值。可选的,所述根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将所述数据库文件中的数据存储至所述数据库的步骤,包括:获取所述数据库文件的密钥,以所述密钥对所述数据库文件进行解密,根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将解密后的数据库文件中的数据存储至所述数据库。可选的,所述数据库文件包括多个条目数据,每条目数据中包括多条数据;所述获取所述数据库文件的密钥,以所述密钥对所述数据库文件进行解密,根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将解密后的数据库文件中的数据存储至所述数据库的步骤,包括:获取所述数据库文件的各个条目数据对应的密钥,以所述密钥对所述数据库文件中的对应条目数据进行解密,根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将解密后的数据库文件中的条目数据包含的各条数据存储至所述数据库。可选的,在以所述密钥对所述数据库文件中的对应条目数据进行解密之后,还包括:根据解密后的数据库文件中的条目数据包含的校验位数据,对解密后的数据库文件中的条目数据进行校验;在校验成功时,执行所述根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将解密后的数据库文件中的条目数据包含的各条数据存储至所述数据库的步骤。可选的,在将所述数据库文件中的数据存储至所述数据库之后,还包括:获取待导出数据对应的导出范围信息;根据所述导出范围信息,从所述数据库中导出所述待导出数据;按照所述数据的数据标签、数据长度和数据内容的存储格式和所述待导出数据,生成导出数据库文件。第二方面,本申请实施例提供了一种数据库文件的导入装置。该装置包括:第一获取模块,用于获取待导入的数据库文件,所述数据库文件中的每条数据包括数据标签、数据长度和数据内容,所述数据长度用于表示所述数据内容的长度;存储模块,用于根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将所述数据库文件中的数据存储至所述数据库。可选的,所述数据库文件包括多个条目数据,每条目数据中包括多条数据;所述存储模块,包括:确定子模块,用于针对所述数据库文件中的每个条目数据,从所述数据库中确定所述条目数据中各条数据的存储位置;匹配子模块,用于根据数据库文件中的数据标签与数据库中的数据标签的对应关系,将所述数据库文件中所述条目数据的各个数据标签与所述数据库中所述条目数据的各个数据标签进行匹配;存储子模块,用于针对所述条目数据中匹配成功的数据标签所在的每条数据,根据所述数据的数据长度从所述数据库文件中获取对应的数据内容,将所述数据内容存储至所述数据库的所述条目数据中所述数据的存储位置。可选的,该装置还包括:处理模块;所述处理模块,用于针对所述数据库文件中匹配失败的数据标签所在的数据,拒绝将该数据存储至所述数据库;针对所述数据库中匹配失败的数据标签所在的数据,将该数据的数据内容置空或置为第一预设值。可选的,所述存储子模块,还用于:在将所述数据内容存储至所述数据库的所述条目数据中所述数据的存储位置之前,获取所述数据内容的版本信息;判断所述版本信息是否与预设的所述数据库对应的版本信息兼容;如果兼容,则将所述数据内容存储至所述数据库的所述条目数据中所述数据的存储位置。可选的,所述数据库文件的条目数据中还包括:与获取的数据内容对应的图像,获取的数据内容为预先对对应的图像进行特征提取得到的数据;所述存储子模块,还用于:当所述版本信息与预设的所述数据库对应的版本信息不兼容时,将所述数据内容替换为第二预设值,将所述第二预设值存储至所述数据库的所述条目数据中所述数据的存储位置;当与所述数据内容对应的图像已存储至所述数据库时,对所述图像进行特征提取,采用提取得到的数据内容替换所述数据库中的所述第二预设值。可选的,所述存储模块,具体用于:获取所述数据库文件的密钥,以所述密钥对所述数据库文件进行解密,根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将解密后的数据库文件中的数据存储至所述数据库。可选的,所述数据库文件包括多个条目数据,每条目数据中包括多条数据;所述存储模块,具体用于:获取所述数据库文件的各个条目数据对应的密钥,以所述密钥对所述数据库文件中的对应条目数据进行解密,根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将解密后的数据库文件中的条目数据包含的各条数据存储至所述数据库。可选的,所述存储模块,还用于:在以所述密钥对所述数据库文件中的对应条目数据进行解密之后,根据解密后的数据库文件中的条目数据包含的校验位数据,对解密后的数据库文件中的条目数据进行校验;在校验成功时,根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将解密后的数据库文件中的条目数据包含的各条数据存储至所述数据库。可选的,该装置还包括:第二获取模块,用于在将所述数据库文件中的数据存储至所述数据库之后,获取待导出数据对应的导出范围信息;导出模块,用于根据所述导出范围信息,从所述数据库中导出所述待导出数据;生成模块,用于按照所述数据的数据标签、数据长度和数据内容的存储格式和所述待导出数据,生成导出数据库文件。第三方面,本申请实施例提供了一种电子设备。该电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现本申请实施例提供的数据库文件的导入方法。该方法包括:获取待导入的数据库文件,所述数据库文件中的每条数据包括数据标签、数据长度和数据内容,所述数据长度用于表示所述数据内容的长度;根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将所述数据库文件中的数据存储至所述数据库。第四方面,本申请实施例提供了一种计算机可读存储介质。该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的数据库文件的导入方法。该方法包括:获取待导入的数据库文件,所述数据库文件中的每条数据包括数据标签、数据长度和数据内容,所述数据长度用于表示所述数据内容的长度;根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将所述数据库文件中的数据存储至所述数据库。本申请实施例提供的数据库文件的导入方法及装置,可以根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照数据标签、数据长度和数据内容的存储格式,将数据库文件中的数据存储至数据库。由于数据库文件中的每条数据都以数据标签、数据长度和数据内容的格式存储于数据库文件中,不管数据库文件中各条数据位于什么位置,都可以根据数据标签之间的对应关系以及上述存储格式将各条数据存储至数据库的对应位置中,因此能够实现将数据库文件直接导入数据库中,提高数据库数据的丰富程度。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的数据库文件的导入方法的一种流程示意图;图2a为本申请实施例提供的数据库文件的二进制形式的一种结构参考图;图2b为将数据库文件中的数据存储至数据库的过程参考图;图3为图1中步骤s102的一种流程示意图;图4a为从数据库中确定条目数据中各条数据的存储位置的一种参考图;图4b为将图4a中的条目数据导入数据库后的一种参考图;图5为本申请实施例提供的将数据库文件导出的一种流程示意图;图6a为从nvr中导出人脸库文件的一种交互流程示意图;图6b为导出的一种人脸库文件的结构示意图;图6c为将人脸库文件导入nvr中的一种交互流程示意图;图7为本申请实施例提供的数据库文件的导入装置的一种结构示意图;图8为本申请实施例提供的电子设备的一种结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。为了实现将数据库文件直接导入数据库中,提高数据库数据的丰富程度,本申请实施例提供了一种数据库文件的导入方法及装置。下面通过具体实施例,对本申请进行详细说明。图1为本申请实施例提供的数据库文件的导入方法的一种流程示意图。本实施例应用于电子设备。该电子设备可以包括普通计算机、智能移动设备、平板电脑、笔记本电脑、服务器等设备,也可以为网络视频录像机(networkvideorecorder,nvr)等设备。电子设备中存储有数据库,该数据库可以为人脸库、车辆信息库、人员信息库等类型。本实施例的方法包括如下步骤s101~步骤s102:步骤s101:获取待导入的数据库文件。其中,该数据库文件中的每条数据包括数据标签、数据长度和数据内容,即每条数据以数据标签、数据长度、数据内容的格式存储在数据库文件中。数据标签用于表示数据的属性类型,数据标签可以以文字表示,也可以以数字表示。数据长度用于表示数据内容的长度。数据标签和数据长度均可以为固定长度的数据,数据内容的长度可以不固定。数据内容的长度由数据长度这个参量定义,即表示在数据长度之后数据内容的长度。上述数据库文件可以为二进制(bin)格式的文件。例如,表1为一种数据库文件的内容示例。在表1中的第一行数据表示数据标签,“x/y”中x和y为数据标签的两种表示方式,x为数据标签的文字表示方式,y为数据标签的数字表示方式。第二行数据表示数据长度。第三行数据表示数据内容。其中,“张三”、“男”、“22”、“12345678910”、“汉”均为数据库文件中的各条数据的数据内容。表1数据标签姓名/11性别/12年龄/13电话/14民族/15数据长度2字节1字节2字节11字节1字节数据内容张三男2212345678910汉表1所示的数据库文件中的部分内容对应的二进制形式可以参见图2a所示。在图2a所示的二进制文件中,每条数据都按照数据标签、数据长度和数据内容的存储格式顺序排列。其中,数据标签固定占用2个字节,数据长度固定占用1个字节。该数据库文件可以是从其他电子设备中导出的文件,也可以是电子设备根据存储的信息生成的文件,或者是根据用户录入的信息生成的文件。例如,当本实施例的执行主体为nvr时,数据库文件可以是从其他nvr中导出的文件。步骤s102:根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照上述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将数据库文件中的数据存储至数据库。其中,数据库中存在各个数据标签和对应的数据内容。将数据库文件中的数据导入该数据库,即是将数据库文件中的各条数据的数据内容存储至数据库的各个数据标签对应的存储位置。本步骤具体可以为,根据预设的数据库文件中的数据标签与数据库中的数据标签的对应关系,按照上述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将数据库文件中的数据存储至数据库。其中,数据库文件中的数据标签与数据库中的数据标签的对应关系可以是预先存储的。数据库文件中的数据标签与数据库中对应的数据标签可以相同,也可以不同。例如,数据库文件中的数据标签“11”对应数据库中的数据标签“姓名”,数据库文件中的数据标签“12”对应数据库中的数据标签“年龄”;或者,数据库文件中的数据标签“姓名”对应数据库中的数据标签“姓名”,数据库文件中的数据标签“12”对应数据库中的数据标签“12”等。相互对应的数据标签的含义是相同的。例如,数据标签“11”与数据标签“姓名”是相互对应的,也就是数据标签“11”具有与数据签名“姓名”相同的含义。本步骤中,数据库文件中的数据标签与数据库中的数据标签的对应关系,也可以理解为,当数据库文件中的数据标签与数据库中的数据标签相同时,数据库文件中的数据标签与数据库中的数据标签之间相互对应。将数据库文件中的数据存储至数据库时,可以根据数据库文件中的数据标签与数据库中的数据标签的对应关系,将数据库文件中的数据标签和数据库中的数据标签进行匹配,根据匹配结果,按照上述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将数据库文件中根据数据长度确定的数据内容存储在数据库匹配的数据标签对应的存储位置。例如,结合表1和图2b可知,数据库文件中的数据标签“姓名”与数据库中的“姓名”相匹配,并且根据表1中“数据长度”2字节,可以从数据库文件中该“姓名”标签对应的数据长度后确定2字节的数据内容,即确定“张三”这条数据内容,将“张三”存储至数据库中“姓名”标签对应的存储位置。其他数据的存储方式类似,不再赘述。从图2b中可以看出数据库文件和数据库中“性别”“年龄”两个标签的顺序是不一致的,但是顺序不一致并不影响将数据库文件中的数据存储至数据库中,因为数据存储时是按照数据标签的对应关系存储的。本实施例中的数据库可以为sqlite数据库、mysql数据库或其他数据库。由上述内容可知,本实施例可以根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照数据标签、数据长度和数据内容的存储格式,将数据库文件中的数据存储至数据库。由于数据库文件中的每条数据都以数据标签、数据长度和数据内容的格式存储于数据库文件中,不管数据库文件中各条数据位于什么位置,都可以根据数据标签之间的对应关系以及上述存储格式将各条数据存储至数据库的对应位置中,因此能够实现将数据库文件直接导入数据库中,提高数据库数据的丰富程度。在相关技术中,数据库文件和数据库中的数据标签必须完全一致,并且数据库文件中各个数据标签之间的先后位置必须与数据库中的位置对应相同,这样才能将数据库文件中的数据存储至数据库中。而本实施例中,不管数据库文件中数据标签的顺序怎样,均能根据数据库文件中的数据标签和数据库中的数据标签的对应关系,将数据库文件中的数据内容存储至数据库中,以实现将数据库文件中的数据导入数据库中。在本申请的另一实施例中,在图1所示实施例中,数据库文件可以包括多个条目数据,每条目数据中包括多条数据。条目数据可以理解为一条数据。每个条目数据中包括具有不同数据标签的各条数据,各个条目数据之间可以具有对应相同的数据标签。表2为数据库文件中条目数据的一种示例。在该表2中,列出了2个条目数据,一个是张三的,一个是李xx的。这两个条目数据之间具有对应相同的数据标签。每个条目数据中均包括“姓名”“性别”“年龄”“电话”“民族”对应的数据内容,这两个条目数据共包含10条数据。表2数据标签姓名性别年龄电话民族数据长度2字节1字节2字节11字节1字节数据内容张三男2212345678910汉数据长度3字节1字节2字节11字节1字节数据内容李xx男2523145678910汉………………在本实施例中,步骤s102可以按照图3所示流程示意图进行,具体包括以下步骤s102a~步骤s102c:步骤s102a:针对数据库文件中的每个条目数据,从数据库中确定该条目数据中各条数据的存储位置。数据库中可以存在已存储条目数据。在从数据库中确定该条目数据中各条数据的存储位置时,可以根据数据库中已存储条目数据的存储位置,确定待存储的条目数据中各条数据的存储位置。具体的,可以在数据库中已存储条目数据的存储位置的末尾标识之后,确定待存储的条目数据中各条数据的存储位置。在从数据库中确定该条目数据中各条数据的存储位置时,可以按照数据库包含的各个数据标签对应分配存储位置。例如,参见图4a所示,数据库文件中每个条目数据包括a、b、c、d四个标签,数据库文件中存在两个条目数据,而数据库中包括a、b、c、e、f五个标签,数据库中存在一个已存储条目数据,则可以在该已存储条目数据之后为待存储的条目数据确定a、b、c、e、f五个标签对应的数据的存储位置。步骤s102b:根据数据库文件中的数据标签与数据库中的数据标签的对应关系,将数据库文件中该条目数据的各个数据标签与数据库中该条目数据的各个数据标签进行匹配。在本步骤之前,还可以包括从数据库文件中获取该条目数据的各个数据标签,获取数据库中该条目数据的各个数据标签的步骤。本步骤中,在匹配时,可以根据数据库文件中的数据标签与数据库中的数据标签的对应关系,针对该数据库文件中该条目数据的每条数据标签,从该数据库中确定与该数据标签对应的数据标签。也可以是,针对数据库中该条目数据的每条数据标签,从数据库文件中确定与该数据标签对应的数据标签。例如,当数据库文件中的数据标签与对应的数据库中的数据标签不同时,数据库文件中的数据标签与数据库中的数据标签的对应关系可以包括:“11”对应“姓名”,“12”对应“年龄”,“13”对应“性别”,如果数据库文件中某个条目数据包括11、12、13等标签,则可以从数据库中确定与11、12、13匹配的数据标签分别为姓名、年龄、性别。如果数据库文件中的数据标签与对应的数据库中的数据标签是相同的,当数据库文件中某个条目数据包括姓名、年龄、性别等标签时,则可以从数据库中确定与该数据库文件中的标签匹配的数据标签分别为姓名、年龄、性别。步骤s102c:针对该条目数据中匹配成功的数据标签所在的每条数据,根据上述数据的数据长度从数据库文件中获取对应的数据内容,将该数据内容存储至数据库的该条目数据中该数据的存储位置。例如,参见图4a,针对数据库文件中的数据标签a,可以根据条目数据中数据标签a所在的数据中的数据长度,从数据库文件中获取数据内容,将该数据内容存储至数据库中数据标签a对应的存储位置。参见图4a中虚线所示数据存储过程。在一种具体实施方式中,针对数据库文件中匹配失败的数据标签所在的数据,拒绝将该数据存储至数据库。例如,参见图4a,由于数据库中不存在数据标签d,因此数据标签d为数据库文件中匹配失败的数据标签,不将数据标签d所在的数据存储至数据库,即不予以处理数据标签d所在的数据。在一种具体实施方式中,针对数据库中匹配失败的数据标签所在的数据,将该数据的数据内容置空或置为第一预设值。其中,第一预设值为预设的数值,具体可以为0或1或其他任意值。例如,参见图4a,由于数据库文件中不存在数据标签e和f,因此数据标签e和f为数据库中匹配失败的数据标签,此时将数据库中数据标签e和f所在数据的数据内容置为空。参见图4b,图4b为将图4a的数据库文件中的两个条目数据导入数据库之后的参考图。可见,数据库文件中数据标签d下方的数据均未导入数据库,新导入数据库的两条目数据中,数据标签e和f下方的数据为空。综上,本实施例中,可以根据数据库文件中条目数据的各个数据标签与数据库中条目数据的各个数据标签匹配后的对应关系,将根据数据长度从数据库文件中获取的数据内容存储至数据库中的对应位置,因此能够实现将多个条目数据导入数据库,无需要求数据库文件中各个数据标签的位置必须与数据库中的相同,也就是对数据库文件格式的要求更低,数据库文件的格式可以更灵活。同时,即便数据库文件和数据库中存在不相同的数据标签时,也能够实现将数据库文件中的条目数据导入数据库中,这样使得数据库文件的灵活性可以更大。在本申请的另一实施例中,在图3所示实施例中,在步骤s102c中将数据内容存储至数据库的该条目数据中该数据的存储位置之前,还可以包括:获取数据内容的版本信息,判断该版本信息是否与预设的数据库对应的版本信息兼容,如果兼容,则执行将数据内容存储至数据库的该条目数据中该数据的存储位置的步骤;如果不兼容,则可以不予以处理。在获取数据内容的版本信息时,可以将数据内容中预设位置处的数据确定为版本信息。版本信息可以包括版本号和/或版本等级之类的信息。具体的,可以将数据内容中的前预设数量个字节作为版本信息。例如,将数据内容中前2个字节作为版本号。预设的数据库对应的版本信息,可以是预先存储的信息。判断该版本信息是否与预设的数据库对应的版本信息兼容,具体可以为,判断该版本信息是否与预设的数据库对应的版本信息相同,如果相同,则确定该版本信息与预设的数据库对应的版本信息兼容。也可以为,判断该版本信息的版本等级是否高于预设的数据库对应的版本信息的版本等级,如果高于,则确定该版本信息与预设的数据库对应的版本信息兼容。综上,本实施例可以根据版本信息提高数据库文件导入时的准确性。在本申请的另一实施例中,在上述实施例的基础上,数据库文件的条目数据中还可以包括:与获取的数据内容对应的图像。获取的数据内容为预先对对应的图像进行特征提取得到的数据。例如,该数据内容可以为建模数据,该建模数据可以为从人脸图像中提取的数据。建模数据内部可以包括瞳距、脸部形状等人脸特征数据。当上述版本信息与预设的数据库对应的版本信息不兼容时,可以将上述数据内容替换为第二预设值,将第二预设值存储至数据库的该条目数据中该数据的存储位置。其中,第二预设值为预设的值,可以为0或1或其他值。当与上述数据内容对应的图像已存储至数据库时,对该图像进行特征提取,采用提取得到的数据内容替换数据库中的第二预设值。在本实施例中,当数据内容的版本信息与数据库的版本信息不兼容时,可以先导入第二预设值和对应的图像。在图像导入之后,作为执行主体的电子设备可以采用特征提取算法对图像进行特征提取,得到新的数据内容,该新的数据内容的版本信息与数据库的版本信息是匹配的,因此可以将该新的数据内容直接替换第二预设值。综上,本实施例可以在版本信息不兼容时,将第二预设值作为数据内容导入数据库,并重新从图像中提取特征数据,将提取的特征数据再替换第二预设值,能够更充分利用数据库文件中的图像,使导入数据库的数据为兼容的版本。在相关技术中,存储在电子设备中的数据库通常是一机一密的,出于保密性考虑,数据库中的数据不能直接导出。为了使电子设备之间数据库的数据可以共享,以提高数据库数据的丰富程度,出于安全性考虑,本申请提供了以下实施例。在本申请的另一实施例中,在图1所示实施例的基础上,步骤s102,根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将数据库文件中的数据存储至数据库的步骤,具体可以包括:获取数据库文件的密钥,以该密钥对数据库文件进行解密,根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将解密后的数据库文件中的数据存储至数据库。本实施例中,步骤s101中获取的待导入的数据库文件为加密后的文件。因此,在执行步骤s102时,可以对数据库文件进行解密,将解密后的数据存储至数据库。在将解密后的数据存储至数据库时,具体可以以预先生成的数据库密钥对解密后的数据进行加密,将加密后的数据存储至数据库。数据库密钥可以是第一设备预先随机生成的密钥。在本实施例中,当对数据库文件解密成功时,才能将数据库文件中的数据导入数据库。如果数据库文件解密失败,则无法将数据库文件中的数据导入数据库。在获取数据库文件的密钥时,具体的,可以将用户输入的数据作为数据库文件的密钥。也可以从其他设备中获取数据库文件的密钥。以该密钥对数据库文件进行解密时,可以采用预设的解密算法,以该密钥对数据库文件进行解密。其中,预设的解密算法可以为消息摘要算法第五版(messagedigestalgorithm,md5)、rsa算法或数据加密标准(dataencryptionstandard,des)等。解密过程可以参见相关技术,此处不再详述。综上,本实施例中,待导入的数据库文件是经过加密的,在将数据库文件中的数据存储至数据时,可以以获取的密钥对数据库文件进行解密,将解密之后的数据库文件中的数据导入数据库,本实施例能够提高数据库文件的安全性。数据库文件可以包括多个条目数据,每条目数据中包括多条数据。各个条目数据之间是彼此独立的,当对整个数据库文件进行加密时,如果解密失败,则所有的条目数据都无法导入数据库。为了避免解密失败时所有条目数据均无法导入的情况,尽可能多地导入条目数据,本申请提供了以下实施例。在本申请的另一实施例中,图1中的步骤s102可以包括:获取数据库文件的各个条目数据对应的密钥,以该密钥对数据库文件中的对应条目数据进行解密,根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将解密后的数据库文件中的该条目数据包含的各条数据存储至数据库。在本实施例中,数据库文件中的各个条目数据是分别独立地加密的,各个条目数据之间的加密密钥可以相同,也可以不同。获取数据库文件的各个条目数据对应的密钥时,可以根据用户输入的数据分别作为数据库文件的各个条目数据对应的密钥。也可以从其他设备中获取数据库文件的各个条目数据对应的密钥。数据库文件中的各个条目数据的加密算法可以相同,也可以不同。以该密钥对数据库文件中的对应条目数据进行解密时,可以采用同一解密算法,也可以采用不同解密算法。上述解密算法可以为md5、rsa或des等算法。综上,本实施例中,对数据库文件中的各个条目数据分别进行解密,当某个条目数据解密失败时,不影响其他条目数据的导入,因此能够避免解密失败时所有条目数据均无法导入的情况,从而可以尽可能多地导入条目数据。在本申请的另一实施例中,在以密钥对数据库文件中的对应条目数据进行解密之后,还可以包括:根据解密后的数据库文件中的条目数据包含的校验位数据,对解密后的数据库文件中的条目数据进行校验。在校验成功时,执行根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将解密后的数据库文件中的条目数据包含的各条数据存储至数据库的步骤。在获取校验位数据时,可以从解密后的数据库文件中的条目数据中的指定位置获取校验位数据。对解密后的数据库文件中的条目数据进行校验时,可以按照预设的校验算法对该条目数据包含的所有数据进行处理,得到校验值,判断该校验值与获取的校验位数据是否相同,如果相同,则校验成功。例如,可以采用md5算法对该条目数据包含的所有数据进行计算,得到md5值,判断该md5值和校验位数据是否相同,如果相同,则校验成功。综上,本实施例中,对数据库文件中的各个条目数据分别进行校验,当某个条目数据校验失败时,不影响其他条目数据的导入,因此能够避免校验失败时所有条目数据均无法导入的情况,从而可以尽可能多地导入条目数据。在本申请的另一实施例中,在将数据库文件中的数据存储至数据库之后,还可以包括图5所示的数据库文件导出过程,具体包括:步骤s501:获取待导出数据对应的导出范围信息。本步骤中,导出范围信息可以是根据用户输入的导出范围信息确定。导出范围信息,可以为表示待导出数据的范围的数据信息。导出范围信息具体可以为指定条件,例如,数据标签“性别”为男的所有数据,或者数据标签“时间”为5:00到6:00的所有数据等。步骤s502:根据上述导出范围信息,从数据库中导出上述待导出数据。本步骤中,可以从数据库中筛选符合上述导出范围信息的所有数据,作为待导出数据。每条待导出数据均包括数据标签和数据内容。步骤s503:按照上述数据的数据标签、数据长度和数据内容的存储格式和待导出数据,生成导出数据库文件。本步骤中,针对每条待导出数据,将待导出数据的数据内容的长度作为该待导出数据的数据长度,按照数据标签、数据长度和数据内容的顺序,将该待导出数据存储在导出数据库文件中。其中,可以将所有待导出数据按照条目数据的顺序依次存储至数据库文件中,生成导出数据库文件。在一种具体实施方式中,按照数据标签、数据长度和数据内容的顺序,将该待导出数据存储在导出数据库文件中时,可以根据数据库文件中的数据标签与数据库中的数据标签的对应关系,对待导出数据的数据标签进行转换,按照数据标签、数据长度和数据内容的顺序,将转换数据标签后的待导出数据存储在导出数据库文件中。例如,数据库中的数据标签包括“姓名”“年龄”“性别”,针对待导出数据,如果数据库文件中的数据标签与数据库中的数据标签的对应关系可以包括:“11”对应“姓名”,“12”对应“年龄”,“13”对应“性别”,则可以将待导出数据中的数据标签“姓名”转换成“11”,将“年龄”转换成“12”,将“性别”转换成“13”,将转换数据标签后的待导出数据存储在导出数据库文件中。导出数据库文件中的数据标签包括“11”“12”“13”。在另一种具体实施方式中,在将所有待导出数据按照条目数据的顺序依次存储至数据库文件中之前,还可以根据预设的校验算法确定各个条目数据的校验位数据,将该校验位数据添加至该条目数据中,按照上述数据的数据标签、数据长度和数据内容的存储格式和添加校验位数据之后的条目数据,生成导出数据库文件。这样,导出数据库文件中的各个条目数据是分别校验的,在导入时,如果条目数据校验失败,可以不影响其他条目数据的导入,能够尽可能多地导入条目数据。在根据预设的校验算法确定各个条目数据的校验位数据时,可以按照预设的校验算法对该条目数据包含的所有数据进行处理,将得到的校验值作为校验位数据。例如,可以采用md5算法对该条目数据包含的所有数据进行计算,将得到的md5值作为校验位数据。在将该校验位数据添加至该条目数据中时,可以将该校验位数据添加至条目数据中的指定位置。生成的导出数据库文件可以为二进制文件。例如,生成的导出数据库文件可以为表1和图2a所示的形式,具体内容参见步骤s101中的说明,此处不再赘述。在生成导出数据库文件之后,还可以获取密钥,以该密钥对导出数据库文件进行加密。这样可以提高数据库文件的安全性,避免数据泄露。具体的,在以该密钥对导出数据库文件进行加密时,可以采用md5、rsa或des等算法进行加密,其加密过程可以参见相关技术,此处不再详述。为了避免导入时数据库文件解密失败造成所有条目数据均无法导入,在对导出数据库文件进行加密时,可以获取数据库文件的各个条目数据对应的密钥,以该密钥对数据库文件中的对应条目数据进行加密。在本实施例中,数据库文件中的各个条目数据是分别独立地加密的,各个条目数据之间的加密密钥可以相同,也可以不同。获取数据库文件的各个条目数据对应的密钥时,可以根据用户输入的数据分别作为数据库文件的各个条目数据对应的密钥。也可以从其他设备中获取数据库文件的各个条目数据对应的密钥。数据库文件中的各个条目数据的加密算法可以相同,也可以不同。上述加密算法可以为md5、rsa或des等算法。下面结合具体实例对本申请再做详细说明。nvr包括gui、sys、stor单元,gui单元用于界面显示,sys单元用于在gui单元和stor单元之间进行中间调度,stor单元用于对人脸库进行存储和检索。从nvr中导出人脸库文件的交互流程示意图参见图6a。在图6a中,gui单元接收用户输入的待导出数据的导出范围信息和导出路径,并提示用户输入密钥,接收用户输入的密钥,将导出范围信息、导出路径及密钥发送至sys单元。sys单元将导出范围信息发送至stor单元。stor单元从人脸库中检索导出范围信息对应的人脸信息,将人脸信息发送至sys单元。sys单元对人脸信息按照数据标签、数据长度和数据内容的格式进行组装,并确定校验位数据,将校验位数据和组装后的人脸信息一起进行加密,生成导出人脸库文件,将导出人脸库文件存储至导出路径对应的存储位置。在整个过程中sys单元可以将导出进度反馈至gui单元,以向用户显示导出进度。图6b为导出的一种人脸库文件的结构示意图。该文件中包括文件头、库信息、人员1~人员n等各个条目数据。文件头中包括模数、校验位、人脸库版本号、设备型号、设备语言等数据。库信息中包括校验位、占用空间、库属性等数据。每个人员中均包括校验位、人员属性、建模数据长度、建模数据、图像长度、图像等。每条数据均采用数据标签、数据长度、数据内容格式存储。将人脸库文件导入nvr中的交互流程图参见图6c。在图6c中,gui接收用户输入的导入路径,提示用户输入密钥,接收用户输入的密钥,将导入路径和密钥发送至sys单元。sys单元,根据导入路径获取待导入的人脸库文件,以密钥对人脸库文件进行解密和校验,将校验后的人脸库文件发送至stor单元。stor单元针对校验后的人脸库文件中的数据,将人脸库文件中的数据标签所在数据的数据内容,存储至数据库中该数据标签的存储位置,存储完成后向sys单元返回结果。sys单元向gui单元反馈导入进度,gui单元向用户显示导入进度。图7为本申请实施例提供的数据库文件的导入装置的一种结构示意图。该实施例与图1所示方法实施例相对应。该实施例应用于电子设备。该装置包括:第一获取模块701,用于获取待导入的数据库文件,所述数据库文件中的每条数据包括数据标签、数据长度和数据内容,所述数据长度用于表示所述数据内容的长度;存储模块702,用于根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将所述数据库文件中的数据存储至所述数据库。在本申请的另一实施例中,图7所示实施例中,所述数据库文件包括多个条目数据,每条目数据中包括多条数据;存储模块702,包括:确定子模块(图中未示出),用于针对所述数据库文件中的每个条目数据,从所述数据库中确定所述条目数据中各条数据的存储位置;匹配子模块(图中未示出),用于根据数据库文件中的数据标签与数据库中的数据标签的对应关系,将所述数据库文件中所述条目数据的各个数据标签与所述数据库中所述条目数据的各个数据标签进行匹配;存储子模块(图中未示出),用于针对所述条目数据中匹配成功的数据标签所在的每条数据,根据所述数据的数据长度从所述数据库文件中获取对应的数据内容,将所述数据内容存储至所述数据库的所述条目数据中所述数据的存储位置。在本申请的另一实施例中,图7所示实施例中还包括:处理模块(图中未示出);处理模块,用于针对所述数据库文件中匹配失败的数据标签所在的数据,拒绝将该数据存储至所述数据库;针对所述数据库中匹配失败的数据标签所在的数据,将该数据的数据内容置空或置为第一预设值。在本申请的另一实施例中,图7所示实施例中,存储子模块还用于:在将所述数据内容存储至所述数据库的所述条目数据中所述数据的存储位置之前,获取所述数据内容的版本信息;判断所述版本信息是否与预设的所述数据库对应的版本信息兼容;如果兼容,则将所述数据内容存储至所述数据库的所述条目数据中所述数据的存储位置。在本申请的另一实施例中,图7所示实施例中,数据库文件的条目数据中还包括:与获取的数据内容对应的图像,获取的数据内容为预先对对应的图像进行特征提取得到的数据;存储子模块还用于:当所述版本信息与预设的所述数据库对应的版本信息不兼容时,将数据内容替换为第二预设值,将第二预设值存储至所述数据库的所述条目数据中所述数据的存储位置;当与所述数据内容对应的图像已存储至所述数据库时,对所述图像进行特征提取,采用提取得到的数据内容替换所述数据库中的第二预设值。在本申请的另一实施例中,图7所示实施例中,存储模块702具体用于:获取数据库文件的密钥,以所述密钥对所述数据库文件进行解密,根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将解密后的数据库文件中的数据存储至所述数据库。在本申请的另一实施例中,图7所示实施例中,数据库文件包括多个条目数据,每条目数据中包括多条数据;存储模块702具体用于:获取数据库文件的各个条目数据对应的密钥,以所述密钥对所述数据库文件中的对应条目数据进行解密,根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将解密后的数据库文件中的条目数据包含的各条数据存储至所述数据库。在本申请的另一实施例中,图7所示实施例中,存储模块702还用于:在以所述密钥对所述数据库文件中的对应条目数据进行解密之后,根据解密后的数据库文件中的条目数据包含的校验位数据,对解密后的数据库文件中的条目数据进行校验;在校验成功时,根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将解密后的数据库文件中的条目数据包含的各条数据存储至所述数据库。在本申请的另一实施例中,图7所示实施例还包括:第二获取模块(图中未示出),用于在将所述数据库文件中的数据存储至所述数据库之后,获取待导出数据对应的导出范围信息;导出模块(图中未示出),用于根据所述导出范围信息,从所述数据库中导出所述待导出数据;生成模块(图中未示出),用于按照所述数据的数据标签、数据长度和数据内容的存储格式和所述待导出数据,生成导出数据库文件。由于上述装置实施例是基于方法实施例得到的,与该方法具有相同的技术效果,因此装置实施例的技术效果在此不再赘述。对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。图8为本申请实施例提供的电子设备的一种结构示意图。该电子设备包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现本申请实施例提供的数据库文件的导入方法。该导入方法包括:获取待导入的数据库文件,所述数据库文件中的每条数据包括数据标签、数据长度和数据内容,所述数据长度用于表示所述数据内容的长度;根据所述数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将所述数据库文件中的数据存储至所述数据库。上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。作为一种具体的实施方式,本实施例中的电子设备可以为nvr,数据库可以为人脸库。人脸库为预先录入nvr中,用于和ipc发送的人脸图像进行比对的数据库。综上,本实施例可以根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照数据标签、数据长度和数据内容的存储格式,将数据库文件中的数据存储至数据库。由于数据库文件中的每条数据都以数据标签、数据长度和数据内容的格式存储于数据库文件中,不管数据库文件中各条数据位于什么位置,都可以根据数据标签之间的对应关系以及上述存储格式将各条数据存储至数据库的对应位置中,因此能够实现将数据库文件直接导入数据库中,提高数据库数据的丰富程度。本申请实施例提供的一种计算机可读存储介质。该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的数据库文件的导入方法。该导入方法包括:获取待导入的数据库文件,所述数据库文件中的每条数据包括数据标签、数据长度和数据内容,所述数据长度用于表示所述数据内容的长度;根据所述数据库文件中的数据标签与数据库中的数据标签的对应关系,按照所述数据库文件中数据的数据标签、数据长度和数据内容的存储格式,将所述数据库文件中的数据存储至所述数据库。综上,本实施例可以根据数据库文件中的数据标签与数据库中的数据标签的对应关系,按照数据标签、数据长度和数据内容的存储格式,将数据库文件中的数据存储至数据库。由于数据库文件中的每条数据都以数据标签、数据长度和数据内容的格式存储于数据库文件中,不管数据库文件中各条数据位于什么位置,都可以根据数据标签之间的对应关系以及上述存储格式将各条数据存储至数据库的对应位置中,因此能够实现将数据库文件直接导入数据库中,提高数据库数据的丰富程度。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本申请的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1