数据流存储方法、装置以及计算机存储介质制造方法及图纸

技术编号:25708208 阅读:21 留言:0更新日期:2020-09-23 02:55
一种数据流存储方法、装置以及计算机存储介质,所述方法包括:获取数据流;确定数据流中的数据的关键字;根据数据的关键字将数据分配分区;对各个区内的数据进行存储。采用上述方案,可以避免出现由于处理不及时而导致数据丢失的情况,在数据存储出现故障时,易于根据数据的关键字定位数据的分区,进而对相应的数据进行恢复。

【技术实现步骤摘要】
数据流存储方法、装置以及计算机存储介质
本专利技术涉及数据处理领域,尤其涉及一种数据流存储方法、装置以及计算机存储介质。
技术介绍
在数据处理中,存在一种由持续大量产生的多组数据组成的数据流,所述数据流持续带来数据。如果不对数据流中的数据进行及时的处理或者存储,数据将会丢失。现有技术中,对上述数据流进行处理的方案是直接将数据流中的数据进行存储。然而,采用上述方案,当数据出现存储故障时,由于数据流的数据量过大,难以确定数据存储的位置,进而影响数据恢复。
技术实现思路
本专利技术解决的技术问题是数据恢复困难。为解决上述技术问题,本专利技术实施例提供一种数据流存储方法,包括:获取数据流;确定数据流中的数据的关键字;根据所述数据的关键字将数据分配分区;对各个分区内的数据进行存储。可选的,通过Kafka获取多条数据组成的数据流。可选的,使用Hash算法计算各条数据的关键字。可选的,根据预设的分区的数量,使用Hash取模算法,通过所述数据的关键字计算所述数据对应的分区序号。可选的,对各个分区内的数据进行序列化;存储序列化后的数据。可选的,对各个分区内的数据进行快照存储。本专利技术还提供一种数据流存储装置,包括:获取单元,用于获取数据流;确定单元,用于确定数据流中的数据的关键字;分配单元,用于根据所述数据的关键字将数据分配分区;存储单元,用于对各个分区内的数据进行存储。可选的,所述获取单元,还用于通过Kafka获取多条数据组成的数据流。可选的,所述确定单元,还用于使用Hash算法计算各条数据的关键字。可选的,所述分配单元,还用于根据预设的分区的数量,使用Hash取模算法,通过所述数据的关键字计算所述数据对应的分区序号。可选的,所述存储单元,还用于对各个分区内的数据进行序列化;存储序列化后的数据。可选的,所述存储单元,还用于对各个分区内的数据进行快照存储。本专利技术还提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,所述计算机指令运行时执行上述任一种的数据流存储方法的步骤。本专利技术还提供一种数据流存储装置,包括存储器和处理器,所述存储器上存储有计算机指令,所述计算机指令运行时所述处理器执行上述任一种的数据流存储方法的步骤。与现有技术相比,本专利技术实施例的技术方案具有以下有益效果:通过获取数据流;确定数据流中的数据的关键字;根据数据的关键字将数据分配分区;对各个区内的数据进行存储。采用上述方案,可以避免出现由于处理不及时而导致数据丢失的情况,在数据存储出现故障时,易于根据数据的关键字定位数据的分区,进而对相应的数据进行恢复。附图说明图1是本专利技术实施例提供的数据流存储方法的流程示意图;图2是本专利技术实施例提供的数据流存储装置的结构示意图。具体实施方式现有技术中,对数据流进行处理的方案是直接将数据流中的数据进行存储。然而,采用上述方案,当数据出现存储故障时,由于数据流的数据量过大,难以确定数据存储的位置,进而影响数据恢复。本专利技术实施例中,通过获取数据流;确定数据流中的数据的关键字;根据数据的关键字将数据分配分区;对各个区内的数据进行存储。采用上述方案,可以避免出现由于处理不及时而导致数据丢失的情况,在数据存储出现故障时,易于根据数据的关键字定位数据的分区,进而对相应的数据进行恢复。为使本专利技术的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本专利技术的具体实施例做详细的说明。参阅图1,其为本专利技术实施例提供的数据流存储方法的流程示意图,以下结合具体步骤进行详细说明。步骤S101,获取数据流。在具体实施中,当数据持续产生时,所产生的多条数据组成了数据流。通常情况下,数据流内的数据量较大。若实时对数据流内的数据进行分类、处理和分析,则对计算算力的负担较大。然而,如若不对数据流做任何处理,数据便会丢失。因此,在本专利技术实施例中,可以获取数据流并存储,避免数据流的丢失。本专利技术实施例中,可以通过Kafka获取多条数据组成的数据流。在具体实施中,Kafka是一种高吞吐量的分布式数据平台,可以用于处理各个数据源产生的所有数据。将Kafka作为用于获取数据流的平台,优势在于Kafka的数据吞吐量大,可以应对持续产生的大量数据,避免出现数据丢失或系统故障的情况。步骤S102,确定数据流中的数据的关键字。在具体实施中,可以将数据流中的数据的关键字作为该数据的标识,以用于将该数据与其他数据进行区分。确定数据流中的数据的关键字,可以提升数据查询过程中的效率,避免出现难以确定数据存储位置的情况。在具体实施中,数据的关键字可以是用于表现相应数据的特征的标识信息;也可以是通过与数据建立关联关系,进而实现区分作用的标识信息。在具体应用中,可以由用户根据实际应用场景进行相应的设定。本专利技术实施例中,可以使用Hash算法计算各条数据的关键字。在具体实施中,Hash算法可以用于将任意长度的数据压缩到某一固定长度的数据摘要,不同的数据对应的数据摘要是不同的。因此,通过Hash算法计算得到的数据摘要可以用于数据的快速识别,提升数据查询过程中的效率,避免出现难以确定数据存储位置的情况。步骤S103,根据所述数据的关键字将数据分配分区。在具体实施中,由于数据流的数据量通常十分庞大,因此可以将数据流中的数据分配于不同的分区,之后对不同分区的数据进行处理,从而可以有助于降低各个分区节点的数据处理压力,避免出现系统故障的情况。在具体实施中,可以将数据的关键字作为将数据分配于不同分区的标准。因此,在数据查询过程中,首先可以根据数据的关键字确定数据的分区,再进一步进行数据的查询,从而可以提升数据查询过程中的效率,避免出现难以确定数据存储位置的情况。在具体实施中,分区可以是软件层面的数据处理节点,也可以是硬件层面的数据处理器。本专利技术实施例中,根据预设的分区的数量,可以使用Hash取模算法,通过所述数据的关键字计算所述数据对应的分区序号。在具体实施中,Hash取摸算法可以用于根据数据的哈希值,即通过Hash算法计算得到的数据摘要,将数据与预设的分区建立映射关系,而其中分区在映射关系中的表现为分区序号,即数据的哈希值与分区序号建立映射关系。步骤S104,对各个分区内的数据进行存储。本专利技术实施例中,在对各个分区内的数据进行存储之前,可以对各个分区内的数据进行序列化。在具体实施中,序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。因此,对数据进行序列化后便于进行数据的存储。在具体实施中,在对数据进行序列化存储之后,在读取数据时,可以通过反序列化读取序列化后的数据。本专利技术实施例中,在对各个分区内的数据进行存储时,可以对各个分区内的数据进行快照(Snapshot)存储。在具体实施中,快照可以实现快速本文档来自技高网...

【技术保护点】
1.一种数据流存储方法,其特征在于,包括:/n获取数据流;/n确定数据流中的数据的关键字;/n根据所述数据的关键字将数据分配分区;/n对各个分区内的数据进行存储。/n

【技术特征摘要】
1.一种数据流存储方法,其特征在于,包括:
获取数据流;
确定数据流中的数据的关键字;
根据所述数据的关键字将数据分配分区;
对各个分区内的数据进行存储。


2.根据权利要求1所述的数据流存储方法,其特征在于,所述获取数据流,包括:
通过Kafka获取多条数据组成的数据流。


3.根据权利要求1所述的数据流存储方法,其特征在于,所述确定数据流中的数据的关键字,包括:
使用Hash算法计算各条数据的关键字。


4.根据权利要求3所述的数据流存储方法,其特征在于,所述根据所述数据的关键字将数据分配分区,包括:
根据预设的分区的数量,使用Hash取模算法,通过所述数据的关键字计算所述数据对应的分区序号。


5.根据权利要求1所述的数据流存储方法,其特征在于,所述对各个分区内的数据进行存储,包括:
对各个分区内的数据进行序列化;
存储序列化后的数据。


6.根据权利要求1所述的数据流存储方法,其特征在于,所述对各个分区内的数据进行存储,包括:
对各个分区内的数据进行快照存储。


7.一种数据流存储装置,其特征在于,包括:
获取单元,用于获取数据流;
确定单元,用于确定数据流中的数据的关键字;
分配单元,用于根据所述数据...

【专利技术属性】
技术研发人员:唐英荣
申请(专利权)人:上海晶赞融宣科技有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1