本申请涉及数据处理
技术领域:
,具体涉及文本存储
技术领域:
,尤其涉及一种行列式文本的存储方法、装置、电子设备以及计算机可读存储介质。
背景技术:
:图数据库源起欧拉和图理论,也可称为面向/基于图的数据库,对应的英文是graphdatabase。图数据库的基本含义是以“图”这种数据结构存储和查询数据,而不是存储图片的数据库。图数据库主要的输入数据为行列式文本,通过大规模行列式文本数据的存储,实现数据的检索。相关技术中,通常采用以下两种方式存储行列式文本:第一种,将行列式文本数据转为json存储,但是在实际存储过程中数据膨胀巨大,并且检索耗时时间长;第二种,将行列式文本数据顺序存储,但是顺序存储行列式文本存储压缩率不够,冗余字段过多,检索效率低下等缺点。技术实现要素:本申请提出一种行列式文本的存储方法,通过确定行列式文本数据的数据描述域和值存储域,以将数据描述域和值存储域构成行列式文本数据进行存储,提高了行列式文本数据存储的压缩率,以及数据的检索效率。本申请第一方面实施例提出一种行列式文本的存储方法,包括:获取待存储的行列式文本,其中,所述待存储的行列式文本包括多个字段;获取所述多个字段之中的有效字段,并根据所述有效字段查询字段类型表以生成行列式文本数据的数据描述域;根据所述多个字段的内容和所述字段类型表确定所述行列式文本数据的值存储域;以及将所述数据描述域和所述值存储域构成所述行列式文本数据进行存储。作为本申请实施例的第一种可能的实现方式,所述字段类型表包括多个类型,其中,每个类型包括对应的类型标识以及子类型集合,每个子类型具有相应的子类型序列号及属性,所述属性包括属性编号、属性类型、默认值和是否允许为空值。作为本申请实施例的第二种可能的实现方式,所述根据所述有效字段查询字段类型表以生成行列式文本数据的数据描述域,包括:获取所述行列式文本所对应所述字段类型表之中的类型,并根据所对应类型的类型标识生成类型id数据;获取所述有效字段对应所述类型的子类型集合之中子类型的子类型序列号;根据对应的子类型序列号生成属性值数据;根据所述类型id数据和所述属性值数据生成所述数据描述域。作为本申请实施例的第三种可能的实现方式,所述根据所述多个字段的内容和所述字段类型表确定所述行列式文本数据的值存储域,包括:获取所述有效字段对应的子类型序列号,并获取所述子类型序列号在所述值存储域之中的存储位置;确定所述有效字段为字符串,则将所述有效字段的字符串内容存储至所述子类型序列号在所述值存储域之中的存储位置;确定所述有效字段不为字符串,则获取所述有效字段对应子类型的属性值,并将所述属性值存储至所述子类型序列号在所述值存储域之中的存储位置。作为本申请实施例的第四种可能的实现方式,所述类型id数据和所述属性值数据为变长整型存储。本申请第二方面实施例提出了一种行列式文本的存储装置,包括:获取模块,用于获取待存储的行列式文本,其中,所述待存储的行列式文本包括多个字段;生成模块,用于获取所述多个字段之中的有效字段,并根据所述有效字段查询字段类型表以生成行列式文本数据的数据描述域;确定模块,用于根据所述多个字段的内容和所述字段类型表确定所述行列式文本数据的值存储域;以及存储模块,用于将所述数据描述域和所述值存储域构成所述行列式文本数据进行存储。本申请第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述实施例中所述的行列式文本的存储方法。本申请第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行上述实施例中所述的行列式文本的存储方法。上述申请中的一个实施例具有如下优点或有益效果:获取待存储的行列式文本,其中,待存储的行列式文本包括多个字段;获取多个字段之中的有效字段,并根据有效字段查询字段类型表以生成行列式文本数据的数据描述域;根据多个字段的内容和字段类型表确定行列式文本数据的值存储域;以及将数据描述域和值存储域构成行列式文本数据进行存储。该方法通过确定行列式文本数据的数据描述域和值存储域,以将数据描述域和值存储域构成行列式文本数据进行存储,提高了行列式文本数据存储的压缩率,以及数据的检索效率。上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。附图说明附图用于更好地理解本方案,不构成对本申请的限定。其中:图1为本申请实施例一所提供的行列式文本的存储方法的流程示意图;图2为本申请实施例一所提供的行列式文本的存储示例图;图3为本申请实施例二所提供的行列式文本的存储方法的流程示意图;图4为本申请实施例三所提供的行列式文本的存储方法的流程示意图;图5为本申请实施例四所提供的行列式文本的存储装置的结构示意图;图6是用来实现本申请实施例的行列式文本的存储的方法的电子设备的框图。具体实施方式以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。为了解决相关技术中的行列式文本存储方式存在压缩率不够,检索效率低等问题,本申请提出了一种行列式文本的存储方法,通过获取待存储的行列式文本,其中,待存储的行列式文本包括多个字段;获取多个字段之中的有效字段,并根据有效字段查询字段类型表以生成行列式文本数据的数据描述域;根据多个字段的内容和字段类型表确定行列式文本数据的值存储域;以及将数据描述域和值存储域构成行列式文本数据进行存储。下面结合参考附图描述本申请实施例的行列式文本的存储方法、装置以及电子设备。图1为本申请实施例一所提供的行列式文本的存储方法的流程示意图。如图1所示,该行列式文本的存储方法可以包括以下步骤:步骤101,获取待存储的行列式文本,其中,待存储的行列式文本包括多个字段。本申请实施例中,行列式文本,也叫做逗号分隔值(comma-separatedvalues,简称csv)文本,是用文本文件形式储存的表格数据。例如,如下表格为行列式文本。nameagecity张三20北京李四26上海王五30广州本申请实施例中,在将带存储的行列式文本存储至数据库之前,首先获取到待存储的行列式文本,并且,待存储的行列式文本包括多个字段。由上述表格可知,在存储行列式文本时,待存储的行列式文本包括多个字段,表的“列”可以称为字段,每个字段包含某一专题的信息。如上述行列式文本中包括“姓名”字段、“年龄”字段和“居住地”字段。还例如“通讯录”数据库中,“姓名”、“联系电话”这些都是表中所有行共有的属性,所以把这些列称为“姓名”字段和“联系电话”字段。步骤102,获取多个字段之中的有效字段,并根据有效字段查询字段类型表以生成行列式文本数据的数据描述域。步骤103,根据多个字段的内容和字段类型表确定行列式文本数据的值存储域。本申请实施例中,字段类型表包括多个类型,其中,每个类型包括对应的类型标识以及子类型集合,每个子类型具有相应的子类型序列号及属性,并且属性包括属性编号、属性类型、默认值和是否允许为空值。本申请实施例中,行列式文本中包括的多个字段之中的有效字段,可以指待存储的行列式文本中存在的需要存储的字段。本申请实施例中,将待存储的行列式文本分为两个域,即数据描述域和值存储域。本申请实施例中,在获取到待存储的行列式文本后,获取行列式文本包括的多个字段中的有效字段,并根据有效字段查询字段类型表以生成行列式文本数据的数据描述域。本申请实施例中,根据待存储的行列式文本包括的多个字段的内容和字段类型表可以确定行列式文本数据的值存储域。步骤104,将数据描述域和值存储域构成行列式文本数据进行存储。本申请实施例中,生成待存储行列式文本数据的数据描述域和值存储域后,可以将数据描述域和值存储域构成行列式文本数据,以对构成的行列式文本数据进行存储。由此,实现了将行列式文本进行压缩存储,提高了数据存储时的压缩率。在行列式文本数据中大多数据都是默认值时,例如“籍贯”可默认“汉族”,“性别”可以默认为“男”或“女”,等等。对于大面积使用的value,也可以设置默认值,那么在存储的时候都不用存,用一个位即可表示,从事使得行列式文本数据存储时的压缩率非常的高。作为一种示例,如图2所示,对于数据data,灰色部分是数据描述域。图2中标明了有效字段,行列式文本数据为:名称:“小度在线”;公司性质:“科创”,由于行列式文本数据中没有“法人”、“成立时间”和“注册资本”。在对构成的行列式文本数据进行存储时都不需要存储“法人”、“成立时间”和“注册资本”,只需要在属性状态中标记即可。对于“公司性质”,由于是直接写的0,经过查询行列式文本,该字段是枚举值,0表示枚举的第一个值,所以“公司性质”的取值是“科创”。如果获取“成立时间”字段,通过属性状态发现该字段并不存在,则直接查询行列式文本数据,如果有默认值则返回默认值。相较于顺序存储行列式文本数据检索效率低下的问题,在将行列式文本数据进行存储后,对行列式文本数据的内容进行检索时,由于属性编号甚至整个数据描述域都可以进行存储,因此,在检索时,可以非常快速的定位到字段的状态,例如,字段是否存在,如果字段存在是在值存储域的第几个。本申请实施例中,通过获取待存储的行列式文本,其中,待存储的行列式文本包括多个字段;获取多个字段之中的有效字段,并根据有效字段查询字段类型表以生成行列式文本数据的数据描述域;根据多个字段的内容和字段类型表确定行列式文本数据的值存储域;将数据描述域和值存储域构成行列式文本数据进行存储。该方法通过确定行列式文本数据的数据描述域和值存储域,以将数据描述域和值存储域构成行列式文本数据进行存储,提高了行列式文本数据存储的压缩率,以及数据的检索效率。作为一种可能的实现方式,在上述步骤102中,根据有效字段查询字段类型表以生成行列式文本数据的数据描述域时,还可以获取行列式文本所对应字段类型表之中的类型,并根据所对应类型的类型标识生成类型id数据;获取有效字段对应类型的子类型集合之中子类型的子类型序列号;根据对应的子类型序列号生成属性值数据;进而,根据类型id数据和属性值数据生成数据描述域。下面结合图3对具体的实现过程进行详细介绍,图3为本申请实施例二所提供的行列式文本的存储方法的流程示意图。如图3所示,该行列式文本的存储方法,还可以包括以下步骤:步骤201,获取行列式文本所对应字段类型表之中的类型,并根据所对应类型的类型标识生成类型id数据。本申请实施例中,字段类型表中的类型,可以为整型、浮点型、字符串型、枚举型以及日期时间。其中,枚举型是非常特殊的类型,在其它数据库中基本没有。类似mysql的一个外键表,其实在现实样例中,有很大部分的字段类型的数据都是枚举类型。比如“公司种类”,“所属行业”,“性别”,“交易类型”,“国家&地区”等等。本申请实施例中,获取到行列式文本包括的多个字段后,在对应字段类型表中确定各字段所属的类型,并根据各字段所对应的类型标识生成类型id数据。举例来说,假如行列式文本包括公司字段、银行字段和个人字段,则每一个字段对应一个类型id数据,例如公司字段对应的类型id数据可以为num1。步骤202,获取有效字段对应类型的子类型集合之中子类型的子类型序列号。本申请实施例中,行列式文本包括的多个字段中并不是所有的字段均为有效字段,为了提高行列式文本存储时的压缩率,只需要获取有效字段对应类型的子类型集合中子类型的子类型序列号即可。步骤203,根据对应的子类型序列号生成属性值数据。本申请实施例中,在获取到各子类型的子类型序列后,根据行列式文本中是否存在各子类型,生成属性值数据。作为一种示例,行列式文本中字段类型表中包括的字段类型有“名称”,“法人”,“公司性质”,“成立时间”和“注册资本”,字段类型为“公司性质”的类型对应的子类型集合为“科创”,“农林”“教育”和“其它”。在获取到有效字段对应类型的子类型集合之中子类型的子类型序列后,可以确定类型为“名称”和“公司性质”的属性值数据为1,其余类型生成的属性值数据均为0。行列式文本中各字段对应的属性值数据为0的字段不用存储,由此,提高了数据存储时的数据压缩率,节省了存储空间。步骤204,根据类型id数据和属性值数据生成数据描述域。其中,类型id数据和属性值数据均为变长整型存储,采用基准长度加步进长度的方式对类型id数据和属性值数据进行压缩存储,避免了在数据存储时需要预留大量空间的情况,提高了数据存储的压缩率,节省了数据存储的空间。变长整型采用1个标志位和7个数据位的方式来对一个正整型数值进行压缩,标志位的作用是表明除7位数据位外余下数据位的值是否为零,具体计算方式为:将数值与0x7f进行与运算,如果数值为0表明该数值的有效数据位为7位,否则数值为1表明仍然有有效数据,将数值向右循环移位7位后继续前面的步骤,直至为0,从而实现了对数据的压缩存储,提高了数据的压缩率。本申请实施例中,确定行列式文本中各字段对应的类型id数据,以及有效字段对应的属性值数后,可以根据类型id数据和属性值数据生成数据描述域。本申请实施例的行列式文本的存储方法,通过获取行列式文本所对应所述字段类型表之中的类型,并根据所对应类型的类型标识生成类型id数据;获取有效字段对应类型的子类型集合之中子类型的子类型序列号;根据对应的子类型序列号生成属性值数据;根据类型id数据和属性值数据生成数据描述域。由此,提高了数据存储时的数据压缩率,节省了存储空间。作为一种可能的实现方式,在上述步骤103中,根据多个字段的内容和字段类型表确定行列式文本数据的值存储域时,可以获取有效字段对应的子类型序列号,并获取子类型序列号在值存储域之中的存储位置,以根据有效字段是否为字符串对有效字段进行存储。下面结合图4对上述过程进行详细介绍,图4为本申请实施例三所提供的行列式文本的存储方法的流程示意图。如图4所示,该行列式文本的存储方法还可以包括以下步骤:步骤301,获取有效字段对应的子类型序列号,并获取子类型序列号在值存储域之中的存储位置。本申请实施例中,获取待存储的行列式文本,确定行列式文本包括的多个字段中的有效字段,进一步的,获取有效字段对应的子类型序列号以及子类型序列号在值存储域之中的存储位置。作为一种示例,假如待存储的行列式文本中包括“公司”类型、“银行”类型和“个人”类型,“公司”类型又包括的子类型为“名称”,“法人”,“公司性质”,“成立时间”和“注册资本”。并且,每个子类型具有相应的子类型序列号及属性,属性包括属性编号、属性类型、默认值和是否允许为空值。以图2中示例为例,假如待存储的行列式文本为名称:“小度在线”;公司性质:“科创”,待存储行列式文本的有效字段对应的子类型为“名称”和“公司性质”。进一步,可以获取有效字段对应的子类型序列号,以及子类型序列号在值存储域之中的存储位置。步骤302,判断有效字段是否为字符串。本申请实施例中,获取到待存储的行列式文本的有效字段后,判断有效字段的类型是否为字符串,以根据有效字段对应的类型,对有效字段进行存储。步骤303,确定有效字段为字符串,则将有效字段的字符串内容存储至子类型序列号在值存储域之中的存储位置。本申请实施例中,确定待存储的行列式文本的有效字段为字符串时,可以将有效字段的字符串内容存储至子类型序列号在值存储域之中的存储位置。步骤304,确定有效字段不为字符串,则获取有效字段对应子类型的属性值,并将属性值存储至子类型序列号在值存储域之中的存储位置。本申请实施例中,确定待存储的行列式文本的有效字段不为字符串时,则获取有效字段对应子类型的属性值,并将属性值存储至子类型序列号在值存储域之中的存储位置。作为一种示例,参见图2,由于“公司性质”对应子类型的属性值为0,经过查询字段类型表,可以确定“公司性质”对应的字段为枚举类型,0表示枚举类型的第一个值,所以“公司性质”对应的值为“科创”。因此,在获取到“公司性质”对应子类型的属性值后,将属性值存储至子类型序列号在值存储域之中的存储位置。本申请实施例的行列式文本的存储方法,通过获取有效字段对应的子类型序列号,并获取子类型序列号在值存储域之中的存储位置,确定有效字段为字符串,则将有效字段的字符串内容存储至子类型序列号在值存储域之中的存储位置,确定有效字段不为字符串,则获取有效字段对应子类型的属性值,并将属性值存储至子类型序列号在值存储域之中的存储位置。由此,提高了待存储行列式文本存储时的压缩率,节省了存储空间。为了实现上述实施例,本申请实施例提出了一种行列式文本的存储装置。图5为本申请实施例四所提供的行列式文本的存储装置的结构示意图。如图5所示,该行列式文本的存储装置400,可以包括:获取模块410、生成模块420、确定模块430以及存储模块440。获取模块410,用于获取待存储的行列式文本,其中,待存储的行列式文本包括多个字段。生成模块420,用于获取多个字段之中的有效字段,并根据有效字段查询字段类型表以生成行列式文本数据的数据描述域。确定模块430,用于根据多个字段的内容和字段类型表确定行列式文本数据的值存储域。以及存储模块440,用于将数据描述域和值存储域构成行列式文本数据进行存储。作为一种可能的实现方式,字段类型表包括多个类型,其中,每个类型包括对应的类型标识以及子类型集合,每个子类型具有相应的子类型序列号及属性,属性包括属性编号、属性类型、默认值和是否允许为空值。作为另一种可能的实现方式,生成模块420,还可以用于:获取行列式文本所对应字段类型表之中的类型,并根据所对应类型的类型标识生成类型id数据;获取有效字段对应类型的子类型集合之中子类型的子类型序列号;根据对应的子类型序列号生成属性值数据;根据类型id数据和属性值数据生成数据描述域。作为另一种可能的实现方式,确定模块430,还可以用于:获取有效字段对应的子类型序列号,并获取子类型序列号在值存储域之中的存储位置;确定有效字段为字符串,则将有效字段的字符串内容存储至子类型序列号在值存储域之中的存储位置;确定有效字段不为字符串,则获取有效字段对应子类型的属性值,并将属性值存储至子类型序列号在值存储域之中的存储位置。作为另一种可能的实现方式,类型id数据和所述属性值数据为变长整型存储。本申请实施例的行列式文本的存储装置,通过获取待存储的行列式文本,其中,待存储的行列式文本包括多个字段;获取多个字段之中的有效字段,并根据有效字段查询字段类型表以生成行列式文本数据的数据描述域;根据多个字段的内容和字段类型表确定行列式文本数据的值存储域;将数据描述域和值存储域构成行列式文本数据进行存储。该方法通过确定行列式文本数据的数据描述域和值存储域,以将数据描述域和值存储域构成行列式文本数据进行存储,提高了行列式文本数据存储的压缩率,以及数据的检索效率。根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。如图6所示,是根据本申请实施例的行列式文本的存储的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的行列式文本的存储的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的行列式文本的存储的方法。存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的行列式文本的存储的方法对应的程序指令/模块(例如,附图4所示的获取模块410、生成模块420、确定模块430和存储模块440)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的行列式文本的存储的方法。存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据行列式文本的存储的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至行列式文本的存储的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。行列式文本的存储的方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。输入装置603可接收输入的数字或字符信息,以及产生与行列式文本的存储的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。根据本申请实施例的技术方案,通过获取待存储的行列式文本,其中,待存储的行列式文本包括多个字段;获取多个字段之中的有效字段,并根据有效字段查询字段类型表以生成行列式文本数据的数据描述域;根据多个字段的内容和字段类型表确定行列式文本数据的值存储域;将数据描述域和值存储域构成行列式文本数据进行存储。该方法通过确定行列式文本数据的数据描述域和值存储域,以将数据描述域和值存储域构成行列式文本数据进行存储,提高了行列式文本数据存储的压缩率,以及数据的检索效率。应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。当前第1页1 2 3 
技术特征:1.一种行列式文本的存储方法,其特征在于,包括:
获取待存储的行列式文本,其中,所述待存储的行列式文本包括多个字段;
获取所述多个字段之中的有效字段,并根据所述有效字段查询字段类型表以生成行列式文本数据的数据描述域;
根据所述多个字段的内容和所述字段类型表确定所述行列式文本数据的值存储域;以及
将所述数据描述域和所述值存储域构成所述行列式文本数据进行存储。
2.如权利要求1所述的行列式文本的存储方法,其特征在于,所述字段类型表包括多个类型,其中,每个类型包括对应的类型标识以及子类型集合,每个子类型具有相应的子类型序列号及属性,所述属性包括属性编号、属性类型、默认值和是否允许为空值。
3.如权利要求2所述的行列式文本的存储方法,其特征在于,所述根据所述有效字段查询字段类型表以生成行列式文本数据的数据描述域,包括:
获取所述行列式文本所对应所述字段类型表之中的类型,并根据所对应类型的类型标识生成类型id数据;
获取所述有效字段对应所述类型的子类型集合之中子类型的子类型序列号;
根据对应的子类型序列号生成属性值数据;
根据所述类型id数据和所述属性值数据生成所述数据描述域。
4.如权利要求2所述的行列式文本的存储方法,其特征在于,所述根据所述多个字段的内容和所述字段类型表确定所述行列式文本数据的值存储域,包括:
获取所述有效字段对应的子类型序列号,并获取所述子类型序列号在所述值存储域之中的存储位置;
确定所述有效字段为字符串,则将所述有效字段的字符串内容存储至所述子类型序列号在所述值存储域之中的存储位置;
确定所述有效字段不为字符串,则获取所述有效字段对应子类型的属性值,并将所述属性值存储至所述子类型序列号在所述值存储域之中的存储位置。
5.如权利要求3所述的行列式文本的存储方法,其特征在于,所述类型id数据和所述属性值数据为变长整型存储。
6.一种行列式文本的存储装置,其特征在于,包括:
获取模块,用于获取待存储的行列式文本,其中,所述待存储的行列式文本包括多个字段;
生成模块,用于获取所述多个字段之中的有效字段,并根据所述有效字段查询字段类型表以生成行列式文本数据的数据描述域;
确定模块,用于根据所述多个字段的内容和所述字段类型表确定所述行列式文本数据的值存储域;以及
存储模块,用于将所述数据描述域和所述值存储域构成所述行列式文本数据进行存储。
7.如权利要求6所述的行列式文本的存储装置,其特征在于,所述字段类型表包括多个类型,其中,每个类型包括对应的类型标识以及子类型集合,每个子类型具有相应的子类型序列号及属性,所述属性包括属性编号、属性类型、默认值和是否允许为空值。
8.如权利要求7所述的行列式文本的存储装置,其特征在于,所述生成模块,还用于:
获取所述行列式文本所对应所述字段类型表之中的类型,并根据所对应类型的类型标识生成类型id数据;
获取所述有效字段对应所述类型的子类型集合之中子类型的子类型序列号;
根据对应的子类型序列号生成属性值数据;
根据所述类型id数据和所述属性值数据生成所述数据描述域。
9.如权利要求7所述的行列式文本的存储装置,其特征在于,所述确定模块,还用于:
获取所述有效字段对应的子类型序列号,并获取所述子类型序列号在所述值存储域之中的存储位置;
确定所述有效字段为字符串,则将所述有效字段的字符串内容存储至所述子类型序列号在所述值存储域之中的存储位置;
确定所述有效字段不为字符串,则获取所述有效字段对应子类型的属性值,并将所述属性值存储至所述子类型序列号在所述值存储域之中的存储位置。
10.如权利要求8所述的行列式文本的存储装置,其特征在于,所述类型id数据和所述属性值数据为变长整型存储。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的行列式文本的存储方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-5中任一项所述的行列式文本的存储方法。
技术总结本申请公开了一种行列式文本的存储方法、装置和电子设备,涉及数据处理技术领域。具体实现方案为:通过获取待存储的行列式文本,其中,待存储的行列式文本包括多个字段;获取多个字段之中的有效字段,并根据有效字段查询字段类型表以生成行列式文本数据的数据描述域;根据多个字段的内容和字段类型表确定行列式文本数据的值存储域;将数据描述域和值存储域构成行列式文本数据进行存储。该方法通过确定行列式文本数据的数据描述域和值存储域,以将数据描述域和值存储域构成行列式文本数据进行存储,提高了行列式文本数据存储的压缩率,以及数据的检索效率。
技术研发人员:汪洋;宋勋超;袁鹏程;张海平;王益飞
受保护的技术使用者:北京百度网讯科技有限公司
技术研发日:2020.01.10
技术公布日:2020.06.09