一种大数据存储与溯源系统
技术领域
本发明涉及大数据存储领域,更具体地说,涉及一种大数据存储与溯源系统。
背景技术
随着信息技术和云数据处理技术的发展,各种系统的数据量呈现爆发式增长,产生的数据类型千变万化。如何高效、安全地对这些数据进行使用以及分析,使这些杂乱的数据产生经济效益以及社会效益是大数据存储的最终目标。为了实现这个目标,如何对这些复杂多样的数据进行针对性的存储是一个热门的话题。
但是现有的大数据存储系统只是专注于如何快速地和最大容量地存储相关数据,在数据产生、存储、传输、使用、消亡过程中缺少全链路数据监控以及溯源手段,并未对大数据存储系统中的数据存储安全性进行有效的改进,在数据泄露、隐私保护层面的干预程度较差,已经达不到现阶段数据安全的要求。
发明内容
针对上述背景技术中存在的相关问题,本发明的目的在于提供一种大数据存储与溯源系统。
为解决上述问题,本发明采用如下的技术方案。
一种大数据存储与溯源系统,其特征在于:包括基础平台层、数据操作层、系统核心层以及系统接入层;
所述基础平台层包括文件系统与存储层,所述文件系统采用kernel bypass方式结合非阻塞式异步IO,所述存储层用于将数据切片、加密之后的切片文件存储至硬盘内;
所述数据操作层包括数据切片模块、数据加密模块与数据操作模块,所述数据切片模块用于在存储之前对数据进行切分,所述数据加密模块用于对切分后的数据即对同一文件的一个及一个以上的分片进行加密,加密数量与过程根据用户进行设定,所述数据操作模块用于用户对数据进行读取、修改、覆写等操作,同时这些操作记录会被记录;
所述系统核心层包括数据调度引擎与图引擎,所述数据调度引擎用于对切片之后的数据存储进行调度,存储到不同的分布式存储介质中,所述图引擎用于数据切片之后会求取其HASH值,并把该数据切片的HASH值,录入时间,加密方案录入数据库,在对数据进行操作过程中,数据发生变化会直接影响数据的HASH值,当监控到HASH值变化时,将变化后结果的HASH记录到数据库,完成数据溯源;
所述系统接入层包括管理界面与数据接口,所述管理界面用于管理员查看数据上传、使用状况以及平台运营状况,所述数据接口为开放的API,用于上传文件;
所述数据操作层、系统核心层以及系统接入层之间设置有授信访问机制,所述授信访问机制即只有授信的用户能够访问本系统,不同权限的用户在本系统中可操作数据方式不同。
作为上述技术方案的进一步描述:
所述授信访问机制的权限分为数据提供者以及数据使用者,数据提供者可以在本系统中上传文件,将文件授权给第三方使用者,使用者通过数据操作层完成对数据操作,但是操作过程是对他人保密的,操作结果以及操作记录是对数据提供者公开的。
作为上述技术方案的进一步描述:
所述授信访问机制用于验证数据上传者的身份,在本系统中,会对操作者使用的IP,硬件设备信息,用户权限(读、写操作权限)进行监控,还用于验证数据使用者身份,除了平台允许的人员登陆之外,对某一个特定数据文件进行访问需要获取文件提供者的授权。
作为上述技术方案的进一步描述:
所述存储层采用分布式存储策略,总共有N台用于数据存储的服务器,在数据切片加密之后计算其HASH值,根据不同的HASH值存储到不同的服务器上,同时配备N台服务器作为数据备份服务器,定时完成数据备份操作,其中N至少为1。
作为上述技术方案的进一步描述:
所述存储层包括有若干个文件块,所述文件块大小为4kb,数据切片模块用于对原始数据进行切片,其中每个切片大小为3.9kb,即一个大小为S(单位kb)的文件,最后可以分为个数据切片。
作为上述技术方案的进一步描述:
所述数据加密模块采用的加密方式是SM4算法,加密后的文件会比原始数据切片大,其中每个文件仍不大于4kb的阈值,数据切片的尺寸可适应性调整。
作为上述技术方案的进一步描述:
所述数据提供者以及数据使用者的使用方法如下:
数据提供者:在使用本系统上传文件的时候需要通过证书认证系统,携带CA认证信息,用于存储时可以确定上传者的个人信息以及数据来源,初始数据通过网络接口上传之后,首先是进行数据切片模块切片,由于加密方式可选,数据提供者可以选择不进行数据加密或者部分切片加密,切片之后计算每个切片的hash值,以及整个初始文件的hash值,之后会将这些hash值(作为查询索引)以及文件上传者,加密方式存储到关系型数据库中,同时在文件写入存储层的时候会将写入时间也一并录入数据库,在录入数据库时,原始数据的hash以及切片之后的hash是一对多的关系;
数据使用者:当授信的数据使用者需要对某个数据文件进行操作,首先从关系数据库中查询相关数据的hash值,然后从存储层取出所有相关的数据切片,按照加密方式以及访问者提供的私钥,进行数据解密以及重新组合操作,其中,若用户在操作时只读取数据内容,则文件系统层不会对此产生反应;但是在用户对数据进行了写入、删除以及修改操作时,文件系统会计算新的hash值,与上一次修改后的hash值联合,作为修改完成后的数据hash,在完成操作后重新切片存储。
作为上述技术方案的进一步描述:
所述数据操作模块的操作模式分为三种模式:
一、单文件模式,即从存储层获取文件A后,经过用户自定义的文件操作流程,仅生成了一个结果文件A1,那么我们认为在这种情况下文件A1为A的下游数据,A为A1的源数据,两者存在数据血缘;特殊情况为A1的hash值与A一致,则认为文件操作过程中未发生文件修改情况,不需要再重新保存A1,此时认为用户只是在文件操作中浏览了文件A;
二、拓展模式,即从存储层获取文件A后,经过用户自定义的文件操作流程,生成了两个(或多个)文件,其中A1的判断依据按照单文件模式;B为新生成的文件,B不存在源数据,在这种情况下,数据所有权依然归原始数据A提供者,用户要下载文件B仍需提出申请,例如源文件A是一个压缩文件,对文件进行操作时需要对文件先解压,解压过程中会生成新的文件并被本系统记录,形成新的数据链路;
三、多文件模式,即用户某些操作会使用到超过一个文件(文件组A),例如神经网络训练,需要数千数万个文件同时进行操作,生成若干模型文件(文件组B),新生成的文件组B与文件组A没有直接的血缘关系;自然,在数据操作中对文件组A中的源文件进行操作时依然遵循单文件模式与拓展模式所定义的规则。
作为上述技术方案的进一步描述:
所述图引擎包括文件增删改查的数据链路与用户文件操作的记录追溯。
相比于现有技术,本发明的优点在于:
本方案,优势在于授信访问机制、大数据加密存储实现了文件存储的安全可靠;作为第三方数据托管系统,降低了数据提供者以及数据使用者之间的不信任程度,提高数据有效转化能力,降低转化周期;数据使用者在本系统所有操作都记录在系统中,方便数据提供者进行监控;异常状态预警模块能够对异常的操作进行预警,及时反馈给系统管理人员以及数据提供方;数据切片之后加密比对原始文件加密效率高,同时支持用户自定义加密切片数量,加密方式,更为灵活,切片之后支持分布式存储,支持纠删码数据恢复。
附图说明
图1为本发明的原理示意图;
图2为本发明的数据处理层整体流程图;
图3为本发明的三种存储模式原理示意图;
图4为本发明图引擎修改的链路图;
图5为本发明图引擎操作记录的链路图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述;
请参阅图1~5,本发明中,一种大数据存储与溯源系统,包括基础平台层、数据操作层、系统核心层以及系统接入层;
基础平台层包括文件系统与存储层,文件系统采用kernel bypass方式结合非阻塞式异步IO,存储层用于将数据切片、加密之后的切片文件存储至硬盘内;
数据操作层包括数据切片模块、数据加密模块与数据操作模块,数据切片模块用于在存储之前对数据进行切分,数据加密模块用于对切分后的数据即对同一文件的一个及一个以上的分片进行加密,加密数量与过程根据用户进行设定,数据操作模块用于用户对数据进行读取、修改、覆写等操作,同时这些操作记录会被记录;
系统核心层包括数据调度引擎与图引擎,数据调度引擎用于对切片之后的数据存储进行调度,存储到不同的分布式存储介质中,图引擎用于数据切片之后会求取其HASH值,并把该数据切片的HASH值,录入时间,加密方案录入数据库,在对数据进行操作过程中,数据发生变化会直接影响数据的HASH值,当监控到HASH值变化时,将变化后结果的HASH记录到数据库,完成数据溯源;
系统接入层包括管理界面与数据接口,管理界面用于管理员查看数据上传、使用状况以及平台运营状况,数据接口为开放的API,用于上传文件;
数据操作层、系统核心层以及系统接入层之间设置有授信访问机制,授信访问机制即只有授信的用户能够访问本系统,不同权限的用户在本系统中可操作数据方式不同。
请参阅图1、2、4与5,其中:授信访问机制的权限分为数据提供者以及数据使用者,数据提供者可以在本系统中上传文件,将文件授权给第三方使用者,使用者通过数据操作层完成对数据操作,但是操作过程是对他人保密的,操作结果以及操作记录是对数据提供者公开的。
请参阅图1、2、4与5,其中:授信访问机制用于验证数据上传者的身份,在本系统中,会对操作者使用的IP,硬件设备信息,用户权限(读、写操作权限)进行监控,保障数据来源安全,杜绝不良数据,还用于验证数据使用者身份,除了平台允许的人员登陆之外,对某一个特定数据文件进行访问需要获取文件提供者的授权。
请参阅图2,其中:存储层采用分布式存储策略,总共有N台用于数据存储的服务器,在数据切片加密之后计算其HASH值,根据不同的HASH值存储到不同的服务器上,同时配备N台服务器作为数据备份服务器,定时完成数据备份操作,其中N至少为1。
请参阅图2,其中:存储层包括有若干个文件块,文件块大小为4kb,数据切片模块用于对原始数据进行切片,其中每个切片大小为3.9kb,即一个大小为S(单位kb)的文件,最后可以分为个数据切片。
请参阅图2,其中:数据加密是对数据切片进行加密的过程,本系统中默认采用的加密方式是SM4算法,加密后的文件会比原始数据切片大,但是能够保证每个文件仍不大于4kb的阈值,也就是在文件系统中还是保证在一个块中,不会造成大量冗余的块,导致存储效率降低,切片尺寸用户可自定义,原则上切片尺寸不宜过小。
请参阅图1~3,其中:数据提供者以及数据使用者的使用方法如下:
数据提供者:在使用本系统上传文件的时候需要通过证书认证系统,携带CA认证信息,用于存储时可以确定上传者的个人信息以及数据来源,初始数据通过网络接口上传之后,首先是进行数据切片模块切片,由于加密方式可选,数据提供者可以选择不进行数据加密或者部分切片加密,切片之后计算每个切片的hash值,以及整个初始文件的hash值,之后会将这些hash值(作为查询索引)以及文件上传者,加密方式存储到关系型数据库中,同时在文件写入存储层的时候会将写入时间也一并录入数据库,在录入数据库时,原始数据的hash以及切片之后的hash是一对多的关系,本系统中使用的关系型数据库可为MySQL。
数据使用者:当授信的数据使用者需要对某个数据文件进行操作,首先从关系数据库中查询相关数据的hash值,然后从存储层取出所有相关的数据切片,按照加密方式以及访问者提供的私钥,进行数据解密以及重新组合操作,其中,若用户在操作时只读取数据内容,则文件系统层不会对此产生反应;但是在用户对数据进行了写入、删除以及修改操作时,文件系统会计算新的hash值,与上一次修改后的hash值联合,作为修改完成后的数据hash,在完成操作后重新切片存储,这样做的作用是每次修改都是操作的上游数据备份,不会对原始数据产生影响;而由于每次修改都加入了上游的hash,其修改链路是可追溯的。
请参阅图1~3,其中:数据操作模块的操作模式分为三种模式:
一、单文件模式,即从存储层获取文件A后,经过用户自定义的文件操作流程,仅生成了一个结果文件A1,那么我们认为在这种情况下文件A1为A的下游数据,A为A1的源数据,两者存在数据血缘;特殊情况为A1的hash值与A一致,则认为文件操作过程中未发生文件修改情况,不需要再重新保存A1,此时认为用户只是在文件操作中浏览了文件A;
二、拓展模式,即从存储层获取文件A后,经过用户自定义的文件操作流程,生成了两个(或多个)文件,其中A1的判断依据按照单文件模式;B为新生成的文件,B不存在源数据,在这种情况下,数据所有权依然归原始数据A提供者,用户要下载文件B仍需提出申请,例如源文件A是一个压缩文件,对文件进行操作时需要对文件先解压,解压过程中会生成新的文件并被本系统记录,形成新的数据链路;
三、多文件模式,即用户某些操作会使用到超过一个文件(文件组A),例如神经网络训练,需要数千数万个文件同时进行操作,生成若干模型文件(文件组B),新生成的文件组B与文件组A没有直接的血缘关系;自然,在数据操作中对文件组A中的源文件进行操作时依然遵循单文件模式与拓展模式所定义的规则。
请参阅图4与图5,其中:图引擎包括文件增删改查的数据链路与用户文件操作的记录追溯。
文件增删改查的数据链路:结合上述中获取了数据所有的操作链路之后,可以使用图数据库完成数据链路展示,一般地,在每一次记录操作之后,都会在原始的图数据库中添加操作者信息、操作时间、操作过程;随着时间推移,会产生如图的操作链路,点击每个操作都可以看到详情,然后可以对该操作产生的数据文件进行新的操作,产生新的分支;
用户文件操作的记录追溯:按照拓展模式以及多文件模式的逻辑,新生成的文件无法确定其直接血缘关系,在这种情况下,通过对人员操作记录的追踪,完成数据链路,如图5用户在不同时间上用户产生了哪些文件,修改了哪些文件都展示在图中。若两个文件存在血缘关系(如8月20日C文件以及8月22日C文件),则会以虚线连接,代表两者关系,其他则是用户在操作中产生的无法确定直接血缘的数据。
本方案的优势在于授信访问机制、大数据加密存储实现了文件存储的安全可靠;作为第三方数据托管系统,降低了数据提供者以及数据使用者之间的不信任程度,提高数据有效转化能力,降低转化周期;数据使用者在本系统所有操作都记录在系统中,方便数据提供者进行监控;异常状态预警模块能够对异常的操作进行预警,及时反馈给系统管理人员以及数据提供方;数据切片之后加密比对原始文件加密效率高,同时支持用户自定义加密切片数量,加密方式,更为灵活,切片之后支持分布式存储,支持纠删码数据恢复。
以上所述,仅为本发明较佳的具体实施方式;但本发明的保护范围并不局限于此。任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其改进构思加以等同替换或改变,都应涵盖在本发明的保护范围内。