CN112711592A - 基于区块链的数据索引方法 - Google Patents
基于区块链的数据索引方法 Download PDFInfo
- Publication number
- CN112711592A CN112711592A CN202011640256.0A CN202011640256A CN112711592A CN 112711592 A CN112711592 A CN 112711592A CN 202011640256 A CN202011640256 A CN 202011640256A CN 112711592 A CN112711592 A CN 112711592A
- Authority
- CN
- China
- Prior art keywords
- sql
- key
- information
- value pair
- block chain
- 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.)
- Granted
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/2282—Tablespace storage structures; Management thereof
-
- 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/242—Query formulation
- G06F16/2433—Query languages
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于区块链的数据索引方法。本发明的目的是提供一种基于区块链的数据索引方法。本发明的技术方案是:该数据索引方法,将用于对链上数据索引的SQL层叠加在区块链上,索引方法包括:获取合法合规的表操作类SQL语句;对SQL语句进行解析,将SQL语句转换为对应的多条键值对操作和数据表元信息;检查数据表元信息,判断数据表元信息同现有数据表元信息是否相冲突;如数据表元信息同现有数据表元信息无冲突,则基于键值对操作检查相应表空间是否处于阻塞状态,如处于阻塞状态,则进入阻塞状态;如不处于阻塞状态,则阻塞相应表空间;根据键值对操作调用区块链提供的键值对操作API,实现相应的键值对操作。本发明适用于区块链技术领域。
Description
技术领域
本发明涉及一种基于区块链的数据索引方法。适用于区块链技术领域。
背景技术
区块链具有不可伪造、全程留痕、可以追溯、公开透明、集体维护等特征,基于这些特征,区块链技术奠定了坚实的信任基础,创造了可靠的合作机制,具有广阔的运用前景。
现有区块链系统一般采用Key-Value型数据库存储引擎以及文件存储的混合存储架构,对于区块与交易这种连续型数据存储在文件,其它数据存储在Key-Value型NoSQL数据库。因此,对于数据的检索,只能基于Key值进行粗粒度查询,无法针对Value的结构化数据进行检索。
为了解决这个问题,现有技术中在链外部署关系型数据库实时同步区块链上的数据,将从区块链上同步过来的数据进行结构化存储。该方法数据同步效率较低、实时性不强、增加了额外冗余存储开销,并且从链外数据库进行查询已然脱离了区块链,数据不具备可靠性。
专利号为202010419364.9的中国专利提供了一种区块链数据索引的方法,通过扩展区块链数据存储的处理过程,将区块链索引数据存储在独立索引数据库中且保证多数据库事务原子性,建立了一种将业务信息自定义在交易附注字段,然后通过自定义交易附注索引字段来关联交易与业务信息的联系,最后基于交易关键信息从而获取完整交易的数据索引机制;由于无需对区块链上的区块进行重新遍历和解析就能快速索引到具体交易,极大地提高了区块链交易回溯的效率,同时又保证了数据可靠性,为交易数据回溯奠定基石。该专利把数据索引的信息写入区块链的交易中,在区块打包和共识的过程中提取交易中的索引信息,把索引信息放入索引数据库中,其本质上还是借助了额外的关系型数据库来完成对链上数据的索引,存在可靠性问题。
发明内容
本发明要解决的技术问题是:针对上述存在的问题,提供一种基于区块链的数据索引方法。
本发明所采用的技术方案是:一种基于区块链的数据索引方法,其特征在于,将用于对链上数据索引的SQL层叠加在区块链上,索引方法包括:
获取合法合规的表操作类SQL语句;
对SQL语句进行解析,将SQL语句转换为对应的多条键值对操作和数据表元信息;
检查数据表元信息,判断数据表元信息同现有数据表元信息是否相冲突;
如数据表元信息同现有数据表元信息无冲突,则基于键值对操作检查相应表空间是否处于阻塞状态,如处于阻塞状态,则进入阻塞状态;如不处于阻塞状态,则阻塞相应表空间;
根据键值对操作调用区块链提供的键值对操作API,实现相应的键值对操作。
一种基于区块链的数据索引方法,其特征在于,将用于对链上数据索引的SQL层叠加在区块链上,索引方法包括:
获取合法合规的写入类SQL语句;
对SQL语句进行解析,将SQL语句转换为对应的多条键值对操作;
从键值对操作提取对应数据表元信息,判断数据表元信息与现有数据表是否一致;
如数据表元信息与现有数据表一致,则根据键值对操作检查相应表空间的键值是否处于阻塞状态;
如相应表空间的键值不处于阻塞状态,则阻塞相应表空间的键值;
根据键值对操作调用区块链提供的键值对操作API,实现相应的键值对的写入操作。
一种基于区块链的数据索引方法,其特征在于,将用于对链上数据索引的SQL层叠加在区块链上,索引方法包括:
获取合法合规的查询类SQL语句;
对SQL语句进行解析,将SQL语句转换为对应的多条键值对操作;
从键值对操作提取对应数据表元信息,判断数据表元信息与现有数据表是否一致;
如数据表元信息与现有数据表一致,则根据键值对操作调用区块链提供的键值对操作API,实现相应的键值对的查询操作;
将查询到的键值对信息组装成符合SQL标准的数据结构,并把此数据结构返回给查询申请端。
所述获取合法合规的SQL语句,包括:
获取客户端发送的SQL语句;
对SQL语句的连接进行鉴权;
如鉴权成功,对SQL语句进行语法检查;
如语法检查通过,对SQL语句进行词法检查;
如词法检查通过,得到合法合规的SQL语句。
一种基于区块链的数据索引系统,其特征在于,包括:
SQL接入模块,用于为客户端提供SQL接口服务和鉴权服务;
SQL过滤模块,用于滤除不符合SQL语法规范和该系统词法规范的SQL语句;
SQL解析模块,用于将SQL语句转换为对应的键值对操作;
表结构管理模块,用于对逻辑表结构进行管理;
多版本并发管理模块,用于实现多隔离级别下的并发事务机制;
区块链接入模块,用于与区块链接口对接,利用区块链提供的键值对操作API实现数据的查询和写入。
SQL接入模块收到客户端发送的表操作类SQL语句之后,对SQL语句的连接进行鉴权,如果鉴权失败,返回错误信息,流程终止;如果鉴权成功,把SQL语句传入SQL过滤模块。
SQL过滤模块对SQL进行语法检查,如果语法检查不通过,返回语法错误信息,流程终止;如果语法检查通过,再对SQL语句进行词法检查,如果包含该系统不允许的表操作类语句,返回错误信息流程终止;如果词法检查通过,把SQL语句传入SQL解析模块;
SQL解析模块对SQL语句进行解析,按照既定规则,把SQL语句转换为对应的多条键值对操作和数据表元信息,并把键值对操作和数据表元信息传入表结构管理模块;
表结构管理模块检查数据表元信息,如果数据表元信息同现有数据表元信息相冲突,则返回错误信息,流程终止;如果数据表元信息无冲突,则把对应的键值对操作传入多版本并发控制模块;
多版本并发控制模块收到键值对操作之后,检查相应表空间是否处于阻塞状态,如果处于阻塞状态,则进入阻塞状态,直到阻塞解除;如果不处于阻塞状态,则阻塞相应表空间,并把键值对操作传入区块链接入模块;
区块链接入模块收到键值对操作之后,调用区块链提供的键值对操作API,实现相应的键值对操作,如果区块链API调用失败,则返回错误信息,流程终止;如果区块链API调用成功,则向多版本并发控制模块返回成功信息;
多版本并发控制模块收到成功信息之后,解除相应表空间的阻塞,并向表结构管理模块返回成功信息;
表结构管理模块收到成功信息之后,记录成功的数据表元信息。
SQL接入模块收到客户端发送的写入类SQL语句之后,对SQL语句的连接进行鉴权,如果鉴权失败,返回错误信息,流程终止;如果鉴权成功,把SQL语句传入SQL过滤模块;
SQL过滤模块对SQL进行语法检查,如果语法检查不通过,返回语法错误信息,流程终止;如果语法检查通过,再对SQL语句进行词法检查,如果包含系统不允许的写入类语句,返回错误信息流程终止;如果词法检查通过,把SQL语句传入SQL解析模块;
SQL解析模块对SQL语句进行解析,按照既定规则,把SQL语句转换为对应的多条键值对操作,并把键值对操作传入表结构管理模块;
表结构管理模块从键值对操作提取对应数据表元信息,如果数据表元信息不存在或与现有数据表不一致,则返回错误信息,流程终止;如果数据表元信息一致,则把对应的键值对操作传入多版本并发控制模块;
多版本并发控制模块收到键值对操作之后,检查相应表空间的键值是否处于阻塞状态,如果处于阻塞状态,则返回错误信息,流程终止;如果不处于阻塞状态,则阻塞相应表空间的键值,并把键值对操作传入区块链接入模块;
区块链接入模块收到键值对操作之后,调用区块链提供的键值对操作API,实现相应的键值对的写入操作,如果区块链API调用失败,则返回错误信息,流程终止;如果区块链API调用成功,则向多版本并发控制模块返回成功信息;
多版本并发控制模块收到成功信息之后,解除相应表空间键值对的阻塞,并向表结构管理模块返回成功信息。
SQL接入模块收到客户端发送的查询类SQL语句之后,对SQL语句的连接进行鉴权,如果鉴权失败,返回错误信息,流程终止;如果鉴权成功,把SQL语句传入SQL过滤模块;
SQL过滤模块对SQL进行语法检查,如果语法检查不通过,返回语法错误信息,流程终止;如果语法检查通过,再对SQL语句进行词法检查,如果包含系统不允许的查询类语句,返回错误信息流程终止;如果词法检查通过,把SQL语句传入SQL解析模块。
SQL解析模块对SQL语句进行解析,按照既定规则,把SQL语句转换为对应的多条键值对操作,并把键值对操作传入表结构管理模块;
表结构管理模块从键值对操作提取对应数据表元信息,如果数据表元信息不存在或与现有数据表不一致,则返回错误信息,流程终止;如果数据表元信息一致,则把对应的键值对操作传入多版本并发控制模块;
多版本并发控制模块收到键值对操作之后,直接把键值对操作发送到区块链接入模块;
区块链接入模块收到键值对操作之后,调用区块链提供的键值对操作API,实现相应的键值对的查询操作,如果区块链API调用失败,则返回错误信息,流程终止;如果区块链API调用成功,则向多版本并发控制模块返回查询到键值对信息;
多版本并发控制模块收到键值对信息之后,向表结构管理模块返回键值对信息;
表结构管理模块收到返回的键值对信息之后,把键值对信息组装成符合SQL标准的数据结构,把此数据结构返回给SQL接入模块,由SQL接入模块返回给客户端。
一种存储介质,其上存储有可供处理器执行的计算机程序,其特征在于:所述计算机程序被执行时实现所述基于区块链的数据索引方法的步骤。
一种基于区块链的数据索引设备,具有存储器和处理器,存储器上存储有可供处理器执行的计算机程序,其特征在于:所述计算机程序被执行时实现所述基于区块链的数据索引方法的步骤。
本发明的有益效果是:本发明直接在区块链上叠加SQL层完成对链上数据的索引,数据来源是区块链数据本身,利用区块链不可篡改的特性,保证数据的可信。本发明直接从区块链读取数据,无需使用区块链的智能合约功能,具有更高的SQL查询和写入性能。
附图说明
图1为实施例中数据索引系统的系统架构图。
图2为实施例中表操作流程图。
图3为实施例中写入操作流程图。
图4为实施例中查询操作流程图。
具体实施方式
本实施例为一种基于区块链的数据索引系统,具有SQL接入模块、SQL过滤模块、SQL解析模块、表结构管理模块、多版本并发管理模块和区块链接入模块。
本例中SQL接入模块提供SQL连接接口和鉴权服务,为客户端提供标准的SQL接口服务,使客户端可以通过既有协议,像查询关系型数据库一样,对区块链上的数据进行查询;对客户端连接的合法性进行甄别,只接受经过授权的客户端连接,拒绝为授权的客户端连接,同时,把已授权的客户端连接功能和访问频率限定在授权的范围之内。
本实施例中SQL过滤模块用于滤不符合SQL语法规范的SQL和滤除禁止的SQL语句,SQL语句具有一套严格的语法标准,如果传入的SQL语句不符合标准,即视为非法,直接滤除;鉴于区块链不可篡改的特性,整个系统可以通过配置项和多版本控制,实现禁止删除、禁止更新或者其他对数据库现有数据的删改操作,SQL过滤模块可以根据配置项,滤除被禁止直行的SQL语句。
本实施例中SQL解析模块用于把SQL语句对应转换为对应的一系列键值对读写操作:对SQL语句进行语法分析和词法分析,把复杂的SQL写入语句转换为对应的键值对写入操作,把复杂的SQL查询语句转换为对应的键值对读操作。
本例中表结构管理模块用于对逻辑表结构进行管理:对数据表名称、数据表内字段、每个字段的数据类型、每个字段的数据长度、索引信息等进行管理。
本例中多版本并发管理模块:用于通过版本链、数据快照等手段,实现多隔离级别下的并发事务机制。可以按照乐观并发控制或悲观并发控制的方法,实现读写之间的并行操作。
本实施例中区块链接入模块:用于与区块链接口对接,利用区块链提供的键值对操作API实现数据的查询和写入。
本实施例中基于区块链的数据索引系统的索引方法包括:
1、表操作:
SQL接入模块收到客户端发送的表操作类SQL语句之后,对SQL语句的连接进行鉴权,如果鉴权失败,返回错误信息,流程终止;如果鉴权成功,把SQL语句传入SQL过滤模块。
SQL过滤模块对SQL进行语法检查,如果语法检查不通过,返回语法错误信息,流程终止;如果语法检查通过,再对SQL语句进行词法检查,如果包含该系统不允许的表操作类语句,返回错误信息流程终止;如果词法检查通过,把SQL语句传入SQL解析模块;
SQL解析模块对SQL语句进行解析,按照既定规则,把SQL语句转换为对应的多条键值对操作和数据表元信息,并把键值对操作和数据表元信息传入表结构管理模块;
表结构管理模块检查数据表元信息,如果数据表元信息同现有数据表元信息相冲突,则返回错误信息,流程终止;如果数据表元信息无冲突,则把对应的键值对操作传入多版本并发控制模块;
多版本并发控制模块收到键值对操作之后,检查相应表空间是否处于阻塞状态,如果处于阻塞状态,则进入阻塞状态,直到阻塞解除;如果不处于阻塞状态,则阻塞相应表空间,并把键值对操作传入区块链接入模块;
区块链接入模块收到键值对操作之后,调用区块链提供的键值对操作API,实现相应的键值对操作,如果区块链API调用失败,则返回错误信息,流程终止;如果区块链API调用成功,则向多版本并发控制模块返回成功信息;
多版本并发控制模块收到成功信息之后,解除相应表空间的阻塞,并向表结构管理模块返回成功信息;
表结构管理模块收到成功信息之后,记录成功的数据表元信息。
2、写入操作:
SQL接入模块收到客户端发送的写入类SQL语句之后,对SQL语句的连接进行鉴权,如果鉴权失败,返回错误信息,流程终止;如果鉴权成功,把SQL语句传入SQL过滤模块;
SQL过滤模块对SQL进行语法检查,如果语法检查不通过,返回语法错误信息,流程终止;如果语法检查通过,再对SQL语句进行词法检查,如果包含系统不允许的写入类语句,返回错误信息流程终止;如果词法检查通过,把SQL语句传入SQL解析模块;
SQL解析模块对SQL语句进行解析,按照既定规则,把SQL语句转换为对应的多条键值对操作,并把键值对操作传入表结构管理模块;
表结构管理模块从键值对操作提取对应数据表元信息,如果数据表元信息不存在或与现有数据表不一致,则返回错误信息,流程终止;如果数据表元信息一致,则把对应的键值对操作传入多版本并发控制模块;
多版本并发控制模块收到键值对操作之后,检查相应表空间的键值是否处于阻塞状态,如果处于阻塞状态,则返回错误信息,流程终止;如果不处于阻塞状态,则阻塞相应表空间的键值,并把键值对操作传入区块链接入模块;
区块链接入模块收到键值对操作之后,调用区块链提供的键值对操作API,实现相应的键值对的写入操作,如果区块链API调用失败,则返回错误信息,流程终止;如果区块链API调用成功,则向多版本并发控制模块返回成功信息;
多版本并发控制模块收到成功信息之后,解除相应表空间键值对的阻塞,并向表结构管理模块返回成功信息。
3、查询操作:
SQL接入模块收到客户端发送的查询类SQL语句之后,对SQL语句的连接进行鉴权,如果鉴权失败,返回错误信息,流程终止;如果鉴权成功,把SQL语句传入SQL过滤模块;
SQL过滤模块对SQL进行语法检查,如果语法检查不通过,返回语法错误信息,流程终止;如果语法检查通过,再对SQL语句进行词法检查,如果包含系统不允许的查询类语句,返回错误信息流程终止;如果词法检查通过,把SQL语句传入SQL解析模块。
SQL解析模块对SQL语句进行解析,按照既定规则,把SQL语句转换为对应的多条键值对操作,并把键值对操作传入表结构管理模块;
表结构管理模块从键值对操作提取对应数据表元信息,如果数据表元信息不存在或与现有数据表不一致,则返回错误信息,流程终止;如果数据表元信息一致,则把对应的键值对操作传入多版本并发控制模块;
多版本并发控制模块收到键值对操作之后,直接把键值对操作发送到区块链接入模块;
区块链接入模块收到键值对操作之后,调用区块链提供的键值对操作API,实现相应的键值对的查询操作,如果区块链API调用失败,则返回错误信息,流程终止;如果区块链API调用成功,则向多版本并发控制模块返回查询到键值对信息;
多版本并发控制模块收到键值对信息之后,向表结构管理模块返回键值对信息;
表结构管理模块收到返回的键值对信息之后,把键值对信息组装成符合SQL标准的数据结构,把此数据结构返回给SQL接入模块,由SQL接入模块返回给客户端。
本实施例还一种存储介质,其上存储有可供处理器执行的计算机程序,该计算机程序被执行时实现本实施例中基于区块链的数据索引方法的步骤。
本实施例还一种基于区块链的数据索引设备,具有存储器和处理器,存储器上存储有可供处理器执行的计算机程序,该计算机程序被执行时实现本实施例中基于区块链的数据索引方法的步骤。
Claims (10)
1.一种基于区块链的数据索引方法,其特征在于,将用于对链上数据索引的SQL层叠加在区块链上,索引方法包括:
获取合法合规的表操作类SQL语句;
对SQL语句进行解析,将SQL语句转换为对应的多条键值对操作和数据表元信息;
检查数据表元信息,判断数据表元信息同现有数据表元信息是否相冲突;
如数据表元信息同现有数据表元信息无冲突,则基于键值对操作检查相应表空间是否处于阻塞状态,如处于阻塞状态,则进入阻塞状态;如不处于阻塞状态,则阻塞相应表空间;
根据键值对操作调用区块链提供的键值对操作API,实现相应的键值对操作。
2.一种基于区块链的数据索引方法,其特征在于,将用于对链上数据索引的SQL层叠加在区块链上,索引方法包括:
获取合法合规的写入类SQL语句;
对SQL语句进行解析,将SQL语句转换为对应的多条键值对操作;
从键值对操作提取对应数据表元信息,判断数据表元信息与现有数据表是否一致;
如数据表元信息与现有数据表一致,则根据键值对操作检查相应表空间的键值是否处于阻塞状态;
如相应表空间的键值不处于阻塞状态,则阻塞相应表空间的键值;
根据键值对操作调用区块链提供的键值对操作API,实现相应的键值对的写入操作。
3.一种基于区块链的数据索引方法,其特征在于,将用于对链上数据索引的SQL层叠加在区块链上,索引方法包括:
获取合法合规的查询类SQL语句;
对SQL语句进行解析,将SQL语句转换为对应的多条键值对操作;
从键值对操作提取对应数据表元信息,判断数据表元信息与现有数据表是否一致;
如数据表元信息与现有数据表一致,则根据键值对操作调用区块链提供的键值对操作API,实现相应的键值对的查询操作;
将查询到的键值对信息组装成符合SQL标准的数据结构,并把此数据结构返回给查询申请端。
4.根据权利要求1或2或3所述的基于区块链的数据索引方法,其特征在于,所述获取合法合规的SQL语句,包括:
获取客户端发送的SQL语句;
对SQL语句的连接进行鉴权;
如鉴权成功,对SQL语句进行语法检查;
如语法检查通过,对SQL语句进行词法检查;
如词法检查通过,得到合法合规的SQL语句。
5.一种基于区块链的数据索引系统,其特征在于,包括:
SQL接入模块,用于为客户端提供SQL接口服务和鉴权服务;
SQL过滤模块,用于滤除不符合SQL语法规范和该系统词法规范的SQL语句;
SQL解析模块,用于将SQL语句转换为对应的键值对操作;
表结构管理模块,用于对逻辑表结构进行管理;
多版本并发管理模块,用于实现多隔离级别下的并发事务机制;
区块链接入模块,用于与区块链接口对接,利用区块链提供的键值对操作API实现数据的查询和写入。
6.根据权利要求5所述的基于区块链的数据索引系统,其特征在于:
SQL接入模块收到客户端发送的表操作类SQL语句之后,对SQL语句的连接进行鉴权,如果鉴权失败,返回错误信息,流程终止;如果鉴权成功,把SQL语句传入SQL过滤模块。
SQL过滤模块对SQL进行语法检查,如果语法检查不通过,返回语法错误信息,流程终止;如果语法检查通过,再对SQL语句进行词法检查,如果包含该系统不允许的表操作类语句,返回错误信息流程终止;如果词法检查通过,把SQL语句传入SQL解析模块;
SQL解析模块对SQL语句进行解析,按照既定规则,把SQL语句转换为对应的多条键值对操作和数据表元信息,并把键值对操作和数据表元信息传入表结构管理模块;
表结构管理模块检查数据表元信息,如果数据表元信息同现有数据表元信息相冲突,则返回错误信息,流程终止;如果数据表元信息无冲突,则把对应的键值对操作传入多版本并发控制模块;
多版本并发控制模块收到键值对操作之后,检查相应表空间是否处于阻塞状态,如果处于阻塞状态,则进入阻塞状态,直到阻塞解除;如果不处于阻塞状态,则阻塞相应表空间,并把键值对操作传入区块链接入模块;
区块链接入模块收到键值对操作之后,调用区块链提供的键值对操作API,实现相应的键值对操作,如果区块链API调用失败,则返回错误信息,流程终止;如果区块链API调用成功,则向多版本并发控制模块返回成功信息;
多版本并发控制模块收到成功信息之后,解除相应表空间的阻塞,并向表结构管理模块返回成功信息;
表结构管理模块收到成功信息之后,记录成功的数据表元信息。
7.根据权利要求5所述的基于区块链的数据索引系统,其特征在于:
SQL接入模块收到客户端发送的写入类SQL语句之后,对SQL语句的连接进行鉴权,如果鉴权失败,返回错误信息,流程终止;如果鉴权成功,把SQL语句传入SQL过滤模块;
SQL过滤模块对SQL进行语法检查,如果语法检查不通过,返回语法错误信息,流程终止;如果语法检查通过,再对SQL语句进行词法检查,如果包含系统不允许的写入类语句,返回错误信息流程终止;如果词法检查通过,把SQL语句传入SQL解析模块;
SQL解析模块对SQL语句进行解析,按照既定规则,把SQL语句转换为对应的多条键值对操作,并把键值对操作传入表结构管理模块;
表结构管理模块从键值对操作提取对应数据表元信息,如果数据表元信息不存在或与现有数据表不一致,则返回错误信息,流程终止;如果数据表元信息一致,则把对应的键值对操作传入多版本并发控制模块;
多版本并发控制模块收到键值对操作之后,检查相应表空间的键值是否处于阻塞状态,如果处于阻塞状态,则返回错误信息,流程终止;如果不处于阻塞状态,则阻塞相应表空间的键值,并把键值对操作传入区块链接入模块;
区块链接入模块收到键值对操作之后,调用区块链提供的键值对操作API,实现相应的键值对的写入操作,如果区块链API调用失败,则返回错误信息,流程终止;如果区块链API调用成功,则向多版本并发控制模块返回成功信息;
多版本并发控制模块收到成功信息之后,解除相应表空间键值对的阻塞,并向表结构管理模块返回成功信息。
8.根据权利要求5所述的基于区块链的数据索引系统,其特征在于:
SQL接入模块收到客户端发送的查询类SQL语句之后,对SQL语句的连接进行鉴权,如果鉴权失败,返回错误信息,流程终止;如果鉴权成功,把SQL语句传入SQL过滤模块;
SQL过滤模块对SQL进行语法检查,如果语法检查不通过,返回语法错误信息,流程终止;如果语法检查通过,再对SQL语句进行词法检查,如果包含系统不允许的查询类语句,返回错误信息流程终止;如果词法检查通过,把SQL语句传入SQL解析模块。
SQL解析模块对SQL语句进行解析,按照既定规则,把SQL语句转换为对应的多条键值对操作,并把键值对操作传入表结构管理模块;
表结构管理模块从键值对操作提取对应数据表元信息,如果数据表元信息不存在或与现有数据表不一致,则返回错误信息,流程终止;如果数据表元信息一致,则把对应的键值对操作传入多版本并发控制模块;
多版本并发控制模块收到键值对操作之后,直接把键值对操作发送到区块链接入模块;
区块链接入模块收到键值对操作之后,调用区块链提供的键值对操作API,实现相应的键值对的查询操作,如果区块链API调用失败,则返回错误信息,流程终止;如果区块链API调用成功,则向多版本并发控制模块返回查询到键值对信息;
多版本并发控制模块收到键值对信息之后,向表结构管理模块返回键值对信息;
表结构管理模块收到返回的键值对信息之后,把键值对信息组装成符合SQL标准的数据结构,把此数据结构返回给SQL接入模块,由SQL接入模块返回给客户端。
9.一种存储介质,其上存储有可供处理器执行的计算机程序,其特征在于:所述计算机程序被执行时实现权利要求1~4任意一项所述基于区块链的数据索引方法的步骤。
10.一种基于区块链的数据索引设备,具有存储器和处理器,存储器上存储有可供处理器执行的计算机程序,其特征在于:所述计算机程序被执行时实现权利要求1~4任意一项所述基于区块链的数据索引方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011640256.0A CN112711592B (zh) | 2020-12-31 | 2020-12-31 | 基于区块链的数据索引方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011640256.0A CN112711592B (zh) | 2020-12-31 | 2020-12-31 | 基于区块链的数据索引方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112711592A true CN112711592A (zh) | 2021-04-27 |
CN112711592B CN112711592B (zh) | 2022-06-28 |
Family
ID=75548006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011640256.0A Active CN112711592B (zh) | 2020-12-31 | 2020-12-31 | 基于区块链的数据索引方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112711592B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170293530A1 (en) * | 2016-04-07 | 2017-10-12 | International Business Machines Corporation | Providing snapshot isolation to a database management system |
CN110209744A (zh) * | 2019-05-07 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 基于联盟链的关系型数据库及其操作方法和装置 |
CN110309196A (zh) * | 2019-05-22 | 2019-10-08 | 深圳壹账通智能科技有限公司 | 区块链数据存储和查询方法、装置、设备及存储介质 |
WO2020023079A1 (en) * | 2018-07-27 | 2020-01-30 | Oracle International Corporation | System and method for supporting sql-based rich queries in hyperledger fabric blockchains |
WO2020029844A1 (zh) * | 2018-08-08 | 2020-02-13 | 华为技术有限公司 | 一种区块链节点和交易方法 |
CN111680067A (zh) * | 2020-05-28 | 2020-09-18 | 中国工商银行股份有限公司 | 基于区块链的数据处理方法、装置及系统 |
-
2020
- 2020-12-31 CN CN202011640256.0A patent/CN112711592B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170293530A1 (en) * | 2016-04-07 | 2017-10-12 | International Business Machines Corporation | Providing snapshot isolation to a database management system |
WO2020023079A1 (en) * | 2018-07-27 | 2020-01-30 | Oracle International Corporation | System and method for supporting sql-based rich queries in hyperledger fabric blockchains |
WO2020029844A1 (zh) * | 2018-08-08 | 2020-02-13 | 华为技术有限公司 | 一种区块链节点和交易方法 |
CN110209744A (zh) * | 2019-05-07 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 基于联盟链的关系型数据库及其操作方法和装置 |
CN110309196A (zh) * | 2019-05-22 | 2019-10-08 | 深圳壹账通智能科技有限公司 | 区块链数据存储和查询方法、装置、设备及存储介质 |
CN111680067A (zh) * | 2020-05-28 | 2020-09-18 | 中国工商银行股份有限公司 | 基于区块链的数据处理方法、装置及系统 |
Non-Patent Citations (2)
Title |
---|
余涛等: "FabricSQL:区块链数据的关系查询", 《计算机工程与设计》 * |
刘晓平: "基于索引的SQL语句查询优化方法的研究", 《韶关学院学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112711592B (zh) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10754875B2 (en) | Copying data changes to a target database | |
US7366708B2 (en) | Mechanism to efficiently index structured data that provides hierarchical access in a relational database system | |
US6370530B1 (en) | Computer program product for functional compensation in a heterogeneous, distributed database environment | |
US8078582B2 (en) | Data change ordering in multi-log based replication | |
CN104657382B (zh) | 用于MySQL主从服务器数据一致性检测的方法和装置 | |
US8832038B2 (en) | Online recovery of user tables using flashback table | |
US7653665B1 (en) | Systems and methods for avoiding database anomalies when maintaining constraints and indexes in presence of snapshot isolation | |
US11314719B2 (en) | Method for implementing change data capture in database management system | |
US10866865B1 (en) | Storage system journal entry redaction | |
AU2002334721A1 (en) | An index structure to access hierarchical data in a relational database system | |
EP1446737B1 (en) | An efficient index structure to access hierarchical data in a relational database system | |
KR20200056357A (ko) | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 | |
CN103440265B (zh) | 基于MapReduce的MYSQL数据库的变化数据捕获方法 | |
CN116804994B (zh) | 数据同步方法、系统、装置、电子设备及存储介质 | |
US9396218B2 (en) | Database insert with deferred materialization | |
CN112231407A (zh) | PostgreSQL数据库的DDL同步方法、装置、设备和介质 | |
CN111241065B (zh) | 一种支持国产数据库的数据库适配开发与操作方法 | |
CN117112691A (zh) | 一种面向大数据的多存储引擎数据库的存储方法 | |
CN112131231A (zh) | 一种分布式数据库编目管理方法、系统、电子设备和可读存储介质 | |
CN112069254B (zh) | 一种基于Djangorestframework的日志记录方法及系统 | |
CN112711592B (zh) | 基于区块链的数据索引方法 | |
WO2023124242A1 (zh) | 事务执行方法、装置、设备和存储介质 | |
CN115658815A (zh) | 基于cdc实现的数据同步的方法 | |
US11599520B1 (en) | Consistency management using query restrictions in journal-based storage systems | |
CN117951120B (zh) | 一种CloudBeaver数据库管理系统集成到云平台的方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |