数据处理方法、装置及系统与流程

文档序号:20917953发布日期:2020-05-29 13:46阅读:205来源:国知局
数据处理方法、装置及系统与流程
本申请涉及数据存储领域,特别涉及一种数据处理方法、装置及系统。
背景技术
:数据库系统中,存储的数据信息通常包括数据位和空值(null)标记位,数据位携带有该数据信息中实际的数据,空值标记位用于标识数据位的内容是否为空值。在目前开源的数据库中,空值标记位占用一个或多个数据单位,如一个字节(byte)或一个比特(bit)。例如,greenplum数据库采用一个布尔型(bool)变量数组保存一条元组各字段数据(即数据位中携带的数据)的内容是否为空值,mysql数据库和impala数据库则通过一个比特指示数据位的内容是否为空值。但是,如此标识数据位的内容是否为空值的方式,在每次获取一个数据信息时,需要读取两个数据(即数据位和空值标记位),容易影响数据库的数据访问效率。技术实现要素:本申请实施例提供了一种数据处理方法、装置及系统,能够提高数据库的数据访问效率。所述技术方案如下:第一方面,提供了一种一种数据处理方法,可以实现复合格式到融合格式的转换,该该转换过程包括:接收携带有用于向数据库写入的第一数据信息的写入请求,所述第一数据信息包括数据位和空值标记位,所述空值标记位的内容用于标识所述数据位的内容是否为空值,所述数据库中已存储的数据信息为去除所述空值标记位的数据信息;当所述空值标记位的内容指示所述数据位的内容为空值时,将所述第一数据信息中的所述数据位的内容更新为所述有效空值标志,并在删除所述第一数据信息中的空值标记位后,存储所述第一数据信息,所述有效空值标志与所述数据库中已存储的数据信息的数据位的内容不同;当所述空值标记位的内容指示所述数据位的内容不为空值,且所述数据位的内容与所述有效空值标志不同时,在删除所述第一数据信息中的空值标记位后,存储所述第一数据信息。本申请实施例中,当所述空值标记位的内容指示所述数据位的内容为空值时,将所述第一数据信息中的所述数据位的内容更新为所述有效空值标志,并在删除所述第一数据信息中的空值标记位后,存储所述第一数据信息,当所述空值标记位的内容指示所述数据位的内容不为空值,且所述数据位的内容与所述有效空值标志不同时,在删除所述第一数据信息中的空值标记位后,存储所述第一数据信息。如此实现复合格式到融合格式的转换,在每次获取一个数据信息时,无需读取两个数据(即数据位和空值标记位),提高数据库的数据访问效率。可选地,所述方法还包括:当所述空值标记位的内容指示所述数据位的内容不为空值,且所述数据位的内容与所述有效空值标志相同,存储所述第一数据信息;在所述数据库的已存储的其他数据信息中的数据位外添加所述空值标记位。可选地,所述方法还包括:当所述空值标记位的内容指示所述数据位的内容不为空值,且所述数据位的内容与所述有效空值标志相同,采用备选空值标志更新所述有效空值标志,得到新的有效空值标志,所述备选空值标志与所述数据库中已存储的数据信息的数据位的内容不同;将所述数据库中第一目标数据信息中的数据位的内容更新为新的有效空值标志,所述第一目标数据信息为数据位的内容为原有效空值标志的数据信息;删除所述第一数据信息中的空值标记位,并存储所述第一数据信息。有效空值标志的设置影响到融合格式是否有效,进一步影响到了数据库的性能,在本申请实施例中,有效空值标志可以有多种设置方式,以保证融合格式的有效性,保证数据库的性能,提高数据访问效率。本申请实施例以以下多种设置方式为例进行说明:在第一种设置方式中,数据位的长度为固定长度,该固定长度为x字节,有效空值标志的长度为y字节,y大于x,x和y均为2的整数倍。通过将有效空值标志的长度设置为大于数据位的长度,可以保证数据位中的内容(即携带的数据)与有效空值标志不同,从而避免出现两者相同的情况,保证有效空值标志对于任意写入的数据信息的有效性。示例的,y为x的n倍,n为2的整数倍。由于有效空值标志的长度越长,其所占用的存储空间越大,因此,通常y为x的2倍,即n=2。如此,可以在保证数据位中的内容与有效空值标志不同的同时,保证尽量占用较小的存储空间。本申请实施例中,在第一种设置方式中,尽管在数据库中,存储第一数据信息所占用的内存与复合格式所占用的内存相同,但由于有效数据标志是第一数据信息的数据位中无法使用到的数据,因此可以保证在整个数据处理过程中融合格式的数据的始终有效性。并且,由于在缓存中进行数据信息读取时,无需进行两次数据读取,仅需对数据位进行读取,因此,可以有效降低cachemiss的概率和数据访问时间,从而提高数据访问效率。在第二种设置方式中,数据库支持64位操作系统,第一数据信息的长度可变,也即是其数据位携带的是变字节长度数据,变字节长度数据在数据库中通常使用数据地址的格式来存储该数据的实际存放位置。而0xffffffffffffffff是一个目前未使用的一个数据地址,因此,有效空值标志可以为0xffffffffffffffff。与该第二种设置方式对应的,管理节点在删除第一数据信息中的空值标记位后,存储第一数据信息的过程包括:在删除第一数据信息中的空值标记位后,采用数据地址的格式存储第一数据信息中的数据位中的内容。在第二种设置方式中,由于有效数据标志是存储第一数据信息的数据位时无法使用到的数据,因此可以保证在整个数据处理过程中融合格式的数据的始终有效性。可选地,本申请实施例还可以实现融合格式到复合格式的转换,该转换过程相当于前述复合格式到融合格式的转换的逆过程。该转换过程还包括:接收用于从所述数据库读取第二数据信息的读取请求;当所述数据库中已存储的数据信息为去除所述空值标记位的数据信息,将所述数据库中存储的第二数据信息的数据位的内容与所述有效空值标志进行比较;当所述数据位的内容与所述有效空值标志相同时,在所述第二数据信息的所述数据位外添加所述空值标记位后,输出所述第二数据信息,添加的所述空值标记位的内容指示所述第二数据信息的数据位的内容为空值;当所述数据位的内容与所述有效空值标志不同时,在所述第二数据信息的所述数据位外添加所述空值标记位后,输出所述第二数据信息,添加的所述空值标记位的内容指示所述第二数据信息的数据位的内容不为空值。第二方面,本申请提供一种数据处理装置,所述装置可以包括至少一个模块,该至少一个模块可以用于实现上述第一方面或者第一方面的各种可能实现提供的所述数据处理方法。第三方面,本申请提供一种计算设备,该计算设备包括处理器和存储器。该存储器存储计算机指令;该处理器执行该存储器存储的计算机指令,使得该计算设备执行上述第一方面或者第一方面的各种可能实现提供的方法,使得该计算设备部署上述第二方面或者第二方面的各种可能实现提供的该数据处理装置。第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,该计算机指令指示该计算设备执行上述第一方面或者第一方面的各种可能实现提供的方法,或者该计算机指令指示该计算设备部署上述第二方面或者第二方面的各种可能实现提供的数据处理装置。第五方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行上述第一方面或者第一方面的各种可能实现提供的方法,使得该计算设备部署上述第二方面或者第二方面的各种可能实现提供的数据处理装置。第六方面,提供一种数据处理系统,包括:管理节点和数据节点,所述管理节点包括第二方面或者第二方面的各种可能实现所述的数据处理装置或第三方面所述的计算设备。第七方面,提供一种芯片,所述芯片可以包括可编程逻辑电路和/或程序指令,当所述芯片运行时用于实现如第一方面任一所述的数据处理方法。本申请实施例提供的技术方案带来的有益效果是:本申请实施例中,当所述空值标记位的内容指示所述数据位的内容为空值时,将所述第一数据信息中的所述数据位的内容更新为所述有效空值标志,并在删除所述第一数据信息中的空值标记位后,存储所述第一数据信息,当所述空值标记位的内容指示所述数据位的内容不为空值,且所述数据位的内容与所述有效空值标志不同时,在删除所述第一数据信息中的空值标记位后,存储所述第一数据信息。如此实现复合格式到融合格式的转换,在每次获取一个数据信息时,无需读取两个数据(即数据位和空值标记位),提高数据库的数据访问效率。传统的数据库系统只支持一种数据格式,相应的,写入的数据和读出的数据均必须为该数据库系统所支持格式的数据。而本申请实施例中,管理节点可以实现复合格式与融合格式的相互转换,从而实现数据库系统兼容两种数据格式。如此,支持不同数据格式的数据库之间的数据可以互相传输,提高数据库中数据处理的灵活性。并且,本申请实施例中,数据库系统中数据库当前所支持的数据格式可以根据具体场景(如对应的应用程序的用途)设置,例如由管理节点设置或者人工设置,如此进一步提高数据库中数据处理的灵活性。附图说明图1是本申请实施例提供的一种数据处理方法所涉及的数据库系统的示意图;图2是本申请实施例提供的另一种数据处理方法所涉及的数据库系统的示意图;图3是本申请实施例提供的一种数据处理方法的流程示意图;图4是本申请实施例提供的一种数据位在不同长度的情况下,所对应的有效空值标志的示意图;图5是本申请实施例提供的另一种数据处理方法的流程示意图;图6是本申请实施例提供的一种数据处理装置的结构示意图;图7是本申请实施例提供的另一种数据处理装置的结构示意图;图8是本申请实施例提供的又一种数据处理装置的结构示意图;图9是本申请实施例提供的再一种数据处理装置的结构示意图;图10是本申请实施例示意性地提供一种计算机设备的可能的基本硬件架构。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。为了便于读者理解,下面对本申请实施例所涉及的名词进行解释。缓存失效(cachemiss):缓存(cache)是数据库系统中相对于内存而言的一个概念,缓存通常又被细分三层,包括l1cache,l2cache和l3cache,其读写延迟依次增加,实现的成本也依次降低。在进行数据库中的数据访问时,若访问的数据在缓存已存储,称为“命中”(hit),反之则称为“缺失”(miss)。中央处理器(cpu,centralprocessingunit)访问缓存的速度介于寄存器与内存之间(数量级的差别),降低缓存cachemiss可显著提升数据访问效率。数据信息:数据信息至少包括数据位,该数据位用于携带数据。空值(null):在数据库系统中,空值用于表示缺失的元素值。也即是,空值所处的数据位为空。复合格式:在数据库系统中,采用数据位与空值(null)标记位来描述数据信息的格式称为复合格式。其中,空值标记位占用一个或多个数据单位,如一个字节(byte)或一个比特(bit)。例如,greenplum数据库、mysql数据库和impala数据库仅支持复合格式的数据存储。空值标记位中的内容指示为真时,表示数据位的值为空值,也称未知(unknow),即数据缺失。对于空值标记位中的内容指示为真的数据信息,不需要再到数据位中去查找其具体的数据(即数据值),从而提高检索查询效率。例如,空值标记位的内容为1,指示为真。融合格式:在数据信息的数据位中使用空值标志来描述数据为空的存储格式称为融合格式。在支持融合格式的数据库中,对于数据值不为空值的数据位,则使用数据位本身的数据。例如,在线分析处理(on-lineanalyticalprocessing,olap)系统中仅支持融合格式的数据存储。空值标志:使用不常见甚至不会出现的特殊数据来描述数据位中的内容为空值,该选取的特殊数据称为空值标志。关系型数据库(relationaldatabase):关系型数据库是分布式数据库(distributeddatabase,ddb)中的一种,关系型数据库是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,通常一行数据是数据读写的最小单位,也称为一条记录。关系型数据库中,一系列的行和列被称为数据表,一个数据表可以视为一个二维表。关系模型可以简单理解为二维表格模型。在关系型数据库中,按照结构化的方式存储数据,每个数据表的各个字段均按照预先设置的规则定义好(也即是表的结构是预先定义的),再根据数据表的结构存入数据。数据表中各个字段中的数据也称字段数据。在关系型数据库中,前述数据信息为字段数据。请参考图1,图1是本申请实施例提供的一种数据处理方法所涉及的数据库系统的示意图,如分布式数据库系统(distributeddatabasesystem,ddbs),的应用环境的示意图。该数据库系统100可以为一个服务器或者由多个服务器组成的服务器集群,该数据库系统100包括数据库管理系统(databasemanagementsystem,dms)110和数据库120。该数据库系统100中,数据库管理系统110主要用于管理数据,数据库120主要用于存储数据。应用程序(也可以为客户端)200可以使用该数据库系统100中的数据,也即是进行数据的访问,如数据的读取和写入。示例的,在分布式数据库系统中,应用程序200可以通过数据库管理系统110对数据库120进行透明操作,数据库120中的数据分别在不同的局部数据库中存储、由一个或多个数据库管理系统进行管理、在不同的机器上运行、由不同的操作系统支持,并被不同的通信网络连接在一起。其中,如图2所示,数据库系统100包括:管理节点(也称数据库引擎,协调数据节点,coordinator)111和数据节点121。数据库管理系统可以部署在管理节点111上,数据库可以部署在一个或多个数据节点(datanode)121上。当该数据库系统为分布式数据库系统时,数据库部署在多个数据节点上。每个数据节点可以分布在一个或多个存储介质上,如硬盘或磁盘上。管理节点111用于管理相应的数据节点121,并实现应用程序200对数据节点121的操作,例如执行数据添加操作、数据删除操作、数据修改操作或数据查询操作等。本申请实施例中,管理节点111可以为单独一个节点,或者一个或多个数据节点121中指定数据节点或者选举得到的数据节点,其可以为一个或多个算子、一个或多个应用实例、一个或多个进程、一个或多个处理引擎、一个服务器或者由多个服务器组成的服务器集群。每个数据节点表征数据库系统的一个设定的最小处理单元。示例的,每个数据节点可以为管理和/或存储数据的一个应用实例或一个数据库执行进程。该数据库系统可以部署在一个服务器或者由多个服务器组成的服务器集群,一个数据库系统可以称为一个数据存储器。值得说明的是,在一些应用场景下,前述数据库系统也可以包括前述应用程序200。值得说明的是,本申请实施例提供的数据处理方法还可以应用于其他数据系统,只要是支持数据存储、读取和分析的系统即可,本申请实施例仅以数据库系统为例进行示意性说明。本申请实施例提供一种数据处理方法,可以应用于管理节点,该管理节点可以为如图2所示的数据库系统中已有的管理节点,也可以是新增的管理节点,还可以是其他数据系统的管理节点。如图3所示,假设管理节点在接收到写入请求时,数据库中已存储的数据信息为去除空值标记位的数据信息。也即是,此时数据库支持融合格式的数据存储。因此,为了保证接收到的复合格式的数据存储在支持融合格式的数据存储的数据库中,管理节点需要进行数据的格式转换,参见后续步骤201至步骤206。步骤201、管理节点接收携带有用于向数据库写入的第一数据信息的写入请求。本申请实施例中,该第一数据信息包括数据位和空值标记位。如前所述,该空值标记位用于标识数据位的内容是否为空值。因此可知该第一数据信息为复合格式的数据。写入请求可以由应用程序生成,也可以由其他节点生成,例如,该写入请求可以由数据库系统中的一个数据节点生成,用于在数据库的数据处理时,将需要重分布的数据写入另一数据节点;又例如,该写入请求为另一数据库系统中的管理节点生成,用于将该另一数据库系统中的数据写入该数据库系统;再例如,当管理节点为数据库中的一个算子时,该写入请求为数据库中的另一算子生成,例如该另一算子为管理节点对应算子的下一算子,该写入请求中的第一数据信息为该另一算子的计算结果;本申请实施例对写入请求的生成装置不做限定,只要其携带的第一数据信息为复合格式的数据即可。本申请实施例在实际实现时,管理节点在接收到写入请求后,需要检测当前数据库所支持的数据格式,在其支持的数据格式为融合格式时,再执行后续步骤,由于本申请实施例假设该数据库支持的数据格式为融合格式,因此直接执行后续步骤202。步骤202、管理节点检测空值标记位的内容是否指示数据位的内容为空值。当空值标记位的内容指示数据位的内容为空值时,执行步骤203;当空值标记位的内容指示数据位的内容不为空值时,执行步骤204。可选地,当空值标记位的内容指示为真时,确定数据位的内容为空值;当空值标记位的内容指示为假时,确定数据位的内容不为空值。示例的,空值标记位的内容为1,指示为真;空值标记位的内容为0,指示为假。步骤203、管理节点将第一数据信息中的数据位的内容更新为有效空值标志,并在删除第一数据信息中的空值标记位后,存储第一数据信息。如前所述,空值标志是一种不常见甚至不会出现的特殊数据。该有效空值标志与数据库中已存储的数据信息的数据位的内容不同。有效空值标志的设置影响到融合格式是否有效,进一步影响到了数据库的性能,在本申请实施例中,有效空值标志可以有多种设置方式,以保证融合格式的有效性,保证数据库的性能,提高数据访问效率。本申请实施例以以下多种设置方式为例进行说明:在第一种设置方式中,数据位的长度为固定长度,该固定长度为x字节,有效空值标志的长度为y字节,y大于x,x和y均为2的整数倍。通过将有效空值标志的长度设置为大于数据位的长度,可以保证数据位中的内容(即携带的数据)与有效空值标志不同,从而避免出现两者相同的情况,保证有效空值标志对于任意写入的数据信息的有效性。示例的,y为x的n倍,n为2的整数倍。由于有效空值标志的长度越长,其所占用的存储空间越大,因此,通常y为x的2倍,即n=2。如此,可以在保证数据位中的内容与有效空值标志不同的同时,保证尽量占用较小的存储空间。常见的数据位的固定长度为1字节、2字节、4字节和8字节,则一一对应的,有效空值标志的长度分别为2字节、4字节、8字节和16字节。如图4所示,图4示意性地示出数据位在不同长度的情况下,所对应的有效空值标志。其中,在数据位的长度为1字节时,有效空值标志可以为0x81;在数据位的长度为2字节时,有效空值标志可以为0x8100;在数据位的长度为4字节时,有效空值标志可以为0x81000000;在数据位的长度为8字节时,有效空值标志可以为0x8100000000000000。图4中仅是对有效空值标志位进行示意性说明,并不对此进行限定,只要设置的有效空值标志位的长度为数据位的长度的两倍即可。与该第一种设置方式对应的,管理节点在删除第一数据信息中的空值标记位后,存储第一数据信息的过程包括:在删除第一数据信息中的空值标记位后,采用y字节存储第一数据信息中的数据位中的内容。传统技术中,若采用复合格式存储数据,在缓存中,每次访问一个数据信息均需要进行两次数据读取,即分别读取空值标记位和数据位,如此会增加cachemiss概率和数据访问时间,进而降低数据访问效率。本申请实施例中,在第一种设置方式中,尽管在数据库中,存储第一数据信息所占用的内存与复合格式所占用的内存相同,但由于有效数据标志是第一数据信息的数据位中无法使用到的数据,因此可以保证在整个数据处理过程中融合格式的数据的始终有效性。并且,由于在缓存中进行数据信息读取时,无需进行两次数据读取,仅需对数据位进行读取,因此,可以有效降低cachemiss的概率和数据访问时间,从而提高数据访问效率。本申请实施例在实际实现时,有效空值标志的长度也可以和数据位的长度相同,如此可以直接按照数据位的实际长度存储数据位的内容,从而减少数据信息在存储时对内存的占用。在第二种设置方式中,数据库支持64位操作系统,第一数据信息的长度可变,也即是其数据位携带的是变字节长度数据,变字节长度数据在数据库中通常使用数据地址的格式来存储该数据的实际存放位置。而0xffffffffffffffff是一个目前未使用的一个数据地址,因此,有效空值标志可以为0xffffffffffffffff。与该第二种设置方式对应的,管理节点在删除第一数据信息中的空值标记位后,存储第一数据信息的过程包括:在删除第一数据信息中的空值标记位后,采用数据地址的格式存储第一数据信息中的数据位中的内容。在第二种设置方式中,由于有效数据标志是存储第一数据信息的数据位时无法使用到的数据,因此可以保证在整个数据处理过程中融合格式的数据的始终有效性。步骤204、管理节点检测数据位的内容与有效空值标志是否相同。当数据位的内容与有效空值标志不同,执行步骤205;当数据位的内容与有效空值标志相同,执行步骤206。由于在前述步骤202中检测到空值标记位的内容指示数据位的内容不为空值,则说明数据位中携带有实际的数据,但是该数据存在与有效空值标志相同的可能性,影响有效空值标志的可靠性。因此,管理节点需要检测数据位的内容与有效空值标志是否相同。示例的,管理节点可以直接将数据位的内容与有效空值标志进行比较,即可确定两者是否相同。步骤205、管理节点在删除第一数据信息中的空值标记位后,存储第一数据信息。当管理节点检测到数据位的内容与有效空值标志不同时,说明数据位中携带有实际的数据不会影响有效空值标志的可靠性,因此删除第一数据信息中的空值标记位,得到的新的第一数据信息是融合格式的数据信息,进而将该第一数据信息以数据库支持的格式存储在数据库中。步骤206、管理节点执行对于标志冲突情况的处理流程。当管理节点检测到数据位的内容与有效空值标志相同时,说明数据位中携带有实际的数据影响了有效空值标志的可靠性,如果直接将该第一数据信息存储在数据库中,可能引起数据库的融合格式的数据失效。本申请实施例将数据位的内容与有效空值标志相同的情况称之为标志冲突情况。管理节点需要执行标志冲突情况的处理流程,以避免该标志冲突情况所带来的影响。该处理流程可以通过多种可选方式实现,本申请实施例以以下几种可选方式为例进行说明:在一种可选方式中,通过进行格式复原来避免标志冲突。如步骤201所述,管理节点在接收到前述写入请求时,数据库支持融合格式的数据存储。而当空值标记位的内容指示数据位的内容不为空值,且数据位的内容与有效空值标志相同时,管理节点可以将第一数据信息以及数据库中已存储的其他数据信息以复合格式存储。由于第一数据信息本身即为复合格式的数据,因此可以直接存储在数据库中,而已存储的其他数据信息(即第一数据信息之外的数据信息)是融合格式的数据,因此需要进行格式转换。则可以在数据库的已存储的其他数据信息中的数据位外添加空值标记位,进而将其他数据信息转换为复合格式的数据。值得说明的是,存储第一数据信息和在数据库的已存储的其他数据信息中的数据位外添加空值标记位的动作可以同时执行也可以先后执行,本申请实施例对两者的执行先后顺序不做限定。在第二种可选方式中,进行有效空值标志更新来避免标志冲突。可选地,管理节点中可以预先设置有多个空值标志,每个空值标志可以为人工设置,也可以由管理节点基于预设规则确定。该多个空值标志中,当前生效的空值标志为有效空值标志,其与数据库中已存储的数据信息的数据位的内容不同。则对于标志冲突情况的处理流程包括:步骤a1、当空值标记位的内容指示数据位的内容不为空值,且数据位的内容与有效空值标志相同,采用备选空值标志更新有效空值标志,得到新的有效空值标志,该备选空值标志与数据库中已存储的数据信息的数据位的内容不同。可选地,管理节点可以在该多个空值标志中选择与当前的有效空值标志不同,且与数据库中已存储的数据信息的数据位的内容不同的空值标志作为备选空值标志。在第一种可选示例中,管理节点可以按照一定顺序存储多个空值标志(该多个空值标志互不相同),例如采用数组方式存储该多个空值标志。在选择备选空值标志时,管理节点可以从当前的有效空值标志的下一个空值标志开始,依次获取空值标志,并在每次获取一个空值标志后,将获取的空值标志与数据库中已存储的各个数据信息的数据位的内容进行比较,直至获取的空值标志与数据库中所有已存储的数据信息的数据位的内容均不相同,将该空值标志确定为备选空值标志,停止进行空值标志的获取。如表1所示,表1为一示意性的空值标志表,其记录有管理节点存储的多个空值标志,表1假设管理节点存储有3个空值标志,分别为0x8100、0x8101和0x8102。假设第一数据信息的数据位的内容为0x8100,当前的有效空值标志为0x8100,则数据位的内容与有效空值标志相同,获取有效空值标志0x8100的下一个空值标志0x8101,将该空值标志与数据库中已存储的各个数据信息的数据位的内容进行比较,若空值标志0x8101与数据库中所有已存储的数据信息的数据位的内容均不相同,将其确定为备选空值标志;若空值标志0x8101与数据库中任一已存储的数据信息的数据位的内容相同,获取空值标志0x8101的下一个空值标志0x8102,再次将该空值标志与数据库中已存储的各个数据信息的数据位的内容进行比较,若空值标志0x8102与数据库中所有已存储的数据信息的数据位的内容均不相同,将其确定为备选空值标志。表1空值标志是否有效0x8100有效0x81010x8102在第二种可选示例中,在每次接收到一个写入请求后,当空值标记位的内容指示数据位的内容不为空值时,管理节点可以在检测到数据位的内容与有效空值标志不同时,将多个空值标志中除当前的有效空值标志之外的w个空值标志分别与数据位的内容进行比较,将与该数据位的内容相同的空值标志确定为无效空值标志;则在需要选择备选空值标志时,管理节点可以从这w个空值标志中除无效空值标志之外的空值标志中确定备选空值标志,例如,随机选择一个除无效空值标志之外的空值标志作为备选空值标志。w为正整数,w≤r-1,r为多个空值标志的总数。可选地,管理节点可以按照一定顺序存储多个空值标志,例如采用数组方式存储该多个空值标志。w个空值标志可以为当前的有效空值标志之后的相邻的w个空值标志。示例的,在这种情况下,管理节点可以从这w个空值标志中除无效空值标志之外的空值标志中选择离当前的有效空值标志最近的空值标志作为备选空值标志。仍然以前述表1为例,假设w=1,且多个空值标志按照一定顺序存储,在每次接收到一个写入请求后,当空值标记位的内容指示数据位的内容不为空值时,管理节点可以在检测到数据位的内容与有效空值标志不同时,将多个空值标志中除当前的有效空值标志:0x8100之外的1个空值标志0x8101分别与数据位的内容进行比较,将与该数据位的内容相同的空值标志确定为无效空值标志;则在需要选择备选空值标志时,管理节点可以从这1个空值标志中除无效空值标志之外的空值标志中确定备选空值标志。例如,在当前时刻,空值标志0x8101与之前接收到的写入请求中的数据位的内容均不同,也即是不存在无效空值标志,则将该空值标志0x8101确定为备选空值标志。需要说明的是,管理节点在采用备选空值标志更新有效空值标志,得到新的有效空值标志后,可以在存储多个空值标志的数组中,将原有效空值标志标识为无效,将新的有效空值标志标识为有效。标识为无效的空值标志可以在后续过程中禁止使用,或者直接删除。可选地,若在步骤a1中,无法获取备选空值标志,例如除有效空值标志之外的其他空值标志均存在与数据库存储的数据信息的数据位的内容相同的情况,又例如,除有效空值标志之外的其他空值标志均为无效空值标志。在一种可选示例中,管理节点可以发出告警信息,提示用户重新设置空值标志,在另一种可选方式中,管理节点可以执行前述第一种可选方式中,通过进行格式复原来避免标志冲突。步骤a2、将数据库中第一目标数据信息中的数据位的内容更新为新的有效空值标志,第一目标数据信息为数据位的内容为原有效空值标志的数据信息。由于步骤a1中进行了有效空值标志的更新,而数据库中的数据位的内容为原有效空值标志也需要进行更新,因此,管理节点在数据库中筛选出数据位的内容为原有效空值标志的数据信息,本申请实施例将该数据信息称之为第一目标数据信息,之后管理节点将数据库中第一目标数据信息中的数据位的内容更新为新的有效空值标志。仍然以表1为例,假设第一目标数据信息的数据位的内容为0x8100,而新的有效空值标志为0x8101,则将该数据位的内容更新为0x8101。步骤a3、删除第一数据信息中的空值标记位,并存储第一数据信息。由于有效空值标志进行了更新,而管理节点中的多个空值标志互不相同,因此,第一数据信息的数据位的内容与有效空值标志不同。并且,由于第一数据信息为复合格式的数据,需要将第一数据信息转换为融合格式的数据后再存储。管理节点删除第一数据信息中的空值标记位,并存储第一数据信息的过程可以参考前述步骤203,本申请实施例对此不再赘述。值得说明的是,前述步骤203中,采用前述两种设置方式可以有效减少甚至避免融合格式的失效。在一些较为可靠的数据库系统中,可以不再执行前述步骤204和206,直接执行步骤205,也即是默认数据位的内容与有效空值标志不同,如此可以简化检测过程,提高数据访问效率。但是一些数据库系统中的数据可能会随着应用场景的不同而不断变化,存在数据位的内容与有效空值标志相同的概率,又或者,在前述步骤203中,并未采用前述两种设置方式设置有效数据标志,因此也存在数据位的内容与有效空值标志的概率相同的概率,如此,仍然需要执行前述步骤204和206。综上所述,本申请实施例中,当所述空值标记位的内容指示所述数据位的内容为空值时,将所述第一数据信息中的所述数据位的内容更新为所述有效空值标志,并在删除所述第一数据信息中的空值标记位后,存储所述第一数据信息,当所述空值标记位的内容指示所述数据位的内容不为空值,且所述数据位的内容与所述有效空值标志不同时,在删除所述第一数据信息中的空值标记位后,存储所述第一数据信息。如此实现复合格式到融合格式的转换,在每次获取一个数据信息时,无需读取两个数据(即数据位和空值标记位),提高数据库的数据访问效率。前述步骤201至206假设数据库支持融合格式的数据存储,本申请实施例在实际实现时,若数据库支持复合格式的数据存储,则在步骤201后可以直接将接收到的第一数据信息存储。本申请实施例中,通过前述步骤201至206实现复合格式到融合格式的转换。进一步的,本申请实施例还可以实现融合格式到复合格式的转换,该转换过程相当于前述复合格式到融合格式的转换的逆过程。如图5所示,该转换过程可以参考以下步骤207至步骤210。步骤207、管理节点接收用于从数据库读取第二数据信息的读取请求。本申请实施例假设数据库中已存储的数据信息为去除所述空值标记位的数据信息,此时数据库支持融合格式的数据存储。步骤208、管理节点将数据库中存储的第二数据信息的数据位的内容与有效空值标志进行比较。步骤209、当数据位的内容与有效空值标志相同时,管理节点在第二数据信息的数据位外添加空值标记位后,输出第二数据信息,添加的空值标记位的内容指示第二数据信息的数据位的内容为空值。当数据位的内容与有效空值标志相同时,说明数据位的内容实际为空值,管理节点在第二数据信息的数据位外添加空值标记位后,输出第二数据信息,添加的空值标记位的内容指示第二数据信息的数据位的内容为空值,如此便可以将融合格式的第二数据信息的数据转换为复合格式的数据。参考前述步骤202,假设当空值标记位的内容指示为真时,确定数据位的内容为空值;当空值标记位的内容指示为假时,确定数据位的内容不为空值。则该添加的数据位的内容指示为真。示例的,空值标记位的内容为1,指示为真;空值标记位的内容为0,指示为假。则该添加的数据位的内容为1。步骤210、当数据位的内容与有效空值标志不同时,管理节点在第二数据信息的数据位外添加空值标记位后,输出第二数据信息,添加的空值标记位的内容指示第二数据信息的数据位的内容不为空值。当数据位的内容与有效空值标志相同时,说明数据位的内容实际不为空值,该数据位的内容为其本身内容,管理节点在第二数据信息的数据位外添加空值标记位后,输出第二数据信息,添加的空值标记位的内容指示第二数据信息的数据位的内容不为空值,如此便可以将融合格式的第二数据信息的数据转换为复合格式的数据。与步骤209同理,则该添加的数据位的内容指示为假。示例的,该添加的数据位的内容为0。值得说明的是,参考前述步骤203,由于管理节点在进行数据信息存储时,对于步骤203的两种不同的有效空值标志的设置方式,数据信息的数据位的存储方式不同,因此,在进行数据信息读取时,对应于该两种不同的有效空值标志的设置方式,数据读取方式也不同。当有效空值标志采用前述步骤203中的第一种设置方式设置时,步骤209和步骤210中,在第二数据信息的数据位外添加空值标记位后,输出第二数据信息的过程包括:在存储的y字节的第二数据信息的数据位的内容中提取x字节的内容作为数据位,数据位外添加空值标记位后得到第二数据信息,并输出该第二数据信息。当有效空值标志采用前述步骤203中的第二种设置方式设置时,步骤209和步骤210中,在第二数据信息的数据位外添加空值标记位后,输出第二数据信息的过程包括:将数据地址格式的第二数据信息的数据位的内容转换为数据位写入时的原始内容,在进行数据格式转换后的数据位外添加空值标记位后得到第二数据信息,并输出该第二数据信息。前述步骤207至210假设数据库支持融合格式的数据存储,本申请实施例在实际实现时,若数据库支持复合格式的数据存储,则在步骤207之后可以直接读取存储的第二数据信息。本申请实施例在实际实现时,管理节点可以包括多个处理引擎,例如包括复合格式数据处理引擎和融合格式数据处理引擎,复合格式数据处理引擎用于进行复合格式数据的处理,融合格式数据处理引擎用于进行融合格式数据的处理。通过设置两个支持不同数据格式的处理引擎,可以实现数据库系统所支持的数据格式的快速切换,提高数据处理效率。需要说明的是,本申请实施例提供的数据处理方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本
技术领域
的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。综上所述,本申请实施例中,当所述空值标记位的内容指示所述数据位的内容为空值时,将所述第一数据信息中的所述数据位的内容更新为所述有效空值标志,并在删除所述第一数据信息中的空值标记位后,存储所述第一数据信息,当所述空值标记位的内容指示所述数据位的内容不为空值,且所述数据位的内容与所述有效空值标志不同时,在删除所述第一数据信息中的空值标记位后,存储所述第一数据信息。如此实现复合格式到融合格式的转换,在每次获取一个数据信息时,无需读取两个数据(即数据位和空值标记位),提高数据库的数据访问效率。传统的数据库系统只支持一种数据格式,相应的,写入的数据和读出的数据均必须为该数据库系统所支持格式的数据。而本申请实施例中,管理节点可以实现复合格式与融合格式的相互转换,从而实现数据库系统兼容两种数据格式。如此,支持不同数据格式的数据库之间的数据可以互相传输,提高数据库中数据处理的灵活性。并且,本申请实施例中,数据库系统中数据库当前所支持的数据格式可以根据具体场景(如对应的应用程序的用途)设置,例如由管理节点设置或者人工设置,如此进一步提高数据库中数据处理的灵活性。进一步的,当管理节点为数据库系统中的一个模块(如一个或多个算子、一个或多个应用实例或一个或多个进程)时,支持不同数据格式的模块之间的数据也可以互相传输,提高数据库系统中模块间数据处理的灵活性。图6是本申请实施例提供的一种数据处理装置300的结构示意图,如图6所示,所述装置300包括:第一接收模块301,用于接收携带有用于向数据库写入的第一数据信息的写入请求,所述第一数据信息包括数据位和空值标记位,所述空值标记位的内容用于标识所述数据位的内容是否为空值,所述数据库中已存储的数据信息为去除所述空值标记位的数据信息;第一处理模块302,用于当所述空值标记位的内容指示所述数据位的内容为空值时,将所述第一数据信息中的所述数据位的内容更新为所述有效空值标志,并在删除所述第一数据信息中的空值标记位后,存储所述第一数据信息,所述有效空值标志与所述数据库中已存储的数据信息的数据位的内容不同;第二处理模块303,用于当所述空值标记位的内容指示所述数据位的内容不为空值,且所述数据位的内容与所述有效空值标志不同时,在删除所述第一数据信息中的空值标记位后,存储所述第一数据信息。图7是本申请实施例提供的另一种数据处理装置300的结构示意图,如图7所示,所述装置300还可以包括:第三处理模块304,用于当所述空值标记位的内容指示所述数据位的内容不为空值,且所述数据位的内容与所述有效空值标志相同,且所述空值标记位的内容指示所述数据位的内容不为空值,存储所述第一数据信息;标志添加模块305,用于在所述数据库的已存储的其他数据信息中的数据位外添加所述空值标记位。图8是本申请实施例提供的又一种数据处理装置300的结构示意图,如图8所示,所述装置300还包括:标志更新模块306,用于当所述空值标记位的内容指示所述数据位的内容不为空值,且所述数据位的内容与所述有效空值标志相同,采用备选空值标志更新所述有效空值标志,得到新的有效空值标志,所述备选空值标志与所述数据库中已存储的数据信息的数据位的内容不同;所述标志更新模块306,还用于将所述数据库中第一目标数据信息中的数据位的内容更新为新的有效空值标志,所述第一目标数据信息为数据位的内容为原有效空值标志的数据信息;标志删除新模块307,用于删除所述第一数据信息中的空值标记位,并存储所述第一数据信息。可选的,所述数据位的长度为x字节,所述有效空值标志的长度为y字节,所述y大于所述x,所述x和所述y均为2的整数倍;所述标志删除新模块307,用于:在删除所述第一数据信息中的空值标记位后,采用y字节存储所述第一数据信息中的数据位中的内容。可选的,所述y为所述x的2倍。可选的,所述数据库支持64位操作系统,所述第一数据信息的长度可变,所述有效空值标志为0xffffffffffffffff。图9是本申请实施例提供的再一种数据处理装置300的结构示意图,如图9所示,所述装置300还包括:第二接收模块308,用于接收用于从所述数据库读取第二数据信息的读取请求;比较模块309,用于当所述数据库中已存储的数据信息为去除所述空值标记位的数据信息,将所述数据库中存储的第二数据信息的数据位的内容与所述有效空值标志进行比较;输出模块310,用于当所述数据位的内容与所述有效空值标志相同时,在所述第二数据信息的所述数据位外添加所述空值标记位后,输出所述第二数据信息,添加的所述空值标记位的内容指示所述第二数据信息的数据位的内容为空值;所述输出模块310,还用于当所述数据位的内容与所述有效空值标志不同时,在所述第二数据信息的所述数据位外添加所述空值标记位后,输出所述第二数据信息,添加的所述空值标记位的内容指示所述第二数据信息的数据位的内容不为空值。综上所述,本申请实施例中,当所述空值标记位的内容指示所述数据位的内容为空值时,将所述第一数据信息中的所述数据位的内容更新为所述有效空值标志,并在删除所述第一数据信息中的空值标记位后,存储所述第一数据信息,当所述空值标记位的内容指示所述数据位的内容不为空值,且所述数据位的内容与所述有效空值标志不同时,在删除所述第一数据信息中的空值标记位后,存储所述第一数据信息。如此实现复合格式到融合格式的转换,在每次获取一个数据信息时,无需读取两个数据(即数据位和空值标记位),提高数据库的数据访问效率。可选地,图10是本申请实施例示意性地提供一种计算机设备的可能的基本硬件架构。参见图10,计算机设备400包括处理器401、存储器402、通信接口403和总线404。计算机设备400中,处理器401的数量可以是一个或多个,图10仅示意了其中一个处理器401。可选地,处理器401,可以是中央处理器(centralprocessingunit,cpu)。如果计算机设备400具有多个处理器401,多个处理器401的类型可以不同,或者可以相同。可选地,计算机设备400的多个处理器401还可以集成为多核处理器。存储器402存储计算机指令和数据;存储器402可以存储实现本申请提供的数据处理方法所需的计算机指令和数据,例如,存储器402存储用于实现数据处理方法的步骤的指令。存储器402可以是以下存储介质的任一种或任一种组合:非易失性存储器(例如只读存储器(rom)、固态硬盘(ssd)、硬盘(hdd)、光盘),易失性存储器。通信接口403可以是以下器件的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。通信接口403用于计算机设备400与其它计算机设备或者终端进行数据通信。总线404可以将处理器401与存储器402和通信接口403连接。这样,通过总线404,处理器401可以访问存储器402,还可以利用通信接口403与其它计算机设备或者终端进行数据交互。在本申请中,计算机设备400执行存储器402中的计算机指令,使得计算机设备400实现本申请提供的数据处理方法,或者使得计算机设备400部署数据处理装置。在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由服务器的处理器执行以完成本申请各个实施例所示的表情图片推荐方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。本申请实施例提供一种数据处理系统,包括:管理节点和数据节点,所述管理节点包括前述任一所述的数据处理装置300或前述计算机设备400。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机的可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质,或者半导体介质(例如固态硬盘)等。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。在本申请中,术语“第一”和“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“至少一个”指一个或多个,术语“多个”指两个或两个以上,除非另有明确的限定。a参考b,指的是a与b相同或者a为b的简单变形。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1