一种用于大数据快速存储的方法及系统与流程

专利检索2025-04-13  27


本发明涉及大数据,更具体地说,本发明涉及一种用于大数据快速存储的方法及系统。


背景技术:

1、当前,应用设备智能互联、数字化转型、高性能存储和云计算等技术的发展加速了大数据相关技术的进步,而作为实现大数据价值的关键环节,数据存储与管理技术也日新月异,引领着大数据的变革。

2、目前,大数据存储涉及介质、数据结构、数据连接控制等关键技术,存储机制正由集中式向分布式、云存储等方向转变。为了实现数据的冗余备份和高可用性,大数据存储通常需要进行数据复制和冗余。这会占用更多的存储空间,并增加维护和管理的复杂性,此外大数据存储涉及大量的敏感数据,数据安全和隐私保护成为重要的问题。


技术实现思路

1、为了克服现有技术的上述缺陷,本发明的实施例提供一种用于大数据快速存储的方法及系统,通过存储优化技术,提高存储系统的性能和响应速度,以解决上述背景技术中提出的问题。

2、为实现上述目的,本发明提供如下技术方案,一种用于大数据快速存储的方法,具体包括以下步骤:

3、101、使用列式数据库存储数据,支持大规模数据处理,减少存储空间和成本;

4、102、通过并行处理和分布式存储,实现大数据的快速写入和读取;

5、103、将切分的数据块和副本分配给不同的存储节点,通过增加节点,实现系统的横向扩展;

6、104、采用存储优化技术,提高存储系统的性能和响应速度,减少存储空间占用;

7、105、根据实际需求为大数据建立索引结构,加快数据的访问速度,加速存储和查询操作;

8、106、在系统发生故障,采取措施使系统恢复到正常工作状态,减少故障对整个系统的影响。

9、在一个优选地实施方式中,所述步骤101中,在使用列式数据库之前,确定数据的结构、字段和关系,定义数据库中每个表的列和其数据类型,列式数据库会根据这些定义来存储和处理数据,具体包括以下内容:

10、s1、数据导入:使用数据导入工具将数据从不同的数据源导入数据库中,在列式数据库中,数据按列存储,每个表的每一列都会被分开存储,将同一列的数据值会连续存储在一起;

11、s2、数据压缩:通过哈夫曼编码对数据进行压缩,提高存储效率并降低存储成本,具体包括以下步骤:

12、步骤1、统计字符出现的频率:通过遍历数据集并记录每个字符的出现次数,统计原始数据中每个字符出现的频率,具体计算公式如下:

13、

14、其中,tf表示词频,n表示某个字符在文章中出现的次数,n表示文章的总词数;

15、步骤2、构建哈夫曼树:根据字符频率构建哈夫曼树,将所有字符作为叶子节点,并根据频率构建一个最小堆,反复执行以下步骤直至只剩下一个节点:

16、1)从队列中选择两个频率最低的节点,作为左右子节点创建一个新的父节点;

17、2)将父节点放回队列中,更新其频率为子节点频率之和;

18、步骤3、生成哈夫曼编码:通过遍历哈夫曼树,从根节点到每个叶子节点的路径上,左子树走0,右子树走1,生成对应的哈夫曼编码;

19、步骤4、压缩数据:使用生成的哈夫曼编码替换原始数据中的字符,将原始数据中的每个字符依次替换为对应的哈夫曼编码;

20、步骤5、储存编码表和压缩数据:将生成的哈夫曼编码表和压缩后的数据一同储存,方便后续解压缩操作使用;

21、s3、数据查询:使用sql查询语言,对列式数据库进行各种查询操作,具体包括以下步骤:

22、步骤1、聚合查询:通过对多个列进行聚合操作,返回查询结果;

23、步骤2、连接查询:根据关联条件进行内连接、外连接,以及交叉连接,将多个表中的数据连接起来,返回联合后的结果;

24、步骤3、子查询:在一个查询语句内部嵌套另一个查询语句,包括in子查询、exists子查询、标量子查询,用于处理复杂的条件和逻辑。

25、在一个优选地实施方式中,所述步骤102中,将待处理的数据划分成多个部分,使每个部分能够被独立地进行处理,通过将数据分发到不同的处理单元,进行并发处理,根据处理单元分配给不同的数据部分,并同时执行处理任务,具体包括以下内容:

26、s1、数据分片:通过哈希函数将待存储的数据分割成多个片段,每个片段都包含一部分数据,将数据片段分配给不同的存储节点,每个存储节点将负责存储和管理分配给它的数据片段,具体包括以下步骤:

27、步骤1、确定分片数目:选择md5哈希函数,将输入数据映射为一个固定长度的哈希值,根据需求确定要将数据分割成的片段数目;

28、步骤2、哈希分片:将数据使用md5哈希函数进行分片,将数据的哈希值与分片数目取余,得到对应的分片编号,不同的数据会被映射到不同的分片上;

29、步骤3、存储和检索:根据分片编号,将数据存储到对应的分片中,通过查询哈希值找到对应的分片,进行数据检索;

30、s2、数据传输:使用http协议将数据片段以并行方式传输到相应的存储节点上,具体包括以下步骤:

31、步骤1、并行请求:客户端通过同时发起多个http请求,利用多个连接和带宽,加快数据的传输速度,从不同的存储节点获取数据片段;

32、步骤2、分块传输:在http响应中,使用分块传输编码将响应数据分成多个块进行传输,客户端边接收边处理每个块,实现数据的并行传输和存储;

33、步骤3、cdn缓存:cdn是一种分布式的缓存系统,将数据缓存在位于全球各地的边缘节点上,当用户请求数据,cdn会根据用户的位置和网络状况,选择最近的边缘节点提供数据,减少延迟和提高传输速度。

34、在一个优选地实施方式中,所述步骤103中,将切分的数据块和副本分配给不同的存储节点,节点负责存储和管理分配数据块和副本,使用一致性哈希算法将数据块和副本放置在节点上,通过增加节点,将数据块分布在更多的节点上,实现系统的横向扩展,具体包括以下步骤:

35、步骤1、环形节点空间:一致性哈希算法将节点抽象为一个环形空间,每个节点在环上对应唯一的位置;

36、步骤2、数据哈希映射:将每个数据块通过哈希函数映射到环上的一个位置,每个数据块就有一个对应的位置;

37、步骤3、节点选择:根据数据块的位置选择对应的节点存储数据,选择该数据块所在位置顺时针方向最近的节点作为存储节点;

38、步骤4、副本放置:在环上选择离存储节点顺时针方向的下一个节点作为副本节点,将数据的副本存储在副本节点上,实现容错和高可用性。

39、步骤5、负载均衡:节点分布在环上,当增加和删除节点,只需调整受影响的部分数据块的存储位置,不会导致整体数据重新分布,实现负载均衡。

40、在一个优选地实施方式中,所述步骤104中,根据数据的访问特性将数据划分为多个分区,使用固态硬盘代替传统硬盘驱动器,将重要数据存储在高速存储介质上,采用数据去重技术减少存储空间占用,提高关键数据的响应速度,具体包括以下内容:

41、s1、数据分区和分层存储:根据数据的访问特性将数据划分为多个分区,将重要、频繁访问的数据存储在高速存储介质上,提高关键数据的响应速度,同时降低存储成本;

42、s2、数据去重:采用数据去重技术减少数据的存储空间,通过比较数据块的特征,识别出重复数据,在存储过程中保留一份副本,其他重复的数据块则只保留引用指针,减少存储空间的消耗,并提高存储系统的效率。

43、在一个优选地实施方式中,所述步骤105中,根据实际需求为大数据建立索引结构,通过将数据按照键值排序并存储在磁盘上,使得在查询时能够有效地进行二分查找,减少磁盘i/o操作,提高查询效率,具体包括以下内容:

44、s1、构建b树索引:b树索引是一种多叉平衡查找树,通过将数据按照键值排序并存储在磁盘上,使得在查询时能够有效地进行二分查找,减少磁盘i/o操作,具体包括以下步骤:

45、步骤1、创建一个空的b树,作为索引结构的根节点;

46、步骤2、逐个插入数据项到b树中,按照键的大小进行插入操作;

47、步骤3、插入过程中发现某节点中的键值个数已达到上限,进行节点的分裂操作,将节点分裂成两个节点,并将中间值提升到父节点中;

48、步骤4、不断重复步骤2和步骤3,直到所有数据项都被插入到b树中;

49、步骤5、最终得到一个平衡的b树,其中每个节点的键值按照大小有序排列。

50、s2、b树索引的查询:通过不断地比较和转向子节点,b树索引能够快速定位到存储目标数据的叶子节点,在叶子节点上,直接获取到对应的数据项,完成查询操作,具体包括以下步骤:

51、步骤1、从根节点开始,在节点中查找目标键值;

52、步骤2、目标键值等于节点中的某个键值,找到了对应的数据项,查询结束;

53、步骤3、目标键值小于节点中的最小键值,转向节点的左子节点,继续执行第1步;

54、步骤4、目标键值大于节点中的最大键值,转向节点的右子节点,继续执行第1步;

55、步骤5、重复执行2到4步骤,直到在某个叶子节点中找到目标键值。

56、在一个优选地实施方式中,所述步骤106中,在系统发生故障,采取措施使系统恢复到正常工作状态,在面对部分故障的情况下仍然能够保持功能正常和可用,提高系统的可靠性和可用性,减少故障对整个系统的影响,具体包括以下内容:

57、s1、故障恢复:在系统发生硬件故障、软件错误、网络中断情况,采取措施使系统恢复到正常工作状态,具体包括以下步骤:

58、步骤1、定位故障:利用监控及时发现故障,通过日志分析、错误排查方式,确定故障发生的位置和原因;

59、步骤2、恢复服务:采取纠正措施,修复故障的同时切换到备用系统,使系统能够继续提供服务;

60、步骤3、恢复数据一致性:进行数据恢复操作,确保数据的完整性;

61、s2、容错:在分布式系统中预防和处理故障,使系统能够在面对部分故障的情况下仍然能够保持功能正常和可用,提高系统的可靠性和可用性,减少故障对整个系统的影响,具体包括以下步骤:

62、步骤1、冗余备份:使用raid数据冗余技术,通过将数据分散存储在多个磁盘上,实现数据冗余和容错,利用raid 5奇偶校验信息将数据和校验码分布在三个磁盘,并将数据和校验码分别存储在不同的磁盘上,当其中一个磁盘发生故障,利用其余的数据和校验码进行数据恢复;

63、步骤2、容错算法:采用选举算法,确保系统在故障时能够正常工作,使用bully算法,用于处理节点发生故障的选举过程,每个节点有一个唯一的id,当一个节点发现当前的领导者节点失效,发送选举消息给比自身id更大的其他节点,这些节点回复确认消息,以及发起自己的选举,最终,id最大的节点成为新的领导者;

64、步骤3、容错测试:通过模拟故障和故障恢复的测试,验证系统的容错机制是否能够正常工作,使用故障注入工具来模拟各种故障情况,包括节点崩溃、网络中断、消息丢失,帮助评估系统在不同故障条件下的响应和恢复能力。

65、本发明的技术效果和优点:

66、本发明使用列式数据库存储数据,支持大规模数据处理,通过将数据分发到不同的处理单元,进行并发处理,将切分的数据块和副本分配给不同的存储节点,使用一致性哈希算法将数据块和副本放置在节点上,实现系统的横向扩展,根据数据的访问特性将数据划分为多个分区,使用固态硬盘代替传统硬盘驱动器,将重要数据存储在高速存储介质上,采用数据去重技术减少存储空间占用,提高关键数据的响应速度,根据实际需求为大数据建立索引结构,减少磁盘i/o操作,提高查询效率,在系统发生故障,采取措施使系统恢复到正常工作状态,减少故障对整个系统的影响。


技术特征:

1.一种用于大数据快速存储的方法,其特征在于:具体包括以下步骤:

2.根据权利要求1所述的一种用于大数据快速存储的方法,其特征在于:所述步骤101中,在使用列式数据库之前,确定数据的结构、字段和关系,定义数据库中每个表的列和其数据类型,列式数据库会根据这些定义来存储和处理数据,具体计算公式如下:

3.根据权利要求1所述的一种用于大数据快速存储的方法,其特征在于:所述步骤103中,将切分的数据块和副本分配给不同的存储节点,节点负责存储和管理分配数据块和副本,使用一致性哈希算法将数据块和副本放置在节点上,通过增加节点,将数据块分布在更多的节点上,实现系统的横向扩展。

4.根据权利要求1所述的一种用于大数据快速存储的方法,其特征在于:所述步骤104中,根据数据的访问特性将数据划分为多个分区,使用固态硬盘代替传统硬盘驱动器,将重要数据存储在高速存储介质上,采用数据去重技术减少存储空间占用,提高关键数据的响应速度。

5.根据权利要求1所述的一种用于大数据快速存储的方法,其特征在于:所述步骤105中,根据实际需求为大数据建立索引结构,通过将数据按照键值排序并存储在磁盘上,使得在查询时能够有效地进行二分查找,减少磁盘i/o操作,提高查询效率。

6.根据权利要求1所述的一种用于大数据快速存储的方法,其特征在于:所述步骤106中,在系统发生故障,采取措施使系统恢复到正常工作状态,在面对部分故障的情况下仍然能够保持功能正常和可用,提高系统的可靠性和可用性,减少故障对整个系统的影响。

7.一种用于大数据快速存储的系统应用于如权利要求1-7所述的一种用于大数据快速存储的方法,其特征在于:包括列式数据库模块、分布式存储模块、存储节点分配模块、存储优化模块、数据索引模块,以及故障恢复与容错模块;


技术总结
本发明公开了一种用于大数据快速存储的方法及系统,具体涉及大数据技术领域,使用列式数据库存储数据,支持大规模数据处理,通过将数据分发到不同的处理单元,进行并发处理,将切分的数据块和副本分配给不同的存储节点,使用一致性哈希算法将数据块和副本放置在节点上,实现系统的横向扩展,根据数据的访问特性将数据划分为多个分区,使用固态硬盘代替传统硬盘驱动器,将重要数据存储在高速存储介质上,采用数据去重技术减少存储空间占用,提高关键数据的响应速度,根据实际需求为大数据建立索引结构,减少磁盘I/O操作,提高查询效率,在系统发生故障,采取措施使系统恢复到正常工作状态,减少故障对整个系统的影响。

技术研发人员:孙晓康,何敏,王钰啸,汪慧,李小琼
受保护的技术使用者:合肥中鸿嘉睿信息科技有限公司
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1152379.html

最新回复(0)