一种数据存储方法及装置制造方法及图纸

技术编号:14786456 阅读:43 留言:0更新日期:2017-03-11 01:31
本发明专利技术公开了一种数据存储方法及装置,属于网络数据分析技术领域。本发明专利技术的数据存储方法将抓取到的数据按照时间先后顺序暂存在缓存中,记录具有相同类型属性的数据在缓存中的位置,利用记录的内容将缓存中的数据按照属性类型排序后存储到硬盘中,即将具有相同类型属性的数据连续存储。该发明专利技术的数据存储方法能提高数据的读取效率,方便对网络数据进行分,具有很好的推广应用价值。

【技术实现步骤摘要】

本专利技术涉及网络数据分析
,具体提供一种数据存储方法及装置
技术介绍
在进行网络数据分析中,常常需要抓取网络中的数据并进行存储,以便后续对数据进行读取分析。目前,网络数据的存储方式是,将抓取到的数据按照抓取的先后顺序,依次存储在硬盘中。然而,该种存储方式不利于数据的读取,即读取利用该种方式存储的数据时效率较低,不利于网络数据的分析。
技术实现思路
本专利技术的技术任务是针对上述存在的问题,提供一种能提高数据的读取效率,方便对网络数据进行分析的数据存储方法。本专利技术的进一步的技术任务是提供一种能实现上述提高数据的读取效率,方便对网络数据进行分析的方法的数据存储装置。为实现上述目的,本专利技术提供了如下技术方案:一种数据存储方法及装置,将抓取到的数据按照时间先后顺序暂存在缓存中,记录具有相同类型属性的数据在缓存中的位置,利用记录的内容将缓存中的数据按照属性类型排序后存储到硬盘中,即将具有相同类型属性的数据连续存储,该数据存储方法的具体步骤为:S1:依据抓取数据的先后顺序,将抓取到的多条数据存储在第一缓存中,其中,各条所述数据具有N个相同类型的属性,N为大于1的整数;S2:依据所述多条数据在第一缓存中的位置,生成第一嵌套哈希表,其中,所述第一嵌套哈希表由N层第一哈希表嵌套组成,各层所述第一哈希表的键依次为所述N个相同类型的属性,且第一层至第N-1层所述第一哈希表的值依次为下一层的第一哈希表,第N层第一哈希表的值为各条所述数据在第一缓存中的地址值;S3:根据预设遍历顺序,依次获取所述第N层第一哈希表中的地址值;S4:根据获取各个所述地址值的顺序,依次将第一缓存中各个所述地址值对应的数据存储至硬盘。步骤S1中,当需要对网络数据进行分析时,可利用抓取工具,从网络中抓取数据,并依据抓取到的时间先后顺序,将数据存储到缓存中,其中可以在预设的时间段内,每当抓取工具抓取到一条网络数据,即将该网络数据存入到缓存中,或者,抓取工具在预设时间段内抓取到多条网络数据,然后,按照抓取顺序,将该多条数据存入到缓存中。网络数据具有属性,抓取的多条数据具有相同类型的属性。为了将步骤S1中的数据重新排序,需要记录具有相同类型属性的数据在缓存中的位置,本专利技术中采用哈希表的方式来记录。哈希表利用键值对存储数据,即哈希表中可以存储若干个哈希记录,每个哈希记录具有一个键及一个值,两者具有对应关系。本专利技术中生成的哈希表为嵌套的多层哈希表,嵌套的形式是,由内向外的第一层至第N-1层哈希表的值依次为下一层的哈希表。所述嵌套哈希表的层数与数据相同的属性类型的个数相等,即步骤S1中的N值与步骤S2中的N值相等。每层哈希表中的键是一种类型的属性,这样生成的嵌套哈希表利用每层哈希表中键记录相同类型属性的数据。每层哈希表中的哈希记录个数可以为一个,也可以为多个,每层中各个哈希记录的键为相同类型的属性,但是属性值并不相同。最内层即第N层哈希表的值为数据在缓存中的地址。生成第一嵌套哈希表的过程为:数据存储在缓存中,也就是说每条数据均对一个缓存中的地址。由于每条数据均具有N种类型的属性,根据数据自身每种类型属性的属性值,一层一层查找键内容与数据的属性值相同的哈希表记录,直至找到第N层哈希表的哈希记录,将该数据在缓存中的地址存储在查找到的该哈希记录的值中,如此反复即可生成第一嵌套哈希表。步骤S2生成的第一嵌套哈希表中包括多层哈希表,哈希表具有预设的遍历顺序,和数组遍历顺序相似,按照键的内容依次遍历。具体地,从第一层哈希表开始,当第一层的哈希表中的记录为多个时,则按照预设顺序,从第一个哈希记录开始。当该哈希记录的值为下一个哈希表时,则进入下一层哈希表中,从下一层哈希表的第一个记录开始判断,当该下一层哈希表中的哈希记录的值为下下一层哈希表时,进入该下下一层哈希表,判断该下下一层哈希表中的哈希记录的值,重复上述步骤,直至某层哈希表中的哈希记录的值为数据在缓存中的地址,此时,获取该缓存中的地址,这样获取到第N层中的第一个哈希记录的值。同理获取到第N层中其他哈希记录的值。遍历结束后,获取到的值为各个数据在缓存中的地址值,且地址值的获取顺序是按照数据的属性类型分类获取到的。步骤S4中将各个地址值中的数据依次存储至硬盘中,存储的顺序为获取到各个地址值的顺序。这样,将原来按照抓取先后顺序存储的数据,按照属性类型连续存储,此种存储方式将零散的数据按照属性类型聚合在一起,从而在读取时可以方便且快速的查找到具有相同属性类型的数据,数据读取效率高。步骤S3和步骤S4是可以交替执行的,即每当步骤S3获取到地址值,便依据该地址值,在缓存中查找到该地址值对应的数据,进而执行步骤S4将数据存储至硬盘。作为优选,步骤S4中,根据获取各个所述地址值的顺序,依次将第一缓存中各个所述地址值对应的数据存储至硬盘包括根据获取各个所述地址值的顺序,依次将所述第一缓存中各个所述地址值对应的数据存储至第二缓存中,将第二缓存中的数据依次存储至硬盘。作为优选,还包括生成并存储第二嵌套哈希表,其中,所述第二嵌套哈希表由N层第二哈希表嵌套组成,每层所述第二哈希表的键为三元组,且第一层至第N-1层所述第二哈希表的值依次为下一层的第二哈希表,第N层第二哈希表的值为各条所述数据在所述硬盘中的地址值。作为优选,所述每层三元组的第一元素依次为所述N个相同类型的属性,每层所述三元组的第二元素为各自层对应类型的属性包含的数据在所述硬盘中的起始地址,每层所述三元组的第三元素为各自层对应类型的属性包含的数据在所述硬盘中的数据长度。数据存储至硬盘后,依据所述第二嵌套哈希表,从所述硬盘中读取存储的数据。其中包括:1)当接收到数据读取指令时,提取所述数据读取指令中的属性类型及属性值;2)在所述第二嵌套哈希表中,确定与所述属性类型及属性值对应的目标三元组;3)依据所述目标三元组的第二元素及第三元素,从所述硬盘中读取存储的数据。一种数据存储装置,包括第一缓存存储单元、第一哈希表生成单元、缓存地址值获取单元和硬盘数据存储单元,所述第一缓存存储单元用于依据抓取数据的先后顺序,将抓取到的多条数据存储至第一缓存,其中,各条所述数据具有N个相同类型的属性;所述第一哈希表生成单元用于依据所述多条数据在第一缓存中的位置,生成第一嵌套哈希表,第一嵌套哈希表由N层第一哈希表嵌套组成;所述缓存地址值获取单元用于根据预设遍历顺序,依次获取所述第N层第一哈希表中的地址值;所述硬盘数据存储单元用于根据获取各个所述地址值的顺序,依次将所述第一缓存中各个所述地址值对应的数据存储至硬盘。所述各层第一哈希表的键依次为所述N个相同类型的属性,且第一层至第N-1层所述第一哈希表的值依次为下一层的第一哈希表,第N层第一哈希表的值为各条所述数据在所述第一缓存中的地址值。作为优选,所述硬盘数据存储单元包括第二缓存存储子单元和硬盘数据存储子单元,第二缓存存储子单元用于根据获取各个所述地址值的顺序,依次将所述第一缓存中各个所述地址值对应的数据存储至第二缓存中;所述硬盘数据存储子单元用于将所述第二缓存中的数据依次存储至硬盘。作为优选,还包括第二哈希表生成单元,用于生成并存储第二嵌套哈希表,其中,所述第二嵌套哈希表由N层第二哈希表嵌套组成。每层所述第二哈希表的键为三元组,且第一层至第N-1层所述第本文档来自技高网...
一种数据存储方法及装置

【技术保护点】
一种数据存储方法,其特征在于:将抓取到的数据按照时间先后顺序暂存在缓存中,记录具有相同类型属性的数据在缓存中的位置,利用记录的内容将缓存中的数据按照属性类型排序后存储到硬盘中,即将具有相同类型属性的数据连续存储,该数据存储方法的具体步骤为:S1:依据抓取数据的先后顺序,将抓取到的多条数据存储在第一缓存中,其中,各条所述数据具有N个相同类型的属性,N为大于1的整数;S2:依据所述多条数据在第一缓存中的位置,生成第一嵌套哈希表,其中,所述第一嵌套哈希表由N层第一哈希表嵌套组成,各层所述第一哈希表的键依次为所述N个相同类型的属性,且第一层至第N‑1层所述第一哈希表的值依次为下一层的第一哈希表,第N层第一哈希表的值为各条所述数据在第一缓存中的地址值;S3:根据预设遍历顺序,依次获取所述第N层第一哈希表中的地址值;S4:根据获取各个所述地址值的顺序,依次将第一缓存中各个所述地址值对应的数据存储至硬盘。

【技术特征摘要】
1.一种数据存储方法,其特征在于:将抓取到的数据按照时间先后顺序暂存在缓存中,记录具有相同类型属性的数据在缓存中的位置,利用记录的内容将缓存中的数据按照属性类型排序后存储到硬盘中,即将具有相同类型属性的数据连续存储,该数据存储方法的具体步骤为:S1:依据抓取数据的先后顺序,将抓取到的多条数据存储在第一缓存中,其中,各条所述数据具有N个相同类型的属性,N为大于1的整数;S2:依据所述多条数据在第一缓存中的位置,生成第一嵌套哈希表,其中,所述第一嵌套哈希表由N层第一哈希表嵌套组成,各层所述第一哈希表的键依次为所述N个相同类型的属性,且第一层至第N-1层所述第一哈希表的值依次为下一层的第一哈希表,第N层第一哈希表的值为各条所述数据在第一缓存中的地址值;S3:根据预设遍历顺序,依次获取所述第N层第一哈希表中的地址值;S4:根据获取各个所述地址值的顺序,依次将第一缓存中各个所述地址值对应的数据存储至硬盘。2.根据权利要求1所述的数据存储方法,其特征在于:步骤S4中,根据获取各个所述地址值的顺序,依次将第一缓存中各个所述地址值对应的数据存储至硬盘包括根据获取各个所述地址值的顺序,依次将所述第一缓存中各个所述地址值对应的数据存储至第二缓存中,将第二缓存中的数据依次存储至硬盘。3.根据权利要求2所述的数据存储方法,其特征在于:还包括生成并存储第二嵌套哈希表,其中,所述第二嵌套哈希表由N层第二哈希表嵌套组成,每层所述第二哈希表的键为三元组,且第一层至第N-1层所述第二哈希表的值依次为下一层的第二哈希表,第N层第...

【专利技术属性】
技术研发人员:陈思聪
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南;41

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

1