CN115114289A - 一种数据查询方法、装置及电子设备 - Google Patents
一种数据查询方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115114289A CN115114289A CN202210740113.XA CN202210740113A CN115114289A CN 115114289 A CN115114289 A CN 115114289A CN 202210740113 A CN202210740113 A CN 202210740113A CN 115114289 A CN115114289 A CN 115114289A
- Authority
- CN
- China
- Prior art keywords
- block
- index
- data
- partition
- hash value
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据查询方法、装置及电子设备,可应用于区块链领域或金融领域。区块链中的分区区块存储有索引节点的索引地址信息,以通过索引地址信息访问索引节点,索引节点存储有与分区区块连接的普通区块的索引信息和存储地址信息。在上述区块链结构的基础上,在接收到数据查询请求之后,计算待查询数据的属性信息的哈希值,依照分区区块的排列顺序,依次基于分区区块中存储的索引地址信息,访问索引节点中存储的索引信息,以确定出与哈希值匹配的索引信息,并作为目标索引信息,确定目标索引信息对应的存储地址信息,访问存储地址信息对应的服务器,以从服务器中获取与待查询数据对应的目标数据,从而提高数据查询效率。
Description
技术领域
本发明涉及数据处理领域,更具体的说,涉及一种数据查询方法、装置及电子设备。
背景技术
目前,区块链已经被各个企业广泛使用,在将数据存储到区块链中时,所有数据在区块链中采用链式存储方式。
若是用户需要查询区块链中的某一数据,则需要对区块链中的数据,按照存储顺序进行依次遍历,直至查询到所需的数据。此种数据查询方式,数据查询时间较长,数据查询效率较低。
发明内容
有鉴于此,本发明提供一种数据查询方法、装置及电子设备,以解决区块链中的数据查询效率较低的问题。
为解决上述技术问题,本发明采用了如下技术方案:
一种数据查询方法,应用于查询设备,所述查询设备能够访问区块链中存储的数据,所述区块链包括创世区块、分区区块和普通区块,所述分区区块和所述普通区块的哈希指针采用键值对结构,所述分区区块的键值对结构中,第一预设数值为键,所述分区区块的父节点的哈希值为值,所述普通区块的键值对结构中,第二预设数值为键,所述普通区块的父节点的哈希值为值;所有所述分区区块顺序连接,所述分区区块顺序连接至少一个普通区块,所述分区区块存储有索引节点的索引地址信息,以通过所述索引地址信息访问所述索引节点,所述索引节点存储有与所述分区区块连接的普通区块的索引信息和存储地址信息;
所述数据查询方法包括:
接收数据查询请求,所述数据查询请求包括待查询数据;
计算所述待查询数据的属性信息的哈希值;
依照分区区块的排列顺序,依次基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息,以确定出与所述哈希值匹配的索引信息,并作为目标索引信息;
确定所述目标索引信息对应的存储地址信息;
访问所述存储地址信息对应的服务器,以从所述服务器中获取与所述待查询数据对应的目标数据。
可选地,依照分区区块的排列顺序,依次基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息,以确定出与所述哈希值匹配的索引信息,并作为目标索引信息,包括:
依照分区区块的排列顺序,确定需要进行访问的分区区块;
基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息;
确定所述索引信息是否与所述哈希值相同;
若相同,则确定出与所述哈希值匹配的索引信息,并作为目标索引信息;
若不相同,则返回依照分区区块的排列顺序,确定需要进行访问的分区区块这一步骤,直至确定出与所述哈希值匹配的索引信息,或确定出所有所述索引节点中存储的索引信息均不与所述哈希值相同时停止。
可选地,还包括:
获取待上链数据;
确定所述待上链数据的存储位置;所述存储位置包括目标分区区块以及与所述目标分区区块连接的目标普通区块;
将所述待上链数据存储到所述目标普通区块。
可选地,在确定所述待上链数据的存储位置之前,还包括:
对所述区块链中的每一区块进行依次遍历验证;验证过程包括:计算所述区块的哈希值,并判断所述哈希值和所述区块的子区块中存储的哈希值是否一致;若一致,则验证通过;
若所述区块链中的每一区块均验证通过,则确定所述待上链数据的存储位置。
可选地,确定所述待上链数据的存储位置,包括:
获取所述待上链数据的属性信息,并确定是否存在与所述属性信息相匹配的分区区块;
若存在,则将所述分区区块中的待构建的普通区块,作为所述待上链数据的存储位置;
若不存在,则构建新的分区区块,将所述新的分区区块对应的待构建的普通区块作为所述待上链数据的存储位置。
一种数据查询装置,应用于查询设备,所述查询设备能够访问区块链中存储的数据,所述区块链包括创世区块、分区区块和普通区块,所述分区区块和所述普通区块的哈希指针采用键值对结构,所述分区区块的键值对结构中,第一预设数值为键,所述分区区块的父节点的哈希值为值,所述普通区块的键值对结构中,第二预设数值为键,所述普通区块的父节点的哈希值为值;所有所述分区区块顺序连接,所述分区区块顺序连接至少一个普通区块,所述分区区块存储有索引节点的索引地址信息,以通过所述索引地址信息访问所述索引节点,所述索引节点存储有与所述分区区块连接的普通区块的索引信息和存储地址信息;
所述数据查询装置包括:
请求接收模块,用于接收数据查询请求,所述数据查询请求包括待查询数据;
哈希值计算模块,用于计算所述待查询数据的属性信息的哈希值;
索引确定模块,用于依照分区区块的排列顺序,依次基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息,以确定出与所述哈希值匹配的索引信息,并作为目标索引信息;
地址确定模块,用于确定所述目标索引信息对应的存储地址信息;
数据查询模块,用于访问所述存储地址信息对应的服务器,以从所述服务器中获取与所述待查询数据对应的目标数据。
可选地,所述索引确定模块包括:
区块确定子模块,用于依照分区区块的排列顺序,确定需要进行访问的分区区块;
信息访问子模块,用于基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息;
哈希值确定子模块,用于确定所述索引信息是否与所述哈希值相同;
索引确定子模块,用于若相同,则确定出与所述哈希值匹配的索引信息,并作为目标索引信息;
所述区块确定子模块,还用于若不相同,则执行依照分区区块的排列顺序,确定需要进行访问的分区区块这一步骤,直至确定出与所述哈希值匹配的索引信息,或确定出所有所述索引节点中存储的索引信息均不与所述哈希值相同时停止。
可选地,还包括:
数据获取模块,用于获取待上链数据;
位置确定模块,用于确定所述待上链数据的存储位置;所述存储位置包括目标分区区块以及与所述目标分区区块连接的目标普通区块;
数据存储模块,用于将所述待上链数据存储到所述目标普通区块。
可选地,还包括:
验证模块,用于对所述区块链中的每一区块进行依次遍历验证;验证过程包括:计算所述区块的哈希值,并判断所述哈希值和所述区块的子区块中存储的哈希值是否一致;若一致,则验证通过;
所述位置确定模块,用于若所述区块链中的每一区块均验证通过,则确定所述待上链数据的存储位置。
一种电子设备,包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于执行上述的数据查询方法。
相较于现有技术,本发明具有以下有益效果:
本发明提供了一种数据查询方法、装置及电子设备,区块链包括创世区块、分区区块和普通区块,所述分区区块存储有索引节点的索引地址信息,以通过所述索引地址信息访问所述索引节点,所述索引节点存储有与所述分区区块连接的普通区块的索引信息和存储地址信息。在上述区块链结构的基础上,本发明在接收到数据查询请求之后,计算所述待查询数据的属性信息的哈希值,依照分区区块的排列顺序,依次基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息,以确定出与所述哈希值匹配的索引信息,并作为目标索引信息,确定所述目标索引信息对应的存储地址信息,访问所述存储地址信息对应的服务器,以从所述服务器中获取与所述待查询数据对应的目标数据,从而提高数据查询效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种区块链的结构示意图;
图2为本发明实施例提供的一种哈希指针的示意图;
图3为本发明实施例提供的一种数据查询方法的方法流程图;
图4为本发明实施例提供的另一种数据查询方法的方法流程图;
图5为本发明实施例提供的再一种数据查询方法的方法流程图;
图6为本发明实施例提供的一种数据查询装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
若是用户需要查询区块链中的某一数据,则需要对区块链中的数据,按照存储顺序进行依次遍历,直至查询到所需的数据。比如对于信息是链式存储,如果想要对某省的银行数据进行分析和定制策略那么只能在链上遍历以找到想要的信息,这种办法虽然有效但是需要遍历每个区块的信息,增加了查询的时间及功耗。
为了解决数据查询效率较低的问题,可以基于业务逻辑的区分,生成多条区块链,但是这样会增加管理成本,并且各链之间的相关性也不好整合。
为此,本发明提供了一种数据查询方法、装置及电子设备,区块链包括创世区块、分区区块和普通区块,所述分区区块存储有索引节点的索引地址信息,以通过所述索引地址信息访问所述索引节点,所述索引节点存储有与所述分区区块连接的普通区块的索引信息和存储地址信息。在上述区块链结构的基础上,本发明在接收到数据查询请求之后,计算所述待查询数据的属性信息的哈希值,依照分区区块的排列顺序,依次基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息,以确定出与所述哈希值匹配的索引信息,并作为目标索引信息,确定所述目标索引信息对应的存储地址信息,访问所述存储地址信息对应的服务器,以从所述服务器中获取与所述待查询数据对应的目标数据,从而提高数据查询效率。
需要说明的是,本发明提供的一种数据查询方法、装置及电子设备可用于区块链领域或金融领域。上述仅为示例,并不对本发明提供的一种数据查询方法、装置及电子设备的应用领域进行限定。
在上述内容的基础上,本发明的一实施例提供了一种数据查询方法,应用于查询设备,查询设备可以是处理器、服务器等设备。
参照图1,所述查询设备能够访问区块链中存储的数据,所述区块链包括创世区块、分区区块和普通区块。
本实施例中,设置分区区块,主要是用于获取普通区块的索引信息,索引信息可以按照业务方向分类,业务方向可以是业务类型,如理财、生活等,业务方向还可以是业务地区,如北京、上海等。
所述分区区块和所述普通区块的哈希指针采用键值对结构,所述分区区块的键值对结构中,第一预设数值(如0)为键,所述分区区块的父节点的哈希值为值,所述普通区块的键值对结构中,第二预设数值(如1)为键,所述普通区块的父节点的哈希值为值。
本实施例中,分区区块和普通区块的键值对中的值,均指向自身的父节点,父节点的哈希值为父节点的所有信息(包括哈希指针)取哈希值计算得到,具体参照图2。
另外,通过键值对中的键能够很好地区分出一个区块是普通区块还是分区区块。
参照图1,所有所述分区区块顺序连接,所述分区区块顺序连接至少一个普通区块,普通区块主要用于存储具体的数据。
所述分区区块存储有索引节点的索引地址信息,以通过所述索引地址信息访问所述索引节点,所述索引节点存储有与所述分区区块连接的普通区块的索引信息和存储地址信息。
在实际应用中,为了便于数据的扩展,可以为每一分区区块设置索引节点,索引节点可以是服务器集群中的至少一个服务器。
分区区块存储有索引节点的索引地址信息,索引地址信息可以是该服务器的访问地址,通过该访问地址即可访问到该服务器,该服务器中储有与所述分区区块连接的普通区块的索引信息(可以以哈希值形式存储)和存储地址信息,从而能够通过访问该服务器获取到该服务器中存储的与所述分区区块连接的普通区块的索引信息和存储地址信息。
通过将所述分区区块连接的普通区块的索引信息和存储地址信息存储到索引节点上,并通过分区区块存储有索引节点的索引地址信息的方式,能够随意扩展索引节点上存储的数据内容,相比于直接将普通区块的索引信息和存储地址信息存储到分区区块的这种固定内存的存储方式,能够扩展存储数据量。
本实施例中,通过改变哈希指针结构构造了额外的分区区块,基于该分区区块能够查询其连接的普通区块所涉及的业务方向,这样在数据存储时,便可只查询关于该业务的区块,而不用查询其他分区区块连接的普通区块,这样便大大节省了存储空间。
在上述内容的基础上,参照图3,本发明中的一种数据查询方法可以包括:
S11、接收数据查询请求。
所述数据查询请求包括待查询数据。
本实施例中,若是用户想要查询某一数据,则可以输入待查询数据,如查询理财类数据。然后点击查询按钮,查询设备即可接收到数据查询请求。
S12、计算所述待查询数据的属性信息的哈希值。
本实施例中,待查询数据的属性信息可以是业务方向,如理财类。
对于该属性信息,可以计算其哈希值。然后判断索引节点中是否存储该哈希值,从而确定该数据存储在哪一分区区块中,直接定位到该分区区块后,查询该分区区块连接的普通区块中存储的数据,即可找到用户想要的数据。由于不需要对整个区块链进行遍历,则可以减少数据查询时间,提高数据查询效率。
S13、依照分区区块的排列顺序,依次基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息,以确定出与所述哈希值匹配的索引信息,并作为目标索引信息。
具体的,参照图1,分区区块顺序连接,则可以按照分区区块的排列顺序,依次判断该分区区块的索引节点中是否存储有步骤S12计算得到的哈希值。
详细来说,步骤S13可以包括:
1)依照分区区块的排列顺序,确定需要进行访问的分区区块。
本实施例中,可以首先访问第一个分区区块,然后访问第二个分区区块……。
2)基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息。
3)确定所述索引信息是否与所述哈希值相同。
4)若相同,则确定出与所述哈希值匹配的索引信息,并作为目标索引信息。
5)若不相同,则返回依照分区区块的排列顺序,确定需要进行访问的分区区块这一步骤,直至确定出与所述哈希值匹配的索引信息,或确定出所有所述索引节点中存储的索引信息均不与所述哈希值相同时停止。
具体的,以访问第一个分区区块为例,查询第一个分区区块中的索引地址信息,通过该索引地址信息访问相对应的索引节点。然后获取索引节点存储的索引信息(以哈希值形式存储),确定是否存在与步骤S12计算得到的哈希值相同的索引信息,若存在,该索引信息即为目标索引信息。
若是不存在,则继续访问第二个分区区块,并顺序执行,直至找到目标索引信息,或者是所有的分区区块对应的索引节点均遍历完成,未找到目标索引信息时停止。
若是未找到目标索引信息,则认为用户所查询的数据并未存储在该区块链中,则返回用户查询失败信息。
S14、确定所述目标索引信息对应的存储地址信息。
具体的,由于索引节点存储有与所述分区区块连接的普通区块的索引信息和存储地址信息,各个普通区块的索引信息和存储地址信息是相对的。因此,在确定了索引信息之后,就可以确定该索引信息对应的存储地址信息。
在实际应用中,一个分区区块下的普通区块需要存储的数据可以位于同一服务器中,则该分区区块下的普通区块的存储地址信息相同。此外,一个分区区块下的普通区块需要存储的数据也可以不位于同一服务器中,则该分区区块下的普通区块的存储地址信息不相同。
S15、访问所述存储地址信息对应的服务器,以从所述服务器中获取与所述待查询数据对应的目标数据。
在确定了存储地址信息之后,即可访问所述存储地址信息对应的服务器,以从所述服务器中获取与所述待查询数据对应的目标数据。
本实施例中,区块链包括创世区块、分区区块和普通区块,所述分区区块存储有索引节点的索引地址信息,以通过所述索引地址信息访问所述索引节点,所述索引节点存储有与所述分区区块连接的普通区块的索引信息和存储地址信息。在上述区块链结构的基础上,本发明在接收到数据查询请求之后,计算所述待查询数据的属性信息的哈希值,依照分区区块的排列顺序,依次基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息,以确定出与所述哈希值匹配的索引信息,并作为目标索引信息,确定所述目标索引信息对应的存储地址信息,访问所述存储地址信息对应的服务器,以从所述服务器中获取与所述待查询数据对应的目标数据,从而提高数据查询效率。
通过上述实施例可以实现区块链的数据查询功能,此外,本发明实施例还能够实现数据上链功能。
具体的,参照图4,数据查询方法,还包括:
S21、获取待上链数据。
本实施例中的待上链数据即为用户需要存储到区块链上的数据。
S22、确定所述待上链数据的存储位置。
所述存储位置包括目标分区区块以及与所述目标分区区块连接的目标普通区块。
本实施例中,确定待上链数据的存储位置,是为了确定该待上链数据存储到哪一分区区块下的哪一普通区块中。
在实际应用中,参照图5,步骤S22可以包括:
S31、获取所述待上链数据的属性信息。
S32、确定是否存在与所述属性信息相匹配的分区区块;若是,则执行步骤S33;若否,则执行步骤S34。
具体的,待上链数据的属性信息可以是业务方向。
然后基于每个分区区块对应的索引节点存储的索引信息,确定是否存在与该属性信息相同的索引信息,若存在,则该索引信息对应的分区区块,即为与所述属性信息相匹配的分区区块。
S33、将所述分区区块中的待构建的普通区块,作为所述待上链数据的存储位置。
在实际应用中,在数据上链的过程中,首先对数据进行收集,若是收集的数据能够填满一个普通区块,则构建一个普通区块,若是不能够填满一个普通区块,则继续等待下一数据。
因此,本实施例中,等待构建的普通区块,即为待上链数据的存储位置。
需要说明的是,若是已有数据和待上链数据的一部分能够填满一个普通区块,则先构建一个普通区块,然后将数据载入到普通区块中。待上链数据中的剩余数据则等待其余数据,存储到下一个普通区块中。
S34、构建新的分区区块,将所述新的分区区块对应的待构建的普通区块作为所述待上链数据的存储位置。
若是不存在匹配的分区区块,则说明目前的区块链没有存储该业务方向的数据,此时,可以构建新的分区区块,该分区区块用于存储上述的待上链数据的业务方向的数据,然后将所述新的分区区块对应的待构建的普通区块作为所述待上链数据的存储位置。
在本发明的另一实现方式中,在执行步骤S22之前,还可以包括:
对所述区块链中的每一区块进行依次遍历验证;验证过程包括:计算所述区块的哈希值,并判断所述哈希值和所述区块的子区块中存储的哈希值是否一致;若一致,则验证通过;
若所述区块链中的每一区块均验证通过,则确定所述待上链数据的存储位置。
本实施例中,对于区块链中的区块,由于子节点存储的父节点的哈希值,所以本实施例中采用遍历验证的方式,先验证父节点,然后验证子节点,若是每一节点均验证通过,则说明区块链未被篡改,可以将数据上链,若是任一节点未验证通过,则说明区块链被篡改,不能够将数据上链。
S23、将所述待上链数据存储到所述目标普通区块。
具体的,在确定了存储到哪一分区区块下的哪一普通区块中后,一般情况下,一个普通区块在需要存储的数据能够填满该区块时,才构建新的普通区块,并导入数据。此时,若是将该待上链数据分配给该普通区块后,能够填满该区块,则构建该普通区块,并将数据存储到该普通区块中。具体将数据存储到该普通区块中,是将数据存储到该普通区块对应的服务器中。
若是将该待上链数据分配给该普通区块后,不能够填满该区块,可以等待该普通区块中需要存储的数据能够填满该普通区块后,构建该普通区块,并将数据存储到该普通区块中。
本实施例中,在数据上链之前,对区块链进行防篡改验证,保证了区块链的安全可靠。另外,在数据上链时,按照业务方向分类存储,便于后续的数据查询操作。
可选地,在上述数据查询方法的实施例的基础上,本发明的另一实施例提供了一种数据查询装置,应用于查询设备,所述查询设备能够访问区块链中存储的数据,所述区块链包括创世区块、分区区块和普通区块,所述分区区块和所述普通区块的哈希指针采用键值对结构,所述分区区块的键值对结构中,第一预设数值为键,所述分区区块的父节点的哈希值为值,所述普通区块的键值对结构中,第二预设数值为键,所述普通区块的父节点的哈希值为值;所有所述分区区块顺序连接,所述分区区块顺序连接至少一个普通区块,所述分区区块存储有索引节点的索引地址信息,以通过所述索引地址信息访问所述索引节点,所述索引节点存储有与所述分区区块连接的普通区块的索引信息和存储地址信息;
参照图6,所述数据查询装置包括:
请求接收模块11,用于接收数据查询请求,所述数据查询请求包括待查询数据;
哈希值计算模块12,用于计算所述待查询数据的属性信息的哈希值;
索引确定模块13,用于依照分区区块的排列顺序,依次基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息,以确定出与所述哈希值匹配的索引信息,并作为目标索引信息;
地址确定模块14,用于确定所述目标索引信息对应的存储地址信息;
数据查询模块15,用于访问所述存储地址信息对应的服务器,以从所述服务器中获取与所述待查询数据对应的目标数据。
进一步,所述索引确定模块包括:
区块确定子模块,用于依照分区区块的排列顺序,确定需要进行访问的分区区块;
信息访问子模块,用于基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息;
哈希值确定子模块,用于确定所述索引信息是否与所述哈希值相同;
索引确定子模块,用于若相同,则确定出与所述哈希值匹配的索引信息,并作为目标索引信息;
所述区块确定子模块,还用于若不相同,则执行依照分区区块的排列顺序,确定需要进行访问的分区区块这一步骤,直至确定出与所述哈希值匹配的索引信息,或确定出所有所述索引节点中存储的索引信息均不与所述哈希值相同时停止。
进一步,还包括:
数据获取模块,用于获取待上链数据;
位置确定模块,用于确定所述待上链数据的存储位置;所述存储位置包括目标分区区块以及与所述目标分区区块连接的目标普通区块;
数据存储模块,用于将所述待上链数据存储到所述目标普通区块。
进一步,还包括:
验证模块,用于对所述区块链中的每一区块进行依次遍历验证;验证过程包括:计算所述区块的哈希值,并判断所述哈希值和所述区块的子区块中存储的哈希值是否一致;若一致,则验证通过;
所述位置确定模块,用于若所述区块链中的每一区块均验证通过,则确定所述待上链数据的存储位置。
进一步,位置确定模块具体用于:
获取所述待上链数据的属性信息,并确定是否存在与所述属性信息相匹配的分区区块;
若存在,则将所述分区区块中的待构建的普通区块,作为所述待上链数据的存储位置;若不存在,则构建新的分区区块,将所述新的分区区块对应的待构建的普通区块作为所述待上链数据的存储位置。
本实施例中,区块链包括创世区块、分区区块和普通区块,所述分区区块存储有索引节点的索引地址信息,以通过所述索引地址信息访问所述索引节点,所述索引节点存储有与所述分区区块连接的普通区块的索引信息和存储地址信息。在上述区块链结构的基础上,本发明在接收到数据查询请求之后,计算所述待查询数据的属性信息的哈希值,依照分区区块的排列顺序,依次基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息,以确定出与所述哈希值匹配的索引信息,并作为目标索引信息,确定所述目标索引信息对应的存储地址信息,访问所述存储地址信息对应的服务器,以从所述服务器中获取与所述待查询数据对应的目标数据,从而提高数据查询效率。
需要说明的是,本实施例中的各个模块和子模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
可选地,在上述数据查询方法及装置的实施例的基础上,本发明的另一实施例提供了一种电子设备,包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于执行上述的数据查询方法。
本实施例中,区块链包括创世区块、分区区块和普通区块,所述分区区块存储有索引节点的索引地址信息,以通过所述索引地址信息访问所述索引节点,所述索引节点存储有与所述分区区块连接的普通区块的索引信息和存储地址信息。在上述区块链结构的基础上,本发明在接收到数据查询请求之后,计算所述待查询数据的属性信息的哈希值,依照分区区块的排列顺序,依次基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息,以确定出与所述哈希值匹配的索引信息,并作为目标索引信息,确定所述目标索引信息对应的存储地址信息,访问所述存储地址信息对应的服务器,以从所述服务器中获取与所述待查询数据对应的目标数据,从而提高数据查询效率。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据查询方法,其特征在于,应用于查询设备,所述查询设备能够访问区块链中存储的数据,所述区块链包括创世区块、分区区块和普通区块,所述分区区块和所述普通区块的哈希指针采用键值对结构,所述分区区块的键值对结构中,第一预设数值为键,所述分区区块的父节点的哈希值为值,所述普通区块的键值对结构中,第二预设数值为键,所述普通区块的父节点的哈希值为值;所有所述分区区块顺序连接,所述分区区块顺序连接至少一个普通区块,所述分区区块存储有索引节点的索引地址信息,以通过所述索引地址信息访问所述索引节点,所述索引节点存储有与所述分区区块连接的普通区块的索引信息和存储地址信息;
所述数据查询方法包括:
接收数据查询请求,所述数据查询请求包括待查询数据;
计算所述待查询数据的属性信息的哈希值;
依照分区区块的排列顺序,依次基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息,以确定出与所述哈希值匹配的索引信息,并作为目标索引信息;
确定所述目标索引信息对应的存储地址信息;
访问所述存储地址信息对应的服务器,以从所述服务器中获取与所述待查询数据对应的目标数据。
2.根据权利要求1所述的数据查询方法,其特征在于,依照分区区块的排列顺序,依次基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息,以确定出与所述哈希值匹配的索引信息,并作为目标索引信息,包括:
依照分区区块的排列顺序,确定需要进行访问的分区区块;
基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息;
确定所述索引信息是否与所述哈希值相同;
若相同,则确定出与所述哈希值匹配的索引信息,并作为目标索引信息;
若不相同,则返回依照分区区块的排列顺序,确定需要进行访问的分区区块这一步骤,直至确定出与所述哈希值匹配的索引信息,或确定出所有所述索引节点中存储的索引信息均不与所述哈希值相同时停止。
3.根据权利要求1所述的数据查询方法,其特征在于,还包括:
获取待上链数据;
确定所述待上链数据的存储位置;所述存储位置包括目标分区区块以及与所述目标分区区块连接的目标普通区块;
将所述待上链数据存储到所述目标普通区块。
4.根据权利要求3所述的数据查询方法,其特征在于,在确定所述待上链数据的存储位置之前,还包括:
对所述区块链中的每一区块进行依次遍历验证;验证过程包括:计算所述区块的哈希值,并判断所述哈希值和所述区块的子区块中存储的哈希值是否一致;若一致,则验证通过;
若所述区块链中的每一区块均验证通过,则确定所述待上链数据的存储位置。
5.根据权利要求3所述的数据查询方法,其特征在于,确定所述待上链数据的存储位置,包括:
获取所述待上链数据的属性信息,并确定是否存在与所述属性信息相匹配的分区区块;
若存在,则将所述分区区块中的待构建的普通区块,作为所述待上链数据的存储位置;
若不存在,则构建新的分区区块,将所述新的分区区块对应的待构建的普通区块作为所述待上链数据的存储位置。
6.一种数据查询装置,其特征在于,应用于查询设备,所述查询设备能够访问区块链中存储的数据,所述区块链包括创世区块、分区区块和普通区块,所述分区区块和所述普通区块的哈希指针采用键值对结构,所述分区区块的键值对结构中,第一预设数值为键,所述分区区块的父节点的哈希值为值,所述普通区块的键值对结构中,第二预设数值为键,所述普通区块的父节点的哈希值为值;所有所述分区区块顺序连接,所述分区区块顺序连接至少一个普通区块,所述分区区块存储有索引节点的索引地址信息,以通过所述索引地址信息访问所述索引节点,所述索引节点存储有与所述分区区块连接的普通区块的索引信息和存储地址信息;
所述数据查询装置包括:
请求接收模块,用于接收数据查询请求,所述数据查询请求包括待查询数据;
哈希值计算模块,用于计算所述待查询数据的属性信息的哈希值;
索引确定模块,用于依照分区区块的排列顺序,依次基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息,以确定出与所述哈希值匹配的索引信息,并作为目标索引信息;
地址确定模块,用于确定所述目标索引信息对应的存储地址信息;
数据查询模块,用于访问所述存储地址信息对应的服务器,以从所述服务器中获取与所述待查询数据对应的目标数据。
7.根据权利要求6所述的数据查询装置,其特征在于,所述索引确定模块包括:
区块确定子模块,用于依照分区区块的排列顺序,确定需要进行访问的分区区块;
信息访问子模块,用于基于所述分区区块中存储的索引地址信息,访问所述索引节点中存储的索引信息;
哈希值确定子模块,用于确定所述索引信息是否与所述哈希值相同;
索引确定子模块,用于若相同,则确定出与所述哈希值匹配的索引信息,并作为目标索引信息;
所述区块确定子模块,还用于若不相同,则执行依照分区区块的排列顺序,确定需要进行访问的分区区块这一步骤,直至确定出与所述哈希值匹配的索引信息,或确定出所有所述索引节点中存储的索引信息均不与所述哈希值相同时停止。
8.根据权利要求7所述的数据查询装置,其特征在于,还包括:
数据获取模块,用于获取待上链数据;
位置确定模块,用于确定所述待上链数据的存储位置;所述存储位置包括目标分区区块以及与所述目标分区区块连接的目标普通区块;
数据存储模块,用于将所述待上链数据存储到所述目标普通区块。
9.根据权利要求7所述的数据查询装置,其特征在于,还包括:
验证模块,用于对所述区块链中的每一区块进行依次遍历验证;验证过程包括:计算所述区块的哈希值,并判断所述哈希值和所述区块的子区块中存储的哈希值是否一致;若一致,则验证通过;
所述位置确定模块,用于若所述区块链中的每一区块均验证通过,则确定所述待上链数据的存储位置。
10.一种电子设备,其特征在于,包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于执行如权利要求1-5任一项所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210740113.XA CN115114289A (zh) | 2022-06-28 | 2022-06-28 | 一种数据查询方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210740113.XA CN115114289A (zh) | 2022-06-28 | 2022-06-28 | 一种数据查询方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115114289A true CN115114289A (zh) | 2022-09-27 |
Family
ID=83329724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210740113.XA Pending CN115114289A (zh) | 2022-06-28 | 2022-06-28 | 一种数据查询方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115114289A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539962A (zh) * | 2024-01-09 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
-
2022
- 2022-06-28 CN CN202210740113.XA patent/CN115114289A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539962A (zh) * | 2024-01-09 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN117539962B (zh) * | 2024-01-09 | 2024-05-14 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107784044B (zh) | 表数据查询方法及装置 | |
CN112287182B (zh) | 图数据存储、处理方法、装置及计算机存储介质 | |
EP2637111A1 (en) | Data management system and method using database middleware | |
CN107729371B (zh) | 区块链的数据索引及查询方法、装置、设备及存储介质 | |
CN109117275B (zh) | 基于数据分片的对账方法、装置、计算机设备及存储介质 | |
US8812492B2 (en) | Automatic and dynamic design of cache groups | |
CN111221840B (zh) | 数据处理方法及装置、数据缓存方法、存储介质、系统 | |
CN112732756B (zh) | 数据查询方法、装置、设备及存储介质 | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
CN106599091A (zh) | 基于键值存储的rdf图结构存储和索引方法 | |
CN110036381B (zh) | 存储器内数据搜索技术 | |
CN115114289A (zh) | 一种数据查询方法、装置及电子设备 | |
CN111913917A (zh) | 一种文件处理方法、装置、设备和介质 | |
CN115712670A (zh) | 一种数据源管理系统 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
US8548980B2 (en) | Accelerating queries based on exact knowledge of specific rows satisfying local conditions | |
US20230153286A1 (en) | Method and system for hybrid query based on cloud analysis scene, and storage medium | |
CN112015819A (zh) | 分布式图数据库的数据更新方法、装置、设备及介质 | |
CN116450607A (zh) | 数据处理方法、设备及存储介质 | |
US20110029480A1 (en) | Method of Compiling Multiple Data Sources into One Dataset | |
CN116126901A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN114969189A (zh) | 一种数据库连接池中连接确定方法及装置 | |
CN110413617B (zh) | 一种根据数据量的大小动态调节哈希表组的方法 | |
CN113064902A (zh) | 一种检索链上交易数据的方法、装置和电子设备 | |
CN111858609A (zh) | 区块链模糊查询方法及装置 |
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 |