CN109766342A - 一种基于区块链的数据存储与查询方法 - Google Patents
一种基于区块链的数据存储与查询方法 Download PDFInfo
- Publication number
- CN109766342A CN109766342A CN201811622837.4A CN201811622837A CN109766342A CN 109766342 A CN109766342 A CN 109766342A CN 201811622837 A CN201811622837 A CN 201811622837A CN 109766342 A CN109766342 A CN 109766342A
- Authority
- CN
- China
- Prior art keywords
- data
- alias
- mapping table
- attribute
- name
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于区块链的数据存储与查询方法。本发明方法包括存储和数据查询;数据存储是对当前存在非动态写入的数据进行转化;从***支持的加密算法中随机抽取算法;对数据库表中的字段名称排序成列表,并加上表名称和库名称,然后按顺序给列表的属性名称加上别名,形成属性别名映射表;同时,根据传入的数据、字段名称在属性别名映射表中查询别名,然后形成别名数据映射表;新属性别名映射表,写入数据库,并返回主键;别名数据映射表和主键写入区块链,形成区块链数据;数据查询是把获取的别名数据映射表和属性别名映射表进行组合并且使用对应的算法进行解密,得到属性与数据的映射表,获得数据。本发明两层映射关系隐藏数据,基于区块链保证数据安全及共享。
Description
技术领域
本发明涉及数据存储及查询技术领域,具体涉及一种基于区块链的数据存储与查询方法。
背景技术
随着信息技术的快速发展,各种业务支撑***也不断的增加,使得信息***具有多样性。***与***之间的数据无法流动,形成数据孤岛。而在现实业务中,却需要***之间的数据流动来满足业务的需求。如果数据无法流动,则需要对各个业务***所需的数据进行复制,形成多份数据;此时,会导致源数据无法及时更新,造成数据的不同步,给业务的支撑带来新的问题。所以数据如果能够有唯一的数据源,是解决数据孤岛和数据不同步问题的最好方法。同时,区块链具有多份复制的特点,能够避免业务***在运行中数据库宕机的突发事件,使得业务***更加稳定可靠。区块链技术其本质就是开放的数据账本,可以将其理解为共享的数据库,所以数据的脱敏加密处理成为了关键。
发明内容
本发明解决的技术问题在于提供一种基于区块链的数据存储与查询方法,以解决现存业务***的数据孤岛问题和稳定性问题。
本发明解决上述技术问题的技术方案是:
所述的方法包括存储和数据查询;
所述的数据存储包括:
对当前存在非动态写入的数据进行转化;
从***支持的加密算法中随机抽取算法;
对数据库表中的字段名称排序成列表,并加上表名称和库名称,然后按顺序给列表的属性名称加上别名,形成属性别名映射表;同时,根据传入的数据、字段名称在属性别名映射表中查询别名,然后形成别名数据映射表;
如果生成了新的属性别名映射表,那么把此映射表写入数据库,并返回主键;如果不是新生成的,则无需理会;
用抽取的加密算法对生成的别名数据映射表的数据内容进行加密,和主键一起写入区块链,形成区块链数据;
所述的数据查询包括:读取数据库的数据,即字段属性别名映射表;读取区块链的数据,即别名数据映射表;把别名数据映射表和属性别名映射表进行组合并且使用对应的算法进行解密,得到属性与数据的映射表;根据数据的查询条件来决定数据是否保留,如果不满足查询条件的数据,则丢弃;如果满足查询条件,则保留数据在数据结果池。
所述的对当前存在非动态写入的数据进行转化是读取关系型数据库表信息,包括:连接关系型数据库,判断是否成功,读取数据库表字段属性,读取数据库表数据。
所述的抽取算法是:随机生成一个数字R,获取当前时间戳的后四位数据T;两者相加,得到的加和对算法的数量N求模加1,即[(R+T)%N]+1,得到的便是***里的第几号算法。
所述的属性别名映射表可以使用较长一段时间后更换,具体的时间根据业务的需求决定;通过***的配置可实现更换的时间。
所述的数据查询具体包括以下步骤:
在关系型数据库中查询含有指定库、表名称的属性别名映射表,并存储于缓存中;通过映射表获取到库和表的别名;
根据要查询的数据所标记的库名和表名按顺序遍历区块链的数据,把含有库表别名的数据取出来,形成数据查询池;
从数据查询池中获取一条数据,根据主键值,缓存中读取属性别名映射表,获取解密的算法;
根据解密的算法,对加密的数据进行解密,还原成明文的别名数据映射表;
把别名数据映射表、属性别名映射表进行映射的组合,得到属性数据映射表,再根据数据的查询条件来决定数据是否保留,如果不满足查询条件的数据,可以丢弃,如果满足查询条件,则保留数据在数据结果池。
所述的方法,可以在***启动的时候一次性把属性别名映射表加载到缓存中,也可以根据数据量的大小来进行选择性的加载;设定两个阈值A和B,B大于A;如果数据量小于A,则可全部加载;如果在A和B之间,则可以加载一半;如果大于B,则可以根据数据的访问频率来决定加载的数据。
本发明对数据库表中字段的读取并形成字段-别名,别名-数据的映射关系,并将字段-别名存储于数据库中,把别名-数据存储于区块链中。这样,通过两层的映射关系能够起到隐藏数据的目的,同时基于区块链数据冗余的特性,能够保证数据的安全及共享。结合数据库和区块链,能够保证数据的共享、安全,能够有效解决数据孤岛的问题。
附图说明
下面结合附图对本发明进一步说明:
图1是本发明数据存储流程示意图;
图2是本发明属性-别名映射列表示意图;
图3是本发明别名-数据映射列表示意图;
图4是本发明数据查询流程示意图。
具体实施方式
图1是数据存储流程示意图,为了解决当前数据库有业务数据的问题,设置了步骤S001,对当前存在的数据进行转化,如果是动态写入数据,则不需要经过此步骤。
对于S002,***设置随机抽取算法,对***支持的加密算法进行随机抽取。***的加密算法可以动态增加,以适应变化。抽取的算法如下:随机生成一个数字(R),获取当前时间戳的后四位数据(T),两者相加,得到的加和对算法的数量(N)求模加1,即((R+T)%N)+1,得到的便是第几号算法。
步骤S003,对数据库表中的字段名称排序成列表,并加上表名称和库名称,然后按顺序给列表的属性名称加上别名,其结构如图2所示,此属性别名映射表可以使用较长一段时间后再更换,具体的时间根据业务的需求来决定,通过***的配置可以实现更换的时间。同时,读取字段别名映射表,根据传入的数据,根据字段名称在字段别名映射表中查询别名,然后形成别名数据映射表,具体的结构如图3所示。
步骤S004,如果是生成了新的属性别名映射表,那么把此映射表写入数据库,并返回主键,如果不是新生成的,则无需理会;把生成的别名数据表和主键写入区块链,形成区块链数据。
本发明通过“属性-别名”和“别名-数据”两层映射可以起到对数据隐藏的作用。原数据库表是属性对数据的形式展现的。
姓名 | 性别 |
John | male |
Jack | male |
上表可以看做是两个映射,即每行数据一个映射:(姓名-John,性别-male),(姓名-Jack,性别-male)。在上述的属性-数据映射之间加入一个别名,达到对原属性意义进行隐藏,从而达到隐藏数据含义的目的:(姓名-A-John,性别-B-male),(姓名-D-Jack,性别-C-male)。第一层映射为:(姓名-A,性别-B),(姓名-D,性别-C),这部分存储在数据库;第二层映射为:(A-John,B-male),(D-Jack,C-male),这部分业务数据存储在区块链。由于没有赋予A,B,C,D具体的含义,例如:A是否是代表姓名还是地名,无从得知,从而达到隐藏数据的作用,特别是数字,如果是数字1,而没有单位或者特别的含义,则无从知道1是什么。
图4是数据查询流程示意图,通过对区块链和数据库的数据进行读取并合拼,形成有效的数据,具体的步骤如下。
步骤S005,在关系型数据库中查询含有指定库、表名称的属性别名映射表,并存储与缓存中。通过映射表获取到库和表的别名。上述的缓存机制可以减少数据库的读取次数,而存于数据库中的属性别名映射表的数据量并不大,因此,可以在***启动的时候一次性把映射表加载到缓存中。也可以根据数据量的大小来进行选择性的加载,如果数据量小于一万条,则可全部加载,如果在一万条到三万条之间,则可以加载一半,如果三万条以上,则可以根据数据的访问频率来决定加载的数据,即访问频率越高,则加载到缓存。
步骤S006,根据要查询的数据所标记的库名和表名按顺序遍历区块链的数据,把含有库表别名的数据取出来,形成数据查询池。
步骤S007,从数据查询池中获取一条数据,根据主键值,从步骤S005中的缓存中读取属性别名的映射表,获取解密的算法。
步骤S008,根据解密的算法,对加密的数据进行解密,还原成明文的别名数据映射表。
步骤S009,把别名数据映射表、属性别名映射表进行映射的组合,可以得到属性数据的映射表,再根据数据的查询条件来决定数据是否保留,如果不满足查询条件的数据,可以丢弃,如果满足查询条件,则保留数据在数据结果池。
Claims (6)
1.一种基于区块链的数据存储与查询方法,其特征在于:所述的方法包括存储和数据查询;
所述的数据存储包括:
对当前存在非动态写入的数据进行转化;
从***支持的加密算法中随机抽取算法;
对数据库表中的字段名称排序成列表,并加上表名称和库名称,然后按顺序给列表的属性名称加上别名,形成属性别名映射表;同时,根据传入的数据、字段名称在属性别名映射表中查询别名,然后形成别名数据映射表;
如果生成了新的属性别名映射表,那么把此映射表写入数据库,并返回主键;如果不是新生成的,则无需理会;
用抽取的加密算法对生成的别名数据映射表的数据内容进行加密,和主键一起写入区块链,形成区块链数据;
所述的数据查询包括:读取数据库的数据,即字段属性别名映射表;读取区块链的数据,即别名数据映射表;把别名数据映射表和属性别名映射表进行组合并且使用对应的算法进行解密,得到属性与数据的映射表;根据数据的查询条件来决定数据是否保留,如果不满足查询条件的数据,则丢弃;如果满足查询条件,则保留数据在数据结果池。
2.根据权利要求1所述的方法,其特征在于:
所述的对当前存在非动态写入的数据进行转化是读取关系型数据库表信息,包括:连接关系型数据库,判断是否成功,读取数据库表字段属性,读取数据库表数据。
3.根据权利要求1所述的方法,其特征在于:
所述的抽取算法是:随机生成一个数字R,获取当前时间戳的后四位数据T;两者相加,得到的加和对算法的数量N求模加1,即[(R+T)%N]+1,得到的便是***里的第几号算法。
4.根据权利要求1所述的方法,其特征在于:
所述的属性别名映射表可以使用较长一段时间后更换,具体的时间根据业务的需求决定;通过***的配置可实现更换的时间。
5.根据权利要求1所述的方法,其特征在于:
所述的数据查询具体包括以下步骤:
在关系型数据库中查询含有指定库、表名称的属性别名映射表,并存储于缓存中;通过映射表获取到库和表的别名;
根据要查询的数据所标记的库名和表名按顺序遍历区块链的数据,把含有库表别名的数据取出来,形成数据查询池;
从数据查询池中获取一条数据,根据主键值,缓存中读取属性别名映射表,获取解密的算法;
根据解密的算法,对加密的数据进行解密,还原成明文的别名数据映射表;
把别名数据映射表、属性别名映射表进行映射的组合,得到属性数据映射表,再根据数据的查询条件来决定数据是否保留,如果不满足查询条件的数据,可以丢弃,如果满足查询条件,则保留数据在数据结果池。
6.根据权利要求5所述的方法,其特征在于:
所述的方法,可以在***启动的时候一次性把属性别名映射表加载到缓存中,也可以根据数据量的大小来进行选择性的加载;设定两个阈值A和B,B大于A;如果数据量小于A,则可全部加载;如果在A和B之间,则可以加载一半;如果大于B,则可以根据数据的访问频率来决定加载的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811622837.4A CN109766342B (zh) | 2018-12-28 | 2018-12-28 | 一种基于区块链的数据存储与查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811622837.4A CN109766342B (zh) | 2018-12-28 | 2018-12-28 | 一种基于区块链的数据存储与查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109766342A true CN109766342A (zh) | 2019-05-17 |
CN109766342B CN109766342B (zh) | 2023-05-30 |
Family
ID=66451714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811622837.4A Active CN109766342B (zh) | 2018-12-28 | 2018-12-28 | 一种基于区块链的数据存储与查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766342B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245490A (zh) * | 2019-05-20 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 有条件的结合代码标注与类型维度的收据存储方法和节点 |
CN110471918A (zh) * | 2019-07-15 | 2019-11-19 | 深圳市中农网有限公司 | 一种关系型数据库同步到区块链的方法及装置 |
CN111475828A (zh) * | 2020-05-14 | 2020-07-31 | 杭州烽顺科技信息服务有限公司 | 区块链账本数据的加密方法及装置、解密方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104899225A (zh) * | 2014-03-07 | 2015-09-09 | 北京四达时代软件技术股份有限公司 | 对象关系映射方法、装置及处理器 |
US20170132630A1 (en) * | 2015-11-11 | 2017-05-11 | Bank Of America Corporation | Block chain alias for person-to-person payments |
CN107169371A (zh) * | 2017-04-27 | 2017-09-15 | 北京众享比特科技有限公司 | 一种基于区块链的数据库操作方法和*** |
CN107239479A (zh) * | 2017-03-28 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据存储以及查询的方法及装置 |
CN107426170A (zh) * | 2017-05-24 | 2017-12-01 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据处理方法及设备 |
WO2018135766A1 (ko) * | 2017-01-19 | 2018-07-26 | 주식회사 케이티 | 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법 |
US20180307857A1 (en) * | 2015-06-02 | 2018-10-25 | ALTR Solution, Inc. | Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data |
CN108768990A (zh) * | 2018-05-18 | 2018-11-06 | 浙江工商大学 | 一种基于区块链的可搜索加密方法 |
CN108932593A (zh) * | 2018-07-24 | 2018-12-04 | 华中师范大学 | 一种认知影响因素分析方法及装置 |
-
2018
- 2018-12-28 CN CN201811622837.4A patent/CN109766342B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104899225A (zh) * | 2014-03-07 | 2015-09-09 | 北京四达时代软件技术股份有限公司 | 对象关系映射方法、装置及处理器 |
US20180307857A1 (en) * | 2015-06-02 | 2018-10-25 | ALTR Solution, Inc. | Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data |
US20170132630A1 (en) * | 2015-11-11 | 2017-05-11 | Bank Of America Corporation | Block chain alias for person-to-person payments |
WO2018135766A1 (ko) * | 2017-01-19 | 2018-07-26 | 주식회사 케이티 | 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법 |
CN107239479A (zh) * | 2017-03-28 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据存储以及查询的方法及装置 |
CN107169371A (zh) * | 2017-04-27 | 2017-09-15 | 北京众享比特科技有限公司 | 一种基于区块链的数据库操作方法和*** |
CN107426170A (zh) * | 2017-05-24 | 2017-12-01 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据处理方法及设备 |
CN108768990A (zh) * | 2018-05-18 | 2018-11-06 | 浙江工商大学 | 一种基于区块链的可搜索加密方法 |
CN108932593A (zh) * | 2018-07-24 | 2018-12-04 | 华中师范大学 | 一种认知影响因素分析方法及装置 |
Non-Patent Citations (1)
Title |
---|
钱卫宁等: "区块链与分享型数据库", 《大数据》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245490A (zh) * | 2019-05-20 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 有条件的结合代码标注与类型维度的收据存储方法和节点 |
CN110471918A (zh) * | 2019-07-15 | 2019-11-19 | 深圳市中农网有限公司 | 一种关系型数据库同步到区块链的方法及装置 |
CN111475828A (zh) * | 2020-05-14 | 2020-07-31 | 杭州烽顺科技信息服务有限公司 | 区块链账本数据的加密方法及装置、解密方法及装置 |
CN111475828B (zh) * | 2020-05-14 | 2022-05-13 | 杭州烽顺科技信息服务有限公司 | 区块链账本数据的加密方法及装置、解密方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109766342B (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649827B2 (en) | Two level addressing in storage clusters | |
US8843454B2 (en) | Elimination of duplicate objects in storage clusters | |
US8533299B2 (en) | Locator table and client library for datacenters | |
CN109766341B (zh) | 一种建立哈希映射的方法、装置、存储介质 | |
CN109766342A (zh) | 一种基于区块链的数据存储与查询方法 | |
US8181061B2 (en) | Memory management and recovery for datacenters | |
TW501009B (en) | Data access method for asymmetric dual-slot address table and the associated exchange device | |
CN107436725A (zh) | 一种数据写、读方法、装置及分布式对象存储集群 | |
US11061788B2 (en) | Storage management method, electronic device, and computer program product | |
US20100185807A1 (en) | Data storage processing method, data searching method and devices thereof | |
CN107526743A (zh) | 用于压缩文件***元数据的方法和设备 | |
WO2001013232A3 (en) | Self-healing computer system storage | |
CN103488685B (zh) | 一种基于分布式存储***的碎片文件存储方法 | |
CN110222030B (zh) | 数据库动态扩容的方法、存储介质 | |
CN103577483B (zh) | 数据存储方法和***以及数据访问的方法和*** | |
CN107315745B (zh) | 一种私信存储方法及*** | |
CN110109873A (zh) | 一种用于消息队列的文件管理方法 | |
CN107102896A (zh) | 一种多级缓存的操作方法、装置及电子设备 | |
CN102122284B (zh) | 一种复合文档存储、读写方法和装置 | |
CN104079600B (zh) | 文件存储方法、装置、访问客户端及元数据服务器*** | |
CN107479834A (zh) | 一种基于cos的文件存储方法及装置 | |
CN105095352B (zh) | 应用于分布式***的数据处理方法及装置 | |
CN112463880A (zh) | 一种区块链数据存储方法及相关装置 | |
CN105677579A (zh) | 缓存***中的数据访问方法和*** | |
CN109582235A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |