掌桥专利:专业的专利平台
掌桥专利
首页

一种大数据存储系统及方法

文献发布时间:2023-06-19 13:45:04


一种大数据存储系统及方法

技术领域

本发明涉及数据存储领域,具体涉及一种大数据存储系统及方法。

背景技术

随着业务的发展,存储的数据越来越多,时常出现需要对已有的数据存储结构增加新的存储数据项,出现该种情况时,就需要修改数据存储结构,并对已存储的数据进行刷新,往往需要暂停存储业务由相应的研发人员人工处理。但人工修改难免会发生失误,发生失误往往会延长修改工作的时间,影响正常业务的开展。

发明内容

因此,本发明实施例要解决的技术问题在于克服现有技术中在需要对已有的数据存储结构增加信息的存储数据项时需要暂停存储业务由人工处理、且人工处理容易出现失误导致处理时间变长影响存储业务的缺陷,从而提供一种大数据存储系统及方法。

为此,本发明实施例提供一种大数据存储系统,包括数据存储节点,所述数据存储节点包括:数据传输接口、开关控制模块、智能控制模块、数据校验模块和数据结构扩展模块;

所述数据传输接口,用于与外部系统对接,获取所述外部系统传输的数据;

所述开关控制模块,用于设置开关控制规则,所述开关控制规则包括是否需要严格按照数据存储结构对所述数据进行校验以及是否自动扩展数据存储结构;

所述智能控制模块,用于控制所述数据校验模块对所述数据进行校验;

所述数据结构扩展模块,用于在所述开关控制规则包括不需要严格按照数据存储结构对所述数据进行校验和自动扩展数据存储结构、且所述数据校验模块判断出所述数据的数据项超出了当前的数据存储结构的数据项范围的情况下,增加当前的所述数据存储结构的数据项。

可选的,所述系统还包括:用于存储数据的数据存储模块;

所述智能控制模块还用于控制所述数据存储模块,根据增加数据项后的所述数据存储结构调整历史存储数据的存储结构。

可选的,所述智能控制模块,还用于在所述数据存储模块中的历史存储数据已按照增加数据项后的所述数据存储结构调整完成之后,将所述数据写入所述数据存储模块;和/或,

所述智能控制模块,还用于在所述开关控制规则包括需要严格按照数据存储结构对所述数据进行校验、且所述数据校验模块判断出所述数据的数据结构与当前的所述数据存储结构不一致的情况下,输出反馈信息,所述反馈信息用于指示所述数据的数据结构与当前的所述数据存储结构之间的差异信息;和/或,

所述智能控制模块,还用于在所述开关控制规则包括需要严格按照数据存储结构对所述数据进行校验、且所述数据校验模块判断出所述数据的数据结构与当前的所述数据存储结构一致的情况下,将所述数据写入所述数据存储模块。

可选的,所述智能控制模块,还用于在所述开关控制规则包括不需要严格按照数据存储结构对所述数据进行校验、且所述数据校验模块判断出所述数据缺少当前的所述数据存储结构的数据项的情况下,为所述数据补充缺少的数据项及其对应的数据信息,并将补充后的所述数据写入用于存储数据的数据存储模块。

可选的,所述数据存储节点至少为两个,至少两个所述数据存储节点中的第一数据存储节点的智能控制模块,还用于在所述第一数据存储节点的数据结构扩展模块增加当前的所述数据存储结构的数据项的情况下,向第二数据存储节点发送通知信息,所述通知信息用于指示所述第二数据存储节点需要增加的数据项,所述第二数据存储节点为至少两个所述数据存储节点中除所述第一数据存储节点以外的其他数据存储节点;

至少两个所述数据存储节点作为区块链节点形成区块链网络,各所述数据存储节点上存储的数据能够互相同步。

另外,本发明实施例还提供一种大数据存储方法,应用于上述任一种大数据存储系统,所述方法包括以下步骤:

数据传输接口获取外部系统传输的数据;

智能控制模块控制数据校验模块根据开关控制模块设置的开关控制规则对所述数据进行校验,所述开关控制规则包括是否需要严格按照数据存储结构对所述数据进行校验以及是否自动扩展数据存储结构;

所述数据结构扩展模块在所述开关控制规则包括不需要严格按照数据存储结构对所述数据进行校验和自动扩展数据存储结构、且所述数据校验模块判断出所述数据的数据项超出了当前的数据存储结构的数据项范围的情况下,增加当前的所述数据存储结构的数据项。

可选的,所述大数据存储系统包括用于存储数据的数据存储模块;所述方法还包括:

所述智能控制模块控制控制所述数据存储模块,根据增加数据项后的所述数据存储结构调整历史存储数据的存储结构。

可选的,所述方法还包括:

所述智能控制模块在所述数据存储模块中的历史存储数据已按照增加数据项后的所述数据存储结构调整完成之后,将所述数据写入所述数据存储模块;和/或,

所述智能控制模块在所述开关控制规则包括需要严格按照数据存储结构对所述数据进行校验、且所述数据校验模块判断出所述数据的数据结构与当前的所述数据存储结构不一致的情况下,输出反馈信息,所述反馈信息用于指示所述数据的数据结构与当前的所述数据存储结构之间的差异信息;和/或,

所述智能控制模块在所述开关控制规则包括需要严格按照数据存储结构对所述数据进行校验、且所述数据校验模块判断出所述数据的数据结构与当前的所述数据存储结构一致的情况下,将所述数据写入所述数据存储模块。

可选的,所述方法还包括:

所述智能控制模块,还用于在所述开关控制规则包括不需要严格按照数据存储结构对所述数据进行校验、且所述数据校验模块判断出所述数据缺少当前的所述数据存储结构的数据项的情况下,为所述数据补充缺少的数据项及其对应的数据信息,并将补充后的所述数据写入用于存储数据的数据存储模块。

可选的,所述大数据存储系统中的数据存储节点至少为两个,至少两个所述数据存储节点作为区块链节点形成区块链网络,各所述数据存储节点上存储的数据能够互相同步;

所述方法还包括:至少两个所述数据存储节点中的第一数据存储节点的智能控制模块,在所述第一数据存储节点的数据结构扩展模块增加当前的所述数据存储结构的数据项的情况下,向第二数据存储节点发送通知信息,所述通知信息用于指示所述第二数据存储节点需要增加的数据项,所述第二数据存储节点为至少两个所述数据存储节点中除所述第一数据存储节点以外的其他数据存储节点。

本发明实施例的技术方案,具有如下优点:

1.本发明实施例中,在需要扩展数据存储结构时,不再需要由人工进行处理,而是由系统智能实现,降低了人力成本,还降低了人工失误带来的影响,减少了系统不可用时长,降低了数据存储系统维护成本。

2.本发明实施例中,还可自动为外部系统传入的数据补充缺少的数据项及其对应的数据信息,提高系统的容错性,减少了人工维护的工作量。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例1中大数据存储系统的一个具体示例的原理框图;

图2为本发明实施例2中大数据存储方法的一个具体示例的流程图;

图3为本发明实施例2中大数据存储方法的另一个具体示例的流程图;

图4为本发明实施例2中大数据存储方法的又一个具体示例的流程图。

具体实施方式

下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,本文所用的术语仅用于描述特定实施例的目的,而并非旨在限制本发明。除非上下文明确指出,否则如本文中所使用的单数形式“一”、“一个”和“该”等意图也包括复数形式。使用“包括”和/或“包含”等术语时,是意图说明存在该特征、整数、步骤、操作、元素和/或组件,而不排除一个或多个其他特征、整数、步骤、操作、元素、组件、和/或其他组合的存在或增加。术语“和/或”包括一个或多个相关列出项目的任何和所有组合。术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通;可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

实施例1

请参阅图1,本实施例提供一种大数据存储系统,包括数据存储节点10,所述数据存储节点10包括:数据传输接口101、开关控制模块102、智能控制模块103、数据校验模块104和数据结构扩展模块105;

所述数据传输接口101,用于与外部系统对接,获取所述外部系统传输的数据;

其中,所述数据传输接口101还可以用于对外部系统提供数据服务;所述数据可以是JS对象简谱(JavaScript Object Notation,简称JSON,是一种轻量级的数据交换格式)格式的数据,还可以是结构化数据或者扩展标记语言(eXteded Marku Laguage,简称XML,采用该语言的数据为一种半结构化格式数据)等其他半结构化数据。该数据可以是各种类型的数据,例如业务数据,本实施例中不做限制;

所述开关控制模块102,用于设置开关控制规则,所述开关控制规则包括是否需要严格按照数据存储结构对所述数据进行校验以及是否自动扩展数据存储结构;

所述智能控制模块103,用于控制所述数据校验模块104对所述数据进行校验;

所述数据结构扩展模块105,用于在所述开关控制规则包括不需要严格按照数据存储结构对所述数据进行校验和自动扩展数据存储结构、且所述数据校验模块104判断出所述数据的数据项超出了当前的数据存储结构的数据项范围的情况下,增加当前的所述数据存储结构的数据项。具体的,增加的数据项为所述数据的数据项中超出当前的所述数据存储结构的部分。

本实施例中,所述数据校验模块104可以用于数据结构校验、数据项完整性校验等。

本实施例在需要扩展数据存储结构时,不再需要由人工进行处理,而是由系统智能实现,降低了人力成本,还降低了人工失误带来的影响,减少了系统不可用时长,降低了数据存储系统维护成本。

可选的,所述系统,还包括:用于存储数据的数据存储模块;

所述智能控制模块103还用于控制所述数据存储模块,根据增加数据项后的所述数据存储结构调整历史存储数据的存储结构。即对历史存储数据进行刷新。

本实施例中,所述数据存储模块用于存储数据。所述数据具体可以是存在数据存储模块的存储数据表中的,所述数据结构扩展模块105不仅可以为已有的存储数据表增加存储数据项,还可以创建新的存储数据表。

其中一种可选的实施方式中,在需要为当前的数据存储结构增加数据项时,所述数据结构扩展模块105可以创建新的存储数据表,该新的数据存储表用于存储增加的数据项,系统自动对该新的数据存储表中与历史存储数据对应的部分进行填充,例如填充为0。这种通过创建新的存储数据表来存储增加的数据项的方式,可以不需要变动历史存储数据所在的数据存储表,降低历史数据存储结构更新的工作量。本实施例的数据存储模块中包括多个用于映射不同数据项的哈希槽(所述数据中包括数据项信息和数据信息),所述哈希槽通过哈希函数将数据项信息映射到对应的数据信息,以保证数据项信息和数据信息之间的对应关系。

进一步的,本实施例中,并不是每次需要为当前的数据存储结构增加数据项时,所述数据结构扩展模块105都会创建一个新的存储数据表,而是先判断所有已有的存储数据表中的负载量,如果已有的存储数据表中的负载量大于或等于预设阈值,则创建新的存储数据表。

另外,本实施例中的数据存储模块为至少两个,每个所述数据存储模块中存储的数据相同,换句话说,存储的数据有至少两个副本,各个数据副本分别存储于不同的数据存储模块中。至少两个数据存储模块中有一个为主数据存储模块,其他为从数据存储模块,系统在向外提供数据服务时,优先从主数据存储模块中读取数据,在主数据存储模块出现故障时,才从从数据存储模块中读取数据。

或者,所述数据存储模块中包括至少两个存储块,所述数据存储模块中存储的数据有至少两个副本,分别存储于不同的存储块中。本实施例通过多副本存储数据能够提升数据存储的可靠性,即使其中一个副本的数据丢失或损坏也不影响其他副本的数据。至少两个存储块中有一个为主存储块,其他为从存储块,系统在向外提供数据服务时,优先从主存储块中读取数据,在主存储块出现故障时,才从从存储块中读取数据。

可选的,所述智能控制模块103,还用于在所述数据存储模块中的历史存储数据已按照增加数据项后的所述数据存储结构调整完成之后,将所述数据写入所述数据存储模块;具体的,可以在所述智能控制模块103中增加临时存储数据表或存储文件,用于保存所述数据传输接口101获取到的所述数据,待完成对应的数据存储结构扩充和历史数据刷新后,再将临时存储的数据导入数据存储模块;

和/或,

所述智能控制模块103,还用于在所述开关控制规则包括需要严格按照数据存储结构对所述数据进行校验、且所述数据校验模块104判断出所述数据的数据结构与当前的所述数据存储结构不一致的情况下,输出反馈信息,所述反馈信息用于指示所述数据的数据结构与当前的所述数据存储结构之间的差异信息;其中,所述数据的数据结构与当前的所述数据存储结构不一致的情况包括以下至少之一:1、所述数据的数据结构的数据项比当前的数据存储结构中的数据项多(除了多出来的数据项,其他的数据项相同),2、所述数据的数据结构的数据项比当前的数据存储结构中的数据项少(除了少掉的数据项,其他的数据项相同),所述数据的数据结构中有数据项与当前的数据存储结构中的数据项不同;

和/或,

所述智能控制模块103,还用于在所述开关控制规则包括需要严格按照数据存储结构对所述数据进行校验、且所述数据校验模块104判断出所述数据的数据结构与当前的所述数据存储结构一致的情况下,将所述数据写入所述数据存储模块。

可选的,所述智能控制模块103,还用于在所述开关控制规则包括不需要严格按照数据存储结构对所述数据进行校验、且所述数据校验模块104判断出所述数据缺少当前的所述数据存储结构的数据项的情况下,为所述数据补充缺少的数据项及其对应的数据信息,并将补充后的所述数据写入用于存储数据的数据存储模块。

本实施例中,系统还可自动为外部系统传入的数据补充缺少的数据项及其对应的数据信息,提高系统的容错性,减少了人工维护的工作量。

可选的,所述数据存储节点10至少为两个,至少两个所述数据存储节点10中的第一数据存储节点的智能控制模块103,还用于在所述第一数据存储节点的数据结构扩展模块105增加当前的所述数据存储结构的数据项的情况下,向第二数据存储节点发送通知信息,所述通知信息用于指示所述第二数据存储节点需要增加的数据项,所述第二数据存储节点为至少两个所述数据存储节点10中除所述第一数据存储节点以外的其他数据存储节点;

至少两个所述数据存储节点10作为区块链节点形成区块链网络,各所述数据存储节点10上存储的数据能够互相同步。

实施例2

请参阅图2,本实施例提供一种大数据存储方法,应用于上述实施例1所述的任一种大数据存储系统,所述方法包括以下步骤:

S1:数据传输接口获取外部系统传输的数据;

S2:智能控制模块控制数据校验模块根据开关控制模块设置的开关控制规则对所述数据进行校验,所述开关控制规则包括是否需要严格按照数据存储结构对所述数据进行校验以及是否自动扩展数据存储结构;

S3:所述数据结构扩展模块在所述开关控制规则包括不需要严格按照数据存储结构对所述数据进行校验和自动扩展数据存储结构、且所述数据校验模块判断出所述数据的数据项超出了当前的数据存储结构的数据项范围的情况下,增加当前的所述数据存储结构的数据项。

本实施例在需要扩展数据存储结构时,不再需要由人工进行处理,而是由系统智能实现,降低了人力成本,还降低了人工失误带来的影响,减少了系统不可用时长,降低了数据存储系统维护成本。

可选的,本实施例中,在智能控制模块控制数据校验模块根据开关控制模块设置的开关控制规则对所述数据进行校验之前,还包括:

所述智能控制模块对所述数据传输接口从外部系统获取到的数据进行预处理,所述预处理包括:

对所述数据进行数据隐藏外壳摘脱处理,对经过所述数据隐藏外壳摘脱处理后的数据进行滤波处理,具体可以是卡尔曼滤波处理,对进行滤波处理后的数据进行数据空间降维处理。

目前为了保护数据不被非法读取或被非法修改,有很多数据都包括隐藏外壳,本实施例中为了降低存储成本、提高存储效率之类的原因需要对包括隐藏外壳的数据进行隐藏外壳摘脱处理获取数据本身。另外,为进一步降低存储成本、提高存储效率,本实施例还对数据进行滤波处理,去除数据中的错误信息。而且,目前很多场景(例如互联网场景)下的数据类型越来越多,结构也越来越复杂,为了便于数据存储和后续对数据的查找与利用,本实施例还对待存储的数据进行降维处理。

可选的,所述大数据存储系统包括用于存储数据的数据存储模块;所述方法还包括:

所述智能控制模块控制控制所述数据存储模块,根据增加数据项后的所述数据存储结构调整历史存储数据的存储结构。

可选的,所述方法还包括:

所述智能控制模块在所述数据存储模块中的历史存储数据已按照增加数据项后的所述数据存储结构调整完成之后,将所述数据写入所述数据存储模块;和/或,

所述智能控制模块在所述开关控制规则包括需要严格按照数据存储结构对所述数据进行校验、且所述数据校验模块判断出所述数据的数据结构与当前的所述数据存储结构不一致的情况下,输出反馈信息,所述反馈信息用于指示所述数据的数据结构与当前的所述数据存储结构之间的差异信息;和/或,

所述智能控制模块在所述开关控制规则包括需要严格按照数据存储结构对所述数据进行校验、且所述数据校验模块判断出所述数据的数据结构与当前的所述数据存储结构一致的情况下,将所述数据写入所述数据存储模块。

可选的,所述方法还包括:

所述智能控制模块,还用于在所述开关控制规则包括不需要严格按照数据存储结构对所述数据进行校验、且所述数据校验模块判断出所述数据缺少当前的所述数据存储结构的数据项的情况下,为所述数据补充缺少的数据项及其对应的数据信息(或称为数据值),并将补充后的所述数据写入用于存储数据的数据存储模块。

可选的,所述大数据存储系统中的数据存储节点至少为两个,至少两个所述数据存储节点作为区块链节点形成区块链网络,各所述数据存储节点上存储的数据能够互相同步;

请参阅图3,所述方法还包括:

S4:至少两个所述数据存储节点中的第一数据存储节点的智能控制模块,在所述第一数据存储节点的数据结构扩展模块增加当前的所述数据存储结构的数据项的情况下,向第二数据存储节点发送通知信息,所述通知信息用于指示所述第二数据存储节点需要增加的数据项,所述第二数据存储节点为至少两个所述数据存储节点中除所述第一数据存储节点以外的其他数据存储节点。

可选的,所述方法还包括:所述智能控制模块在将所述数据写入所述数据存储模块之前,根据所述数据生成与所述数据对应的校验值。生成校验值的具体过程可以为:分别计算所述数据中每个数据项对应的数据信息向上取整后的最大公约数,然后计算得到的每个数据项对应的最大公约数的平均值,判断所述平均值的位数是否大于或等于预设值,若不大于预设值,则在所述平均值前面进行补零处理,从该平均值中或补零后的平均值中选取预设位置的数值作为所述校验值,该预设位置包括位数大于所述预设值和/或包括位数等于所述预设值对应的位置。

若第一数据存储节点的智能控制模块在根据所述数据生成与所述数据对应的校验值之后再将所述数据写入所述数据存储模块,第二数据存储节点在获取第一数据存储节点同步的该数据后,按照上述相同的方式生成校验值,如果第二数据存储节点生成的校验值与第一数据存储节点生成的校验值相同,则所述第二数据存储节点认为该数据在同步过程中未被篡改,将该数据存入其数据存储模块。

另外,本实施例为了降低数据校验模块在比对所述数据的数据项和当前的数据存储结构的数据项时所花费的时间,可预先统计当前的数据存储结构的各数据项的名称的第一字数和所述数据的各数据项的名称的第二字数,然后判断第二字数中是否存在第一字数所没有的字数,如果存在则认为所述数据的数据项和当前的数据存储结构的数据项不一致。如果只需要确定所述数据的数据项和当前的数据存储结构的数据项不一致即可,那么流程到此为止。如果第二字数中不存在第一字数所没有的字数,或者,虽然存在,但需要进一步判断不一致的具体情况,那么按照数据项名称的字数对所述数据的数据项进行分组,得到多个第一分组,并按照数据项名称的字数对当前的数据存储结构的数据项进行分组,得到多个第二分组。对字数相同的第一分组和第二分组里的数据项的名称进行比对,得到比对结果。在对字数相同的第一分组和第二分组里的数据项的名称进行比对时,可以先对数据项名称的第一个字进行比对,如果不同则无需继续比对,如果相同则继续比对第二个字,如果第二个字依然相同则继续比对第三个字,否则无需继续比对……。换句话说,在对字数相同的第一分组和第二分组里的数据项的名称进行比对时,按照数据项名称中各字的顺序逐个比对,如果相同则继续比对下一个字直到名称中的最后一个字,否则结束比对。

请参阅图4,下面举例说明本实施例提供的大数据存储方法。

S401:启动大数据存储任务后,系统(例如具体可以是数据校验模块104)解析从外部系统传输的JSON数据的数据结构。

S402:系统(例如具体可以是智能控制模块103)获取所述开关控制模块102设置的开关控制规则和当前的数据存储结构;

S403:系统(例如具体可以是数据校验模块104)自动对比JSON数据的数据结构与当前的数据存储结构的差异。

S404:所述开关控制模块102设置的开关控制规则是否是严格按照数据存储结构对所述数据进行校验,如果是进入S405,否则进入S407。

S405:系统(例如可以是数据校验模块104)判断JSON数据的数据结构是否与当前的数据存储结构一致,如果一致进入S411,否则进入S406。

S406:系统(例如可以是数据校验模块104)将JSON数据的数据结构与当前的数据存储结构不一致的具体情况进行反馈,流程结束。

S407:系统(例如可以是数据校验模块104)判断JSON数据的数据结构中的数据项是否超出了当前的数据存储结构的数据项范围,如果是则进入S408,否则进入S409。

S408:系统(例如具体可以是数据结构扩展模块105)自动对当前的数据存储结构进行修改,增加相应的数据项,系统(具体可以是智能控制模块103控制所述数据存储模块)对历史存储数据自动刷新。

S409:系统(例如具体可以是数据结构扩展模块105)判断JSON数据的数据结构中的数据项是否比当前的数据存储结构少数据项,如果是则进入S410,否则进入S411。

S410:系统(例如具体可以是智能控制模块103)自动为传输数据补充缺少的数据项及其对应的数据信息,进入S411。

S411:系统(例如具体可以是智能控制模块103)将JSON数据写入数据存储模块,流程结束。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

技术分类

06120113792791