CN110442571A - 一种数据处理方法、装置及计算机存储介质 - Google Patents

一种数据处理方法、装置及计算机存储介质 Download PDF

Info

Publication number
CN110442571A
CN110442571A CN201910579306.XA CN201910579306A CN110442571A CN 110442571 A CN110442571 A CN 110442571A CN 201910579306 A CN201910579306 A CN 201910579306A CN 110442571 A CN110442571 A CN 110442571A
Authority
CN
China
Prior art keywords
metadata
stored
data structure
data
attribute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910579306.XA
Other languages
English (en)
Inventor
吴良顺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
Original Assignee
Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhuo Erzhi Lian Wuhan Research Institute Co Ltd filed Critical Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
Priority to CN201910579306.XA priority Critical patent/CN110442571A/zh
Publication of CN110442571A publication Critical patent/CN110442571A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种数据处理方法、装置及计算机存储介质,方法包括:获取待存储的元数据;根据所述待存储的元数据的数据特征确定对应的数据结构;根据所述对应的数据结构在数据库中存储所述待存储的元数据,所述数据库包括至少一种数据结构,即数据库可以存储至少一种数据结构的元数据,解决数据库的结构过于单一的问题,根据元数据本身的数据特征选择合适的数据结构,数据库的数据结构灵活性好,有利于数据库的快速读、写。

Description

一种数据处理方法、装置及计算机存储介质
技术领域
本申请涉及软件工程技术领域,尤其涉及一种数据处理方法、装置及计算机存储介质。
背景技术
目前,数据库主要包括关系型数据库和非关系型数据库(Not Only StructuredQuery Language,NoSQL)。其中,关系型数据库是由多张相互关联的二维列表组成的数据库,以二维数组的结构存储数据。非关系型数据库是以键值(Key-Value)的结构存储数据,并根据Key-Value的关系查找数据。
因此,现有的数据库都是采用一种数据结构存储数据,不可定制、灵活性差。
发明内容
有鉴于此,本申请实施例为解决现有技术中存在的至少一个问题而提供一种数据处理方法、装置及计算机存储介质,数据库的数据结构可定制化、较为灵活。
为达到上述目的,本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种数据处理方法,所述方法包括:
获取待存储的元数据;
根据所述待存储的元数据的数据特征确定对应的数据结构;
根据所述对应的数据结构在数据库中存储所述待存储的元数据,所述数据库包括至少一种数据结构。
上述技术方案中,所述数据特征为记录数,所述根据所述待存储的元数据的记录数确定对应的数据结构,包括:
统计所述待存储的元数据的记录数;
确定所述待存储的元数据的记录数是否小于设定阈值;
如果所述待存储的元数据的记录数小于设定阈值,确定对应的数据结构为第一数据结构。
上述技术方案中,所述数据特征为字段属性,所述根据所述待存储的元数据的字段属性确定对应的数据结构,包括:
根据所述待存储的元数据的字段属性确定待录入数据块中的元数据的记录数是否固定;
如果所述待录入数据块中的元数据的记录数固定,确定对应的数据结构为第二数据结构;
如果所述待录入数据块中的元数据的记录数不固定,确定对应的数据结构为第三数据结构。
上述技术方案中,所述根据所述待存储的元数据的字段属性确定待录入数据块中的元数据的记录数是否固定,包括:
将所述待存储的元数据的字段属性与元数据属性表进行匹配,其中,所述元数据属性表包括表征元数据的记录数固定的元数据的字段属性;
如果在所述元数据属性表中匹配到所述待存储的元数据的字段属性,确定所述待录入数据块中的元数据的记录数是固定的;
如果在所述元数据属性表中未匹配到所述待存储的元数据的字段属性,确定所述待录入数据块中的元数据的记录数是不固定的。
上述技术方案中,所述数据特征为字段属性,所述根据所述待存储的元数据的字段属性确定对应的数据结构,包括:
根据所述待存储的元数据的字段属性确定待录入数据块中的元数据是否需要多表查询;
如果所述待录入数据块中的元数据需要进行多表查询,确定对应的数据结构为第四数据结构。
上述技术方案中,所述根据所述待存储的元数据的字段属性确定待录入数据块中的元数据是否需要多表查询,包括:
将所述待存储的元数据的字段属性与多表查询属性表进行匹配,其中,所述多表查询属性表包括表征元数据需要多表查询的元数据的字段属性;
如果在所述多表查询属性表中匹配到所述待存储的元数据的字段属性,确定待录入数据块中的元数据需要多表查询;
如果在所述元数据属性表中未匹配到所述待存储的元数据的字段属性,确定待录入数据块中的元数据不需要多表查询。
上述技术方案中,所述根据所述对应的数据结构在数据库中存储所述待存储的元数据,包括:
根据所述对应的数据结构确定对应的数据库区域;
根据所述数据结构在所述数据库区域存储所述待存储的元数据。
第二方面,本申请实施例提供一种数据处理装置,所述装置包括:
获取单元,用于获取待存储的元数据;
确定单元,用于根据所述待存储的元数据确定对应的数据结构;
存储单元,用于根据所述对应的数据结构在数据库中存储所述待存储的元数据,所述数据库包括至少一种数据结构。
第三方面,本申请实施例提供一种数据处理装置,所述装置包括网络接口、存储器和处理器;其中,
所述网络接口,配置为实现组件之间的连接通信;
所述存储器,配置为存储能够在所述处理器上运行的计算机程序;
所述处理器,配置为在运行所述计算机程序时,执行第一方面所述方法。
第四方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,当所述计算机程序被至少一个处理器执行时实现第一方面所述任一方法。
本申请实施例所提供的一种数据处理方法、装置及计算机存储介质,通过获取待存储的元数据;根据所述待存储的元数据的数据特征确定对应的数据结构;根据所述对应的数据结构在数据库中存储所述待存储的元数据,所述数据库包括至少一种数据结构,即数据库可以存储至少一种数据结构的元数据,解决数据库的结构过于单一的问题,根据元数据本身的数据特征选择合适的数据结构,数据库的数据结构灵活性好,有利于数据库的快速读、写。
附图说明
图1为本申请实施例提供的一种数据链示意图;
图2为本申请实施例提供的一种数据块示意图;
图3为本申请实施例提供的一种默克尔树示意图;
图4为本申请实施例提供的一种数据处理方法的实现流程示意图一;
图5为本申请实施例提供的一种数据处理方法的实现流程示意图二;
图6为本发明实施例提供的一种数据处理装置600的结构示意图;
图7为本发明实施例提供的一种数据处理装置700的具体硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
数据链为链式的数据结构,即数据链中的第n个数据块(数据区块)包含第n-1个数据块的信息摘要,第n+1个数据块包含第n个数据块的信息摘要,其中,信息摘要是指数据块经过哈希运算压缩映射后的信息,哈希运算是指将任意长度的信息压缩到固定长度的运算。由于一旦更改第n个数据块的信息,更改后的第n个数据块的信息摘要也将发生变化,那么第n+1个数据块包含的第n个数据块的信息摘要与更改后的第n个数据块的信息摘要将无法匹配,通过数据链的信息摘要能够有效防止数据的篡改。
不同类型的数据可以处于相应类型的数据链上,所有的数据链组成数据链层。如图1所示,数据链层包括财务数据链、销售数据链、仓储数据链。
其中,每个数据块包含元数据集合、默克尔树根、前区块哈希、区块生成时间戳,如图2所示。其中,默克尔树根为对当前数据块中所有元数据逐级进行哈希运算得到的数据,如图3所示,最底层的元数据直接进行哈希运算得到哈希值,例如,元数据D0直接进行哈希运算得到哈希值B0、即B0=Hash(D0),将相邻的哈希值再次进行哈希运算,例如,将哈希值B0和哈希值B1进行哈希运算得到哈希值B4、即B4=Hash(B0,B1),将默克尔树同一层的哈希值依次进行哈希运算,最后默克尔树的同一层只有一个哈希值、即默克尔树根,例如,将哈希值B4和哈希值B5进行哈希运算得到默克尔树根Root、即Root=Hash(B4,B5),区块生成时间戳为当前数据块生成的时刻,前区块哈希为对前数据块的默克尔树根和前数据块生成的时间戳进行哈希运算得到的数据、即前区块哈希=Hash(前数据块的默克尔树根,前数据块生成的时间戳)。
其中,数据块包括元数据,数据链包括数据块,数据链组成数据链层,数据链层作为数据库。因此,元数据是数据块中数据的基本存储单元、即元数据是数据库的基本存储单元。在数据库中,元数据集合可以逻辑抽象为一个二维表,包含记录和字段两个维度,二维表中的行表示记录,每个记录包含该行中的所有信息,二维表中的列表示字段,每个字段表示某一特征(属性)、即数据项,例如,元数据为人员个人信息、即一条记录,各元数据组成人员个人信息表、即元数据集合,该人员个人信息表包括姓名、年龄、性别、学历四个字段。
需要说明的是,元数据有两种显示方式,如下所示:
(1)文档性:按照文档的形式显示元数据,例如,人员个人信息可以为{“姓名”:张三,“年龄”:32,“性别”:男,“本科”},{“姓名”:李四,“年龄”:27,“性别”:男,“硕士”}。
(2)表格型:按照表格的形式显示元数据,如表1所示:
表1
其中,数据链中的每一个数据块的元数据个数为二维表的记录数,元数据属性数为二维表的字段数,因此,表1中的属性数为4。
元数据的数据结构是在数据库写数据和读数据的依据,如果元数据没有合适的数据结构,那么数据库就会杂乱无章,不利于数据库的快速读、写。
本申请实施例提供一种数据处理方法,该数据处理方法可以应用于终端,还可以应用于服务器,图4为本申请实施例提供的一种数据处理方法的实现流程示意图一,如图4所示,该方法主要包括以下步骤:
步骤401、获取待存储的元数据。
需要说明的是,用户可以在终端的输入界面上输入需要录入数据块中的元数据,所述元数据包括记录信息,输入完需要录入数据块中的元数据、即生成待存储的元数据,终端可以获取该待存储的元数据。
步骤402、根据所述待存储的元数据的数据特征确定对应的数据结构。
需要说明的是,根据不同的待存储的元数据的数据特征可以确定出不同的数据结构。所述数据特征可以为记录数,可以根据待存储的元数据的记录数确定对应的数据结构,统计所述待存储的元数据的记录数;确定所述待存储的元数据的记录数是否小于设定阈值;如果所述待存储的元数据的记录数小于设定阈值,确定对应的数据结构为第一数据结构。其中,当待存储的元数据的记录数、即个数比较少时,可以选取适用于小数据量的数据结构存储元数据,例如,当所述待存储的元数据的记录数小于设定阈值,确定第一数据结构可以是数组结构;当待存储的元数据的记录数、即个数比较多时,可以选取适用于大数据量的数据结构存储元数据,例如,当所述待存储的元数据的记录数大于或者等于设定阈值,确定第二数据结构可以是哈希表、二叉查找树等数据结构。另外,如果所述待存储的元数据的记录数大于或者等于设定阈值,还可以根据待存储的元数据的字段属性进行下一步的判断,从而确定出其他对应的数据结构。
需要说明的是,所述数据特征可以为字段属性,所述字段属性为元数据的待确定数据结构的字段的属性,可以根据所述待存储的元数据的字段属性确定对应的数据结构,根据所述待存储的元数据的字段属性确定待录入数据块中的元数据的记录数是否固定;如果所述待录入数据块中的元数据的记录数固定,确定对应的数据结构为第二数据结构;如果所述待录入数据块中的元数据的记录数不固定,确定对应的数据结构为第三数据结构。根据待存储的元数据的字段属性可以确定录入数据块中的元数据的记录数是否固定,如果录入数据块中的元数据的记录数固定,则可以选取存储区域固定的数据结构,例如,当待录入数据块中的元数据的记录数固定,确定第二数据结构可以是数组结构;如果录入数据块中的元数据的记录数不固定,则可以选取存储区域不固定的数据结构,例如,当待录入数据块中的元数据的记录数不固定,确定第三数据结构可以是链表结构。
这里,根据所述待存储的元数据的字段属性确定待录入数据块中的元数据的记录数是否固定,包括:将所述待存储的元数据的字段属性与元数据属性表进行匹配,其中,所述元数据属性表包括表征元数据的记录数固定的元数据的字段属性;如果在所述元数据属性表中匹配到所述待存储的元数据的字段属性,确定所述待录入数据块中的元数据的记录数是固定的;如果在所述元数据属性表中未匹配到所述待存储的元数据的字段属性,确定所述待录入数据块中的元数据的记录数是不固定的。用户可以在终端中预先设定一个元数据属性表,该元数据属性表包括元数据的字段属性,用于表征元数据的字段属性、与元数据的记录数是否固定的对应关系,如果在元数据属性表中匹配到待存储的元数据的字段属性,说明待录入数据块中的元数据的记录数是固定的;如果在元数据属性表中未匹配到待存储的元数据的字段属性,说明待录入数据块中的元数据的记录数是不固定的。
需要说明的是,所述数据特征可以为字段属性,所述字段属性为待确定数据结构的字段的属性,可以根据待存储的元数据的字段属性确定对应的数据结构,包括:根据所述待存储的元数据的字段属性确定待录入数据块中的元数据是否需要多表查询;如果所述待录入数据块中的元数据需要进行多表查询,确定对应的数据结构为第四数据结构。根据待存储的元数据的字段属性可以确定待录入数据块中的元数据是否需要多表查询,如果待录入数据块中的元数据需要多表查询,则确定第四数据结构可以是数组结构,其中,所述数组结构适用于多表查询;如果待录入数据块中的元数据不需要多表查询,则确定对应的数据结构可以是哈希表、二叉查找树等结构。另外,如果待录入数据块中的元数据不需要多表查询,还可以根据待存储的元数据的字段进行下一步的判断,从而确定出其他对应的数据结构。
这里,根据待存储的元数据的字段属性确定待录入数据块中的元数据是否需要多表查询,包括:将所述待存储的元数据的字段属性与多表查询属性表进行匹配,其中,所述多表查询属性表包括表征元数据需要多表查询的元数据的字段属性;如果在所述多表查询属性表中匹配到所述待存储的元数据的字段属性,确定待录入数据块中的元数据需要多表查询;如果在所述元数据属性表中未匹配到所述待存储的元数据的字段属性,确定待录入数据块中的元数据不需要多表查询。用户可以在终端中预先设定一个多表查询属性表,该元数据属性表包括元数据的字段属性,用于表征元数据的字段属性、与元数据是否需要多表查询的对应关系,如果在元数据属性表中匹配到待存储的元数据的字段属性,说明待录入数据块中的元数据需要多表查询;如果在元数据属性表中未匹配到待存储的元数据的字段属性,说明待录入数据块中的元数据不需要多表查询。
步骤403、根据所述对应的数据结构在数据库中存储所述待存储的元数据,所述数据库包括至少一种数据结构。
需要说明的是,数据库可以分为多个区域,每个区域用于以特定的数据结构存储数据,例如,将磁盘分为多个存储区域,每个存储区域用于以特定的数据结构存储数据,第一存储区域用于以数组的结构存储元数据,第二存储区域用于以链表的结构存储元数据,第三存储区域用于以哈希表的结构存储元数据,第四存储区域用于以二叉查找树的结构存储元数据。
根据对应的数据结构在数据库中存储所述待存储的元数据,包括:根据所述对应的数据结构确定对应的数据库区域;根据所述数据结构在所述数据库区域存储所述待存储的元数据。根据待存储的元数据确定对应的数据结构后,可以根据对应的数据结构确定对应的数据库区域,并根据该数据结构在该数据库区域存储待存储的元数据,例如,根据待存储的元数据确定对应的数组结构,根据数组结构确定对应的第一存储区域,根据数组结构在第一存储区域存储待存储的元数据。
本申请实施例中的数据库可以存储至少一种数据结构的元数据、即数据库采用多种数据结构存储数据,根据元数据本身的数据特征选择合适的数据结构,数据库的数据结构灵活性好,有利于数据库的快速读、写。
本申请实施例提供一种数据处理方法,该数据处理方法可以应用于终端,还可以应用于服务器,图5为本申请实施例提供的一种数据处理方法的实现流程示意图二,如图5所示,该方法主要包括以下步骤:
步骤501、获取待存储的元数据。
需要说明的是,用户可以在终端的输入界面上输入需要录入数据块中的元数据,所述元数据包括记录信息,输入完需要录入数据块中的元数据、即生成待存储的元数据,终端可以获取该待存储的元数据。
步骤502、确定待存储的元数据的记录数是否小于设定阈值,如果小于设定阈值,则转入步骤503;如果大于或等于设定阈值,则转入步骤506。
需要说明的是,在终端中可以预先设定一个阈值,获取待存储的元数据后,统计待存储的元数据的记录数、即待存储元数据的个数,例如待存储的元数据为每个人员信息(记录),统计人员信息的个数,得到5个待存储的人员信息、即记录数为5个。将待存储的元数据的记录数与预先设定的阈值进行比较,如果确定记录数小于设定阈值,说明待存储的元数据的数据量不大、即个数少,可以采用数组或者链表的数据结构存储元数据,则转入步骤503,其中,数组结构中的数据是有序的,需要移动大量数据,才能实现在数组结构中插入数据,其插入数据的效率比较低,则数组结构适用于小数据量的存储;链表结构中的数据是无序的,进行数据查询时,需要从链表结构中的第一个数据开始查找,直至找到需要查找的数据,其查找数据的效率比较低,则链表结构适用于小数据量的数据存储;如果确定数据量大于或等于设定阈值,说明待存储的元数据的数据量大、即个数多,可以采用哈希表、二叉树等数据结构存储元数据,则转入步骤506,其中,哈希表、二叉树等数据结构结合数组、链表的优势,解决数组结构插入效率低、链表结构查找效率低的问题,适用于大数据量的数据存储。
例如,将阈值设定为20,待存储的元数据为每个人员信息,当有5个待存储的人员信息,则记录数为5,该记录数小于设定阈值20,则转入步骤503。
步骤503、根据待存储的元数据的字段属性确定待录入数据块中的元数据的记录数是否固定,其中,所述元数据的字段属性可以表示元数据的类型,如果确定待录入数据块中的元数据的记录数固定,则转入步骤504;如果确定待录入数据块中的元数据的记录数不固定,则转入步骤505。
需要说明的是,所述字段属性为元数据的待确定数据结构的字段的属性,当根据待存储的元数据的记录数确定数据量不大时,还可以进一步确认待存储的元数据的记录数是否固定,从而进一步确定采用数组、还是链表的数据结构存储元数据。
数据链包括至少一个数据块,一个数据块包括至少一个元数据,例如数据链为公司的人员信息链,该人员信息链包括至少一个数据块,数据块的属性为包括时间戳的人员信息,如第二个数据块为2019.03.01统计的人员信息,第三个数据块为2019.05.11统计的人员信息,即数据块为人员信息数据块,数据块中的元数据为每个人员的信息,每个人员信息数据块中录入的人员个数是固定的、即待存储的元数据的字段属性为固定属性,从而根据待存储的元数据的字段属性确定的当前待录入数据块中的元数据的记录数也将是固定的、没有改变,例如每个人员信息数据块中的元数据都为5个,数据块中的元数据的字段是固定属性,根据元数据的字段的固定属性可确定当前待录入数据块中的元数据的记录数没有改变,还是5个,则根据待存储的元数据的字段的固定属性可确定待录入数据块中的元数据的记录数是固定的,其中元数据的字段的固定属性用于表示每次录入数据块中的元数据的记录数相同。
需要说明的是,用户可以在终端中预先设定一个元数据属性表,该元数据属性表包括元数据的字段属性、与元数据的记录数是否固定的对应关系,将待存储的元数据的字段属性与该元数据属性表进行匹配,若在该元数据属性表中匹配到该待存储的元数据的字段属性对应的元数据的记录数固定,则说明该待录入数据块中的元数据的记录数、即元数据的个数是固定的;若在该元数据属性表中匹配到该待存储的元数据的字段属性对应的元数据的记录数不固定,则说明该待录入数据块中的元数据的记录数、即元数据的个数是不固定的。
步骤504、采用数组的结构存储待存储的元数据,结束当前流程。
需要说明的是,可以在磁盘的设定存储区域,以数组的结构存储该待存储的元数据。可以将磁盘分为多个存储区域,每个存储区域用于以特定的数据结构存储数据,例如,第一存储区域用于以数组的结构存储元数据,第二存储区域用于以链表的结构存储元数据。例如,待录入数据的数据块为人员信息数据块,待存储的元数据为每个人员的信息,该元数据包括三个字段{姓名,年龄,职位},待存储的元数据分别为元数据1{张伟,31,主管}、元数据2{李玲,25,员工}、元数据3{王燕,23,员工},则待存储的元数据的记录数3小于设定阈值20,且根据待存储的元数据的字段属性确定待录入数据块中的元数据的记录数固定,确定采用数组的结构存储每个人员的信息,在第一存储区域存储每个人员信息,该第一存储区域中元数据的存储结构为二维数组,如下表所示:
表2
张伟 31 主管
李玲 25 员工
王燕 23 员工
步骤505、采用链表的结构存储待存储的元数据,结束当前流程。
需要说明的是,可以在磁盘的设定存储区域,以链表的结构存储该待存储的元数据。可以将磁盘分为多个存储区域,每个存储区域用于以特定的数据结构存储数据,例如,第一存储区域用于以数组的结构存储元数据,第二存储区域用于以链表的结构存储元数据。例如,待录入数据的数据块为每日销售数据块,表示每日销售物品的情况,待存储的元数据为每个物品的销售信息,该元数据包括两个字段{物品名,数量},待存储的元数据包括三个元数据,分别为元数据1{电脑,5}、元数据2{手机,2}、元数据3{空调,3},则待存储的元数据的记录数3小于设定阈值20,且由于每日销售物品的种类不同、即根据待存储的元数据的字段属性确定待录入数据块中的元数据的记录数不固定,确定采用链表的结构存储每个物品的销售信息,在第二存储区域存储每个物品的销售信息,该第二存储区域中元数据的存储结构为链表。
步骤506、根据待存储的元数据的字段属性确定待录入数据块中的元数据是否需要多表查询,如果确定待录入数据块中的元数据需要进行多表查询,则转入步骤504;如果确定待录入数据块中的元数据不需要进行多表查询,则转入步骤507。
需要说明的是,可以根据待存储的元数据的字段属性确定待录入数据块中的元数据是否需要与其他类型的元数据进行多表查询,所述字段属性为元数据的待确定数据结构的字段的属性,所述多表查询是指根据至少两个二维表中的共同字段查询数据,例如待存储的元数据为每个人员的信息,该待存储的元数据包括三个字段{姓名,年龄,职位},其他类型的元数据为工资信息,该其他类型的元数据包括两个字段{职位,工资},通过{姓名,年龄,职位}与{职位,工资}中的职位字段可以查询人员的工资信息、即待存储的元数据需要与其他类型的元数据进行多表查询。
用户可以在终端中预先设定一个多表查询属性表,该多表查询属性表包括元数据的字段属性、与元数据是否需要多表查询的对应关系,将待存储的元数据的字段属性与该多表查询属性表进行匹配,若在该多表查询属性表中匹配到该待存储的元数据的字段属性对应的元数据需要多表查询,则说明该待录入数据块中的元数据需要多表查询,可以采用数组的结构存储所述待存储的元数据的字段值,以便后续进行多表查询;若在该元数据属性表中匹配到该待存储的元数据的字段属性对应的元数据不需要多表查询,则说明该待录入数据块中的元数据不需要多表查询,转入步骤507。
步骤507、根据待存储的元数据的字段确定是否有高搜索速度要求,如果确定有高搜索速度要求,则转入步骤508;如果确定没有高搜索速度要求,则转入步骤509。
需要说明的是,可以根据待存储的元数据的字段确定是否有高搜索速度要求,如果有高搜索速度要求,则说明查找字段频率高,所述查找字段表示查找字段值;如果没有高搜索速度要求,则说明查找字段频率低。例如,数据块为每日的报销发票信息,数据块中的元数据为每一个报销发票信息,该报销发票包括三个字段{抬头,金额,出票人},对于报销发票的抬头字段,由于抬头信息基本是相同的,如某公司,且基本很少插入新的抬头信息,因此,对于报销发票的抬头字段,具有高搜索速度的要求。
用户可以在终端中预先设定一个字段属性表,该字段属性表包括字段、与是否有高搜索速度要求的对应关系,将待存储的元数据的字段与该字段属性表进行匹配,若在该字段属性表中匹配到该待存储的字段对应有高搜索速度要求,则说明查找字段频繁,转入步骤508;若在该字段属性表中匹配到该待存储的字段对应没有高搜索速度要求,则说明查找字段不频繁,转入步骤509。
步骤508、采用哈希表的结构存储所述待存储的元数据的字段值,结束当前流程。
需要说明的是,可以在磁盘的设定存储区域,以哈希表的结构存储该待存储的元数据的字段值,其中,哈希表结构占用的存储空间比较大。可以将磁盘分为多个存储区域,每个存储区域用于以特定的数据结构存储数据,例如,第一存储区域用于以数组的结构存储元数据,第二存储区域用于以链表的结构存储元数据,第三存储区域用于以哈希表的结构存储元数据。例如,待录入数据的数据块为每日的报销发票信息,待存储的元数据为每一个报销发票信息,该元数据包括三个字段{抬头,金额,出票人},待存储的元数据包括三个元数据,分别为元数据1{A公司,300,小明}、元数据2{A公司,1000,小明}、元数据3{A公司,500,小红},对于抬头字段,由于查找字段比插入字段重要,因此确定采用哈希表的结构存储抬头对应的数据、即A公司,在第三存储区域存储每个报销发票对应的抬头,该第三扇区中元数据的存储结构为哈希表。
步骤509、根据待存储的元数据的字段确定字段值是否随机分布,如果确定字段值是随机分布,则转入步骤510;如果确定字段值不是随机分布,则转入步骤511。
需要说明的是,可以根据待存储的元数据的字段确定字段值是否随机分布,如果确定字段值是随机分布,则说明字段值分布不均匀、零散;如果确定字段值不是随机分布,则说明字段值分布均匀、集中。例如,数据块为每日的报销发票信息,数据块中的元数据为每一个报销发票信息,该报销发票包括三个字段{抬头,金额,出票人},对于报销发票的金额字段,由于金额信息一般分布不均匀、零散,因此,对于报销发票的金额字段,字段值是随机分布。
用户可以在终端中预先设定一个随机分布属性表,该随机分布属性表包括字段、与字段值是否随机分布的对应关系,将待存储的元数据的字段与该随机分布属性表进行匹配,若在该随机分布属性表中匹配到该待存储的字段对应的字段值是随机分布,则转入步骤510;若在该字段属性表中匹配到该待存储的字段对应的字段值不是随机分布,转入步骤511。
步骤510、采用二叉查找树的结构存储所述待存储的元数据的字段值,结束当前流程。
需要说明的是,可以在磁盘的设定存储区域,以二叉查找树的结构存储该待存储的元数据的字段值。可以将磁盘分为多个存储区域,每个存储区域用于以特定的数据结构存储数据,例如,第一存储区域用于以数组的结构存储元数据,第二存储区域用于以链表的结构存储元数据,第三存储区域用于以哈希表的结构存储元数据,第四存储区域用于以二叉查找树的结构存储元数据。例如,待录入数据的数据块为每日的报销发票信息,待存储的元数据为每一个报销发票信息,该元数据包括三个字段{抬头,金额,出票人},待存储的元数据分别为元数据1{A公司,300,小明}、元数据2{A公司,1000,小明}、元数据3{A公司,500,小红},对于金额字段,由于字段值随机分布,因此确定采用二叉查找树的结构存储金额对应的数据、即300、100、500,该二叉查找树的左子树的金额小于中间节点、右子树的金额大于中间节点,还可以是该二叉查找树的左子树的金额大于中间节点、右子树的金额小于中间节点,在第四存储区域存储每个报销发票对应的金额,该第四存储区域中元数据的存储结构为二叉查找树。
步骤511、采用平衡二叉树的结构存储所述待存储的元数据的字段值,结束当前流程。
需要说明的是,可以在磁盘的设定存储区域,以平衡二叉树的结构存储该待存储的元数据的字段值。可以将磁盘分为多个存储区域,每个存储区域用于以特定的数据结构存储数据,例如,第一存储区域用于以数组的结构存储元数据,第二存储区域用于以链表的结构存储元数据,第三存储区域用于以哈希表的结构存储元数据,第四存储区域用于以二叉查找树的结构存储元数据,第五存储区域用于以平衡二叉树的结构存储元数据的字段值。
本申请实施例中的磁盘可以存储至少一种数据结构的元数据、即数据库采用多种数据结构存储数据,根据元数据本身的数据特征选择合适的数据结构,数据库的数据结构灵活性好,有利于数据库的快速读、写。
基于上述实施例的同一发明构思,本申请实施例提供一种数据处理装置,图6为本发明实施例提供的一种数据处理装置600的结构示意图,如图6所示,所述装置600包括:
获取单元601,用于获取待存储的元数据;
确定单元602,用于根据所述待存储的元数据的数据特征确定对应的数据结构;
存储单元603,用于根据所述对应的数据结构在数据库中存储所述待存储的元数据,所述数据库包括至少一种数据结构。
需要说明的是,所述数据特征为记录数,所述确定单元602具体用于统计所述待存储的元数据的记录数;确定所述待存储的元数据的记录数是否小于设定阈值;如果所述待存储的元数据的记录数小于设定阈值,确定对应的数据结构为第一数据结构。
需要说明的是,所述数据特征为字段属性,所述确定单元602具体用于根据所述待存储的元数据的字段属性确定待录入数据块中的元数据的记录数是否固定;如果所述待录入数据块中的元数据的记录数固定,确定对应的数据结构为第二数据结构;如果所述待录入数据块中的元数据的记录数不固定,确定对应的数据结构为第三数据结构。
需要说明的是,所述确定单元602具体用于将所述待存储的元数据的字段属性与元数据属性表进行匹配,其中,所述元数据属性表包括表征元数据的记录数固定的元数据的字段属性;如果在所述元数据属性表中匹配到所述待存储的元数据的字段属性,确定所述待录入数据块中的元数据的记录数是固定的;如果在所述元数据属性表中未匹配到所述待存储的元数据的字段属性,确定所述待录入数据块中的元数据的记录数是不固定的。
需要说明的是,所述数据特征为字段属性,所述确定单元602具体用于根据所述待存储的元数据的字段属性确定待录入数据块中的元数据是否需要多表查询;如果所述待录入数据块中的元数据需要进行多表查询,确定对应的数据结构为第四数据结构。
需要说明的是,所述确定单元602具体用于将所述待存储的元数据的字段属性与多表查询属性表进行匹配,其中,所述多表查询属性表包括表征元数据需要多表查询的元数据的字段属性;如果在所述多表查询属性表中匹配到所述待存储的元数据的字段属性,确定待录入数据块中的元数据需要多表查询;如果在所述元数据属性表中未匹配到所述待存储的元数据的字段属性,确定待录入数据块中的元数据不需要多表查询。
需要说明的是,所述存储单元603具体用于根据所述对应的数据结构确定对应的数据库区域;根据所述数据结构在所述数据库区域存储所述待存储的元数据。
在本发明实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本发明实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本发明实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时实现上述实施例所述的步骤。
参见图7,示出了本发明实施例提供的一种数据处理装置700的具体硬件结构,包括:网络接口701、存储器702和处理器703;各个组件通过总线系统704耦合在一起。可理解,总线系统704用于实现这些组件之间的连接通信。总线系统704除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统704。其中,
所述网络接口701,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
存储器702,用于存储能够在处理器703上运行的计算机程序;
处理器703,用于在运行所述计算机程序时,执行:
获取待存储的元数据;
根据所述待存储的元数据的数据特征确定对应的数据结构;
根据所述对应的数据结构在数据库中存储所述待存储的元数据,所述数据库包括至少一种数据结构。
可以理解,本发明实施例中的存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Sync Link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的方法的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器703可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器703中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器703可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器702,处理器703读取存储器702中的信息,结合其硬件完成上述方法的步骤。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。以上所描述的终端实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。以上所描述的终端实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

Claims (10)

1.一种数据处理方法,其特征在于,所述方法包括:
获取待存储的元数据;
根据所述待存储的元数据的数据特征确定对应的数据结构;
根据所述对应的数据结构在数据库中存储所述待存储的元数据,所述数据库包括至少一种数据结构。
2.根据权利要求1所述的方法,其特征在于,所述数据特征为记录数,
所述根据所述待存储的元数据的记录数确定对应的数据结构,包括:
统计所述待存储的元数据的记录数;
确定所述待存储的元数据的记录数是否小于设定阈值;
如果所述待存储的元数据的记录数小于设定阈值,确定对应的数据结构为第一数据结构。
3.根据权利要求1所述的方法,其特征在于,所述数据特征为字段属性,
所述根据所述待存储的元数据的字段属性确定对应的数据结构,包括:
根据所述待存储的元数据的字段属性确定待录入数据块中的元数据的记录数是否固定;
如果所述待录入数据块中的元数据的记录数固定,确定对应的数据结构为第二数据结构;
如果所述待录入数据块中的元数据的记录数不固定,确定对应的数据结构为第三数据结构。
4.根据权利要求3所述的方法,其特征在于,所述根据所述待存储的元数据的字段属性确定待录入数据块中的元数据的记录数是否固定,包括:
将所述待存储的元数据的字段属性与元数据属性表进行匹配,其中,所述元数据属性表包括表征元数据的记录数固定的元数据的字段属性;
如果在所述元数据属性表中匹配到所述待存储的元数据的字段属性,确定所述待录入数据块中的元数据的记录数是固定的;
如果在所述元数据属性表中未匹配到所述待存储的元数据的字段属性,确定所述待录入数据块中的元数据的记录数是不固定的。
5.根据权利要求1所述的方法,其特征在于,所述数据特征为字段属性,
所述根据所述待存储的元数据的字段属性确定对应的数据结构,包括:
根据所述待存储的元数据的字段属性确定待录入数据块中的元数据是否需要多表查询;
如果所述待录入数据块中的元数据需要进行多表查询,确定对应的数据结构为第四数据结构。
6.根据权利要求5所述的方法,其特征在于,所述根据所述待存储的元数据的字段属性确定待录入数据块中的元数据是否需要多表查询,包括:
将所述待存储的元数据的字段属性与多表查询属性表进行匹配,其中,所述多表查询属性表包括表征元数据需要多表查询的元数据的字段属性;
如果在所述多表查询属性表中匹配到所述待存储的元数据的字段属性,确定待录入数据块中的元数据需要多表查询;
如果在所述元数据属性表中未匹配到所述待存储的元数据的字段属性,确定待录入数据块中的元数据不需要多表查询。
7.根据权利要求1所述的方法,其特征在于,所述根据所述对应的数据结构在数据库中存储所述待存储的元数据,包括:
根据所述对应的数据结构确定对应的数据库区域;
根据所述数据结构在所述数据库区域存储所述待存储的元数据。
8.一种数据处理装置,其特征在于,所述装置包括:
获取单元,用于获取待存储的元数据;
确定单元,用于根据所述待存储的元数据确定对应的数据结构;
存储单元,用于根据所述对应的数据结构在数据库中存储所述待存储的元数据,所述数据库包括至少一种数据结构。
9.一种数据处理装置,其特征在于,所述装置包括网络接口、存储器和处理器;其中,
所述网络接口,配置为实现组件之间的连接通信;
所述存储器,配置为存储能够在所述处理器上运行的计算机程序;
所述处理器,配置为在运行所述计算机程序时,执行权利要求1至7任一项所述方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,当所述计算机程序被至少一个处理器执行时实现如权利要求1至7中任一项所述方法。
CN201910579306.XA 2019-06-28 2019-06-28 一种数据处理方法、装置及计算机存储介质 Pending CN110442571A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910579306.XA CN110442571A (zh) 2019-06-28 2019-06-28 一种数据处理方法、装置及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910579306.XA CN110442571A (zh) 2019-06-28 2019-06-28 一种数据处理方法、装置及计算机存储介质

Publications (1)

Publication Number Publication Date
CN110442571A true CN110442571A (zh) 2019-11-12

Family

ID=68429459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910579306.XA Pending CN110442571A (zh) 2019-06-28 2019-06-28 一种数据处理方法、装置及计算机存储介质

Country Status (1)

Country Link
CN (1) CN110442571A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112133387A (zh) * 2020-11-20 2020-12-25 杭州太美星程医药科技有限公司 病例信息的数据迁移、存储方法及系统
CN112395465A (zh) * 2020-11-24 2021-02-23 维沃移动通信有限公司 发票数据的处理方法、装置、电子设备及可读存储介质
CN112528067A (zh) * 2020-12-24 2021-03-19 北京百度网讯科技有限公司 图数据库的存储方法、读取方法、装置及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1653422A (zh) * 2002-05-31 2005-08-10 国际商业机器公司 基于策略的存储管理的方法、系统和程序
US8630844B1 (en) * 2011-01-07 2014-01-14 Narrative Science Inc. Configurable and portable method, apparatus, and computer program product for generating narratives using content blocks, angels and blueprints sets
CN106227769A (zh) * 2016-07-15 2016-12-14 北京奇虎科技有限公司 数据存储方法及装置
CN108133000A (zh) * 2017-12-21 2018-06-08 百度在线网络技术(北京)有限公司 一种元数据存储方法、装置和服务器
CN109669995A (zh) * 2018-12-25 2019-04-23 北京锐安科技有限公司 数据存储、质量计算方法、装置、存储介质及服务器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1653422A (zh) * 2002-05-31 2005-08-10 国际商业机器公司 基于策略的存储管理的方法、系统和程序
US8630844B1 (en) * 2011-01-07 2014-01-14 Narrative Science Inc. Configurable and portable method, apparatus, and computer program product for generating narratives using content blocks, angels and blueprints sets
CN106227769A (zh) * 2016-07-15 2016-12-14 北京奇虎科技有限公司 数据存储方法及装置
CN108133000A (zh) * 2017-12-21 2018-06-08 百度在线网络技术(北京)有限公司 一种元数据存储方法、装置和服务器
CN109669995A (zh) * 2018-12-25 2019-04-23 北京锐安科技有限公司 数据存储、质量计算方法、装置、存储介质及服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王勇等: "《高等教育应用型本科人才培养系列教材 数据结构导论》", 31 October 2018, 哈尔滨:哈尔滨工程大学出版社 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112133387A (zh) * 2020-11-20 2020-12-25 杭州太美星程医药科技有限公司 病例信息的数据迁移、存储方法及系统
CN112395465A (zh) * 2020-11-24 2021-02-23 维沃移动通信有限公司 发票数据的处理方法、装置、电子设备及可读存储介质
CN112395465B (zh) * 2020-11-24 2022-07-12 维沃移动通信有限公司 发票数据的处理方法、装置、电子设备及可读存储介质
CN112528067A (zh) * 2020-12-24 2021-03-19 北京百度网讯科技有限公司 图数据库的存储方法、读取方法、装置及设备

Similar Documents

Publication Publication Date Title
US8799229B2 (en) Searchable archive
US9002860B1 (en) Associating summaries with pointers in persistent data structures
US7689574B2 (en) Index and method for extending and querying index
US9047330B2 (en) Index compression in databases
US7680821B2 (en) Method and system for index sampled tablescan
US20130013605A1 (en) Managing Storage of Data for Range-Based Searching
US20130117255A1 (en) Accessing a dimensional data model when processing a query
US20170344749A1 (en) Methods and apparatus to provide group-based row-level security for big data platforms
CN110442571A (zh) 一种数据处理方法、装置及计算机存储介质
US20140046928A1 (en) Query plans with parameter markers in place of object identifiers
US20050192941A1 (en) Fast aggregation of compressed data using full table scans
US20120197925A1 (en) Optimization of Database Driver Performance
US20130024459A1 (en) Combining Full-Text Search and Queryable Fields in the Same Data Structure
Mohamed et al. Quantized ranking for permutation-based indexing
CN100357952C (zh) 一种二进制数据的访问方法
CN113157692B (zh) 一种关系型内存数据库系统
CN107239454A (zh) 基于文本数据库的检索方法及系统
KR100818742B1 (ko) 색인 단어의 문서 내 위치 정보에 대한 관련성을 이용한문서 검색 방법
US11144580B1 (en) Columnar storage and processing of unstructured data
US20120109875A1 (en) Organization of data mart using clustered key
US7792825B2 (en) Fast select for fetch first N rows with order by
US20170177670A1 (en) Database querying apparatuses, methods for querying a database, and non-transitory tangible machine-readable media thereof
CN107861956B (zh) 一种卡口过车数据记录的查询方法及装置
US20090187591A1 (en) Retrieving database records for aggregation without redundant database read operations
Paul et al. A storage & search efficient representation of medical data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20191112

RJ01 Rejection of invention patent application after publication