CN105117402B - 日志数据分片方法及装置 - Google Patents
日志数据分片方法及装置 Download PDFInfo
- Publication number
- CN105117402B CN105117402B CN201510420017.7A CN201510420017A CN105117402B CN 105117402 B CN105117402 B CN 105117402B CN 201510420017 A CN201510420017 A CN 201510420017A CN 105117402 B CN105117402 B CN 105117402B
- Authority
- CN
- China
- Prior art keywords
- daily record
- record data
- storage unit
- segmentation
- cryptographic hash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000011218 segmentation Effects 0.000 claims abstract description 90
- 238000013507 mapping Methods 0.000 claims abstract description 31
- 238000005070 sampling Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 8
- 230000000875 corresponding effect Effects 0.000 description 40
- 230000006870 function Effects 0.000 description 22
- 230000003139 buffering effect Effects 0.000 description 15
- 239000012634 fragment Substances 0.000 description 13
- 241001269238 Data Species 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000007418 data mining Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种日志数据分片方法及装置。本发明基于分段保序哈希的日志数据分片方法包括:将日志数据的多个属性字段的值域分别划分成N个分段;N为大于1的整数;按照所述N个分段的顺序建立每个所述属性字段对应的所述N个分段与哈希值的映射关系;所述哈希值为连续排列的整数,所述哈希值的排列顺序与所述N个分段的顺序一致;将每个所述哈希值对应的日志数据划分到一个存储单元中。本发明通过哈希函数的保序性,保证了相邻的日志数据被划分到相邻的存储单元,以便支持范围查询能够快速寻找到相关数据。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种基于分段保序哈希的日志数据分片方法及装置。
背景技术
日志数据记录了各类实体发生交互的历史信息,比如用户对商品的购买行为、用户和好友的互动历史、用户的轨迹信息等。基于大量的日志数据,可以进行数据挖掘和机器学习,以便发现其中的规律和特点。在数据挖掘和机器学习时,针对大量的日志数据需要通过数据查询提取数据。这里数据查询主要是指范围查询,比如查询一段时间内某些实体之间的交互信息,以及某个地理范围内的实体之间的交互信息等。然而,为了数据查询更准确和高效,如何针对大量的日志数据进行分片存储显得尤为重要。
现有的基于哈希的日志数据分片方法,是把日志数据根据哈希函数映射到对应的目标地址空间里,从而实现日志数据分片存储,分片之后相邻的日志数据不一定映射到相邻的目标地址空间里,因此分片之后的日志数据只支持点查询,即查询时一次只能提取单条的日志数据,而不支持范围查询,比如一次提取某段时间内的日志数据;因此,利用现有的日志数据分片方法分片后的日志数据,在数据查询时效率较低。
发明内容
本发明提供一种基于分段保序哈希的日志数据分片方法及装置,能够解决现有技术中对日志数据分片后数据查询效率较低的问题。
第一方面,本发明提供一种基于分段保序哈希的日志数据分片方法,包括:
将日志数据的多个属性字段的值域分别划分成N个分段;N为大于1的整数;
按照所述N个分段的顺序建立每个所述属性字段对应的所述N个分段与哈希值的映射关系;所述哈希值为连续排列的整数,所述哈希值的排列顺序与所述N个分段的顺序一致;
将每个所述哈希值对应的日志数据划分到一个存储单元中。
可选地,所述将日志数据的多个属性字段的值域分别划分成N个分段,包括:
获取采样的日志数据,根据所述采样的日志数据在所述多个属性字段的值域上分别建立等深直方图;
根据所述等深直方图将所述值域划分为所述N个分段。
可选地,所述将每个所述哈希值对应的日志数据划分到一个存储单元中,包括:
分别从每个所述属性字段中选择一个所述分段对应的哈希值生成向量,将所述向量作为单元编号;
将所述单元编号对应的日志数据划分到一个所述存储单元中;所述存储单元与所述单元编号一一对应。
可选地,所述将所述单元编号对应的日志数据划分到一个所述存储单元中之后,还包括:
若所述存储单元的存储空间存满之后,记录所述存储单元的元信息,并将所述存储单元中的日志数据写入数据文件中;其中,所述元信息包括:所述各个属性字段的哈希值、所述存储单元存满的次数、所述各个属性字段的值域在所述存储单元的最大值和最小值以及位置信息。
可选地,还包括:
将多个所述存储单元中的日志数据写入同一数据文件,所述数据文件的文件头中包括:所述存储单元的单元编号与所述存储单元中的日志数据在所述数据文件内偏移量的对应关系。
可选地,还包括:
记录所述各个属性字段的映射关系、所述映射关系的启用时间和终止时间、所述存储单元的元信息和数据文件的集合。
第二方面,本发明提供一种基于分段保序哈希的日志数据分片装置,包括:
划分模块,用于将日志数据的多个属性字段的值域分别划分成N个分段;N为大于1的整数;
映射模块,用于按照所述N个分段的顺序建立每个所述属性字段对应的所述N个分段与哈希值的映射关系;所述哈希值为连续排列的整数,所述哈希值的排列顺序与所述N个分段的顺序一致;
所述划分模块,还用于将每个所述哈希值对应的日志数据划分到一个存储单元中。
可选地,所述划分模块,具体用于:
获取采样的日志数据,根据所述采样的日志数据在所述多个属性字段的值域上分别建立等深直方图;
根据所述等深直方图将所述值域划分为所述N个分段。
可选地,所述划分模块,还具体用于:
分别从每个所述属性字段中选择一个所述分段对应的哈希值生成向量,将所述向量作为单元编号;
将所述单元编号对应的日志数据划分到一个所述存储单元中;所述存储单元与所述单元编号一一对应。
可选地,还包括:
处理模块,用于若所述存储单元的存储空间存满之后,记录所述存储单元的元信息,并将所述存储单元中的日志数据写入数据文件中;其中,所述元信息包括:所述各个属性字段的哈希值、所述存储单元存满的次数、所述各个属性字段的值域在所述存储单元的最大值和最小值以及位置信息。
本发明提供的基于分段保序哈希的日志数据分片方法及装置,通过将日志数据的多个属性字段的值域分别划分成N个分段;按照所述N个分段的顺序建立每个所述属性字段对应的所述N个分段与哈希值的映射关系;所述哈希值为连续排列的整数,所述哈希值的排列顺序与所述N个分段的顺序一致;将每个所述哈希值对应的日志数据划分到一个存储单元中,由于建立映射关系时哈希值是按照分段的顺序依次排列的,因此建立的映射关系为分段保序的哈希函数,通过哈希函数的保序性,保证了相邻的日志数据被划分到相邻的目标存储空间,以便支持范围查询能够快速寻找到相关数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明基于分段保序哈希的日志数据分片方法一实施例的流程图;
图2为本发明方法一实施例的映射关系示意图;
图3为本发明方法一实施例的等深直方图的示意图;
图4为本发明基于分段保序哈希的日志数据分片装置一实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明基于分段保序哈希的日志数据分片方法一实施例的流程图。图2为本发明方法一实施例的映射关系示意图。如图1所示,本实施例的方法包括:
步骤101、将日志数据的多个属性字段的值域分别划分成N个分段;N为大于1的整数;
步骤102、按照所述N个分段的顺序建立每个所述属性字段对应的所述N个分段与哈希值的映射关系;所述哈希值为连续排列的整数,所述哈希值的排列顺序与所述N个分段的顺序一致;
步骤103、将每个所述哈希值对应的日志数据划分到一个存储单元中。
具体来说,将日志数据的多个属性字段的值域分别划分成N个分段,N个分段可以是等分的,也可以是不等分的,多个属性字段例如是时间戳字段、地理位置信息字段(包括X坐标字段、Y坐标字段)等作为范围查询的属性字段,每个所述分段都对应一个哈希值,即每个分段按照顺序对应从0到N-1的哈希值,顺序越靠前的分段映射的哈希值越小,N个分段与哈希值的映射关系就作为哈希函数,由于映射之后的哈希值为按序的,因此该哈希函数是分段保序的哈希函数,如图2所示,将时间戳字段的值域分成N个分段,每个分段的宽度为1小时。例如,把每个所述属性字段中第一个分段的所有日志数据(也就是每个所述属性字段的值落在第一个分段内的日志数据)都映射到哈希值1对应的哈希桶里,第二个分段的所有日志数据都映射到哈希值2对应的哈希桶里等,即将每个所述哈希值对应的日志数据划分到一个存储单元中。
所谓保序的哈希函数,指属性字段的数据的原值为x和y,如果x<=y,则Hash(x)<=Hash(y),其中,Hash()为哈希函数。保序的哈希函数能支持范围查询,即如果查询条件为a>=x and a<=y(a为范围查询的属性字段的值),那么可以根据x和y的具体值,计算其哈希值,从而迅速找到相关的日志数据。
上述对日志数据进行分片的哈希函数,把属于一个分片的日志数据映射到相同的存储单元中(该存储单元对应一个单元编号)。针对每个范围查询的属性字段(比如时间戳字段、地理位置信息字段),各个分段的边界直接作为分段哈希函数的边界,分段的最大宽度采用比范围查询更小的尺度。如果范围查询的典型条件是几百米范围,那么地理位置信息字段的分段的边界应该确定为更小的尺度,比如10米。
把日志数据的属性字段中的实体标识(Identity,简称ID)字段、时间戳字段、以及其它作为范围查询条件的字段(比如X坐标位置,和Y坐标位置)等,全部进行哈希操作。对于日志数据的属性字段中的实体标识(Identity,简称ID)字段,使用一般的哈希函数进行映射即可。但是对于作为范围查询条件的属性字段,必须采用保序哈希函数进行映射计算其哈希值。
本实施例提供的基于分段保序哈希的日志数据分片方法,通过将日志数据的多个属性字段的值域分别划分成N个分段;按照所述N个分段的顺序建立每个所述属性字段对应的所述N个分段与哈希值的映射关系;所述哈希值为连续排列的整数,所述哈希值的排列顺序与所述N个分段的顺序一致;将每个所述哈希值对应的日志数据划分到一个存储单元中,由于建立映射关系时哈希值是按照分段的顺序依次排列的,因此建立的映射关系为分段保序的哈希函数,通过哈希函数的保序性,保证了相邻的日志数据被划分到相邻的目标存储空间,以便支持范围查询能够快速寻找到相关数据。
在图1所示的实施方式的基础上,进一步的,在实际应用中,将每个所述哈希值对应的日志数据划分到一个存储单元中的方式可以有多种,可选的,作为一种可实施的方式,分别从每个所述属性字段中选择一个所述分段对应的哈希值生成向量,将所述向量作为单元编号;
将所述单元编号对应的日志数据划分划分到一个所述存储单元中;所述存储单元与所述单元编号一一对应。
具体来说,分别从每个所述属性字段中选择一个所述分段对应的哈希值生成一个多维向量,如将时间戳字段的第一个分段对应的哈希值1、X坐标字段的第一个分段对应的哈希值1、Y坐标字段的第一个分段对应的哈希值1组成一个多维向量(1,1,1),该多维向量作为一个单元编号;将所述单元编号对应的日志数据划分到一个所述存储单元中,即将在该时间分段内,且X坐标位置、Y坐标位置都在该字段的分段范围内的所有日志数据存储在相应的存储单元中,也就是把每个所述属性字段的值落在第一个分段内的日志数据存储在相应的存储单元中。
在上述实施方式的基础上,进一步的,所述将所述单元编号对应的日志数据划分到一个所述存储单元中之后,还包括:
若所述存储单元的存储空间存满之后,记录所述存储单元的元信息,并将所述存储单元中的日志数据写入数据文件中;其中,所述元信息包括:所述各个属性字段的哈希值、所述存储单元存满的次数、所述各个属性字段的值域在所述存储单元的最大值和最小值以及位置信息。
具体来说,对日志数据进行分片存储时,可以先利用缓冲区进行日志数据缓存,将缓冲区作为存储单元,一个单元编号对应一个缓冲区。
这些缓冲区存满的时候,记录元信息,并且把缓冲区中的日志数据写入数据文件。元信息形如<实体ID Hash,X坐标Hash,Y坐标Hash,时间戳Hash,Full Counter,X min,Xmax,Y min,Y max,TS min,TS max,缓冲区的数据位置信息>,这些元信息的属性分别是实体ID的哈希值、X坐标的哈希值、Y坐标的哈希值、时间戳字段的Hash值、缓冲区填满的次数、各个范围查询字段的最小值和最大值以及该缓冲区的日志数据存放的位置信息(即存放在哪个数据文件中的具***置)。文件***中可以存储元信息记录表,用于数据查询。
图3为本发明方法一实施例的等深直方图的示意图。
在上述实施方式的基础上,进一步的,由于日志数据分布可能会不均匀,为了避免某些分段的日志数据较多,从而只有少数几个单元缓冲区快速地被写满,频繁处理,因此按照日志数据的分布将所述日志数据的多个属性字段的值域分别划分成N个分段。
所述将所述日志数据的多个属性字段的值域分别划分成非均匀的N个分段,具体包括:
获取采样的日志数据,根据所述采样的日志数据在所述多个属性字段的值域上分别建立等深直方图;
根据所述等深直方图将所述值域划分为所述N个分段。
具体来说,如图3所示,由于日志数据首先在内存的缓冲区里面堆积,等到某个缓冲区存满的时候,才需要写入文件***的数据文件中。因此希望每个缓冲区的数据量尽可能的均匀,这些缓冲区一个一个地写满,并被写入文件***中,而不是只有少数几个缓冲区快速地被写满,频繁处理。
针对日志数据分布不均匀的状况,采用非均匀的属性字段的值域分段划分方法。为了支持非均匀的分段划分,在日志数据正式分片存储之前,可以采样一部分数据,用于确定分段如何划分。对采样的日志数据,建立一个等深直方图,直方图的桶的数量为N,这些直方图每个桶的日志数据的数量是一样的,图3中纵坐标的频率指的就是日志数据的数量。
利用等深直方图的桶的边界,构造分段保序哈希函数,把顺序靠前的直方图桶内的日志数据映射到低序号的哈希桶,而其后的各个直方图桶内的记录依次映射到各个更高序号的哈希桶,每个等深直方图的桶的边界划分出的值域段就对应一个分段。如图2所示,等深直方图桶的数量为N,则把第一个直方图桶的所有日志数据(也就是属性字段的值落在该桶内的日志数据)都映射到哈希值1(即第一个哈希桶),第二个直方图桶的所有日志数据都映射到哈希值2(即第二个哈希桶)等。根据等深直方图桶的边界,建立的哈希函数是一个分段保序的哈希函数,也就是一个直方图桶内的日志数据都映射到一个哈希值,低序号的直方图桶的日志数据的哈希值,小于高序号的直方图桶的日志数据的哈希值。
上述具体实施方式中,通过分段的非均匀划分,避免了由于某些分段的日志数据较多,从而只有少数几个缓冲区快速地被写满,频繁处理的问题。
在前述实施方式的基础上,进一步的,在实际应用中,将所述存储单元中的日志数据写入数据文件中的方式可以有多种,可选的,作为一种可实施的方式,可以将多个所述存储单元中的日志数据写入同一数据文件,所述数据文件的文件头中包括:所述存储单元的单元编号与所述存储单元中的日志数据在所述数据文件内偏移量的对应关系。
具体来说,多个存储单元可以写入同一数据文件也可以写入不同的数据文件中;写入同一数据文件中时,为了快速定位数据文件中的某个存储单元的日志数据,必须在文件头记录所述存储单元的单元编号与该存储单元的日志数据在该数据文件内偏移量的对应关系,以便查询时能够快速定位某个存储单元的日志数据。
由于在对日志数据进行分片时,已经针对范围查询字段比如时间戳字段、坐标字段比如x坐标、y坐标等上,进行了分段保序哈希操作。当查询涉及这些字段的时候,比如范围查询仅仅涉及时间戳字段,查询条件具有如下形式,“[时间常量1]<=时间and时间<=[时间常量2]”,查询处理过程描述如下:
首先,对照分段保序哈希的每个哈希桶的边界(即每个分段的边界),寻找[时间常量1]和[时间常量2]所在的哈希桶,分别是Bucketi和Bucketj。
由于哈希函数为保序的,因此对于Bucketi+1到Bucketj-1等哈希桶对应的单元缓冲区,其数据一定落在[时间常量1]和[时间常量2]之间,其数据都是(即100%)相关数据。将时间戳字段落在Bucketi+1的下界和Bucketj-1的上界的所有元信息记录提取出来,这些元信息对应的数据文件,就是完全相关的数据文件。
对于Bucketi和Bucketj两个桶对应的存储单元,仅部分包含相关数据。我们分别对其进行如下操作,提取其对应的时间戳字段上的哈希值,利用这个哈希值查询***元信息记录表,提取所有时间戳哈希值为该哈希值的所有记录,其对应的数据文件,仅部分包含相关数据。提取数据文件后,采用二分查找等方法,将该数据文件的非相关数据过滤掉,即可获得相关数据。至此,所有的相关数据提取完成。
查询元信息记录表的原理如下:比如元信息记录表中的时间戳哈希字段是TS_Hash,上述边界确定以后,提取元信息记录表里,TS_Hash处在这些边界之间的记录,即可寻找到其映射的数据文件的信息。比如,在一个仅包含一个用户ID、一个时间戳字段、X和Y坐标字段的日志数据中,如果TS_Hashmin和TS_Hashmax的值分别为3和5,那么下表1中第2-7行,将被确定为包含查询相关数据的哈希值。
表1
在实际应用中,可选的,作为一种可实施的方式,所述方法还包括:记录所述各个属性字段的映射关系、所述映射关系的启用时间和终止时间、所述存储单元的元信息和数据文件的集合。
具体来说,在日志数据不断分片的过程中,我们不断对日志数据进行监控,了解各个范围查询字段在各个哈希桶上,是否均匀。当日志数据的均匀性发生较大变化的时候,即某些哈希桶数据过于密集,某些哈希桶过于稀疏。
那么,我们基于新的数据采样,使用同上述相同的方法步骤,为范围查询字段设计新的哈希函数。新的哈希函数集设计完成后,记录新的哈希函数集为活动数据纪(ActiveData Epoch)。上次使用的哈希函数集、启用时间和终止时间、元信息以及相应的数据文件称为一个数据纪。
当范围查询字段跨越两个以上数据纪的时候,需要根据数据纪的边界进行范围查询的改写。比如范围查询字段的上、下界为[时间常量1]和[时间常量2],该查询跨越两个数据纪,两个数据纪的边界为TC,那么范围查询条件“[时间常量1]<=时间and时间<=[时间常量2]”,被改写为“[时间常量1]<=时间and时间<=TC”or“TC<=时间and时间<=[时间常量2]”,余下的步骤与上述实施例中类似。
图4为本发明基于分段保序哈希的日志数据分片装置一实施例的结构示意图。如图4所示,本实施例的装置,可以包括:划分模块401和映射模块402;
其中,划分模块401,用于将日志数据的多个属性字段的值域分别划分成N个分段;N为大于1的整数;
映射模块402,用于按照所述N个分段的顺序建立每个所述属性字段对应的所述N个分段与哈希值的映射关系;所述哈希值为连续排列的整数,所述哈希值的排列顺序与所述N个分段的顺序一致;
所述划分模块401,还用于将每个所述哈希值对应的日志数据划分到一个存储单元中。
可选地,所述划分模块401,具体用于:
获取采样的日志数据,根据所述采样的日志数据在所述多个属性字段的值域上分别建立等深直方图;
根据所述等深直方图将所述值域划分为所述N个分段。
可选地,所述划分模块401,还具体用于:
分别从每个所述属性字段中选择一个所述分段对应的哈希值生成向量,将所述向量作为单元编号;
将所述单元编号对应的日志数据划分到一个所述存储单元中;所述存储单元与所述单元编号一一对应。
可选地,还包括:
处理模块,用于若所述存储单元的存储空间存满之后,记录所述存储单元的元信息,并将所述存储单元中的日志数据写入数据文件中;其中,所述元信息包括:所述各个属性字段的哈希值、所述存储单元存满的次数、所述各个属性字段的值域在所述存储单元的最大值和最小值以及位置信息。
可选地,所述处理模块,还用于:
将多个所述存储单元中的日志数据写入同一数据文件,所述数据文件的文件头中包括:所述存储单元的单元编号与所述存储单元中的日志数据在所述数据文件内偏移量的对应关系。
可选地,所述处理模块,还用于:
记录所述各个属性字段的映射关系、所述映射关系的启用时间和终止时间、所述存储单元的元信息和数据文件的集合。
本实施例的装置,可以用于执行如图1-3任一所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的软件和硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种日志数据分片方法,其特征在于,包括:
将日志数据的多个属性字段的值域分别划分成N个分段;N为大于1的整数;
按照所述N个分段的顺序建立每个所述属性字段对应的所述N个分段与哈希值的映射关系;所述哈希值为连续排列的整数,所述哈希值的排列顺序与所述N个分段的顺序一致;
将每个所述哈希值对应的日志数据划分到一个存储单元中。
2.根据权利要求1所述的方法,其特征在于,所述将日志数据的多个属性字段的值域分别划分成N个分段,包括:
获取采样的日志数据,根据所述采样的日志数据在所述多个属性字段的值域上分别建立等深直方图;
根据所述等深直方图将所述值域划分为所述N个分段。
3.根据权利要求1或2所述的方法,其特征在于,所述将每个所述哈希值对应的日志数据划分到一个存储单元中,包括:
分别从每个所述属性字段中选择一个所述分段对应的哈希值生成向量,将所述向量作为单元编号;
将所述单元编号对应的日志数据划分到一个所述存储单元中;所述存储单元与所述单元编号一一对应。
4.根据权利要求3所述的方法,其特征在于,所述将所述单元编号对应的日志数据划分到一个所述存储单元中之后,还包括:
若所述存储单元的存储空间存满之后,记录所述存储单元的元信息,并将所述存储单元中的日志数据写入数据文件中;其中,所述元信息包括:所述各个属性字段的哈希值、所述存储单元存满的次数、所述各个属性字段的值域在所述存储单元的最大值和最小值以及位置信息。
5.根据权利要求4所述的方法,其特征在于,还包括:
将多个所述存储单元中的日志数据写入同一数据文件,所述数据文件的文件头中包括:所述存储单元的单元编号与所述存储单元中的日志数据在所述数据文件内偏移量的对应关系。
6.根据权利要求5所述的方法,其特征在于,还包括:
记录所述各个属性字段的映射关系、所述映射关系的启用时间和终止时间、所述存储单元的元信息和数据文件的集合。
7.一种日志数据分片装置,其特征在于,包括:
划分模块,用于将日志数据的多个属性字段的值域分别划分成N个分段;N为大于1的整数;
映射模块,用于按照所述N个分段的顺序建立每个所述属性字段对应的所述N个分段与哈希值的映射关系;所述哈希值为连续排列的整数,所述哈希值的排列顺序与所述N个分段的顺序一致;
所述划分模块,还用于将每个所述哈希值对应的日志数据划分到一个存储单元中。
8.根据权利要求7所述的装置,其特征在于,所述划分模块,具体用于:
获取采样的日志数据,根据所述采样的日志数据在所述多个属性字段的值域上分别建立等深直方图;
根据所述等深直方图将所述值域划分为所述N个分段。
9.根据权利要求7或8所述的装置,其特征在于,所述划分模块,还具体用于:
分别从每个所述属性字段中选择一个所述分段对应的哈希值生成向量,将所述向量作为单元编号;
将所述单元编号对应的日志数据划分到一个所述存储单元中;所述存储单元与所述单元编号一一对应。
10.根据权利要求9所述的装置,其特征在于,还包括:
处理模块,用于若所述存储单元的存储空间存满之后,记录所述存储单元的元信息,并将所述存储单元中的日志数据写入数据文件中;其中,所述元信息包括:所述各个属性字段的哈希值、所述存储单元存满的次数、所述各个属性字段的值域在所述存储单元的最大值和最小值以及位置信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510420017.7A CN105117402B (zh) | 2015-07-16 | 2015-07-16 | 日志数据分片方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510420017.7A CN105117402B (zh) | 2015-07-16 | 2015-07-16 | 日志数据分片方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105117402A CN105117402A (zh) | 2015-12-02 |
CN105117402B true CN105117402B (zh) | 2018-08-28 |
Family
ID=54665394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510420017.7A Expired - Fee Related CN105117402B (zh) | 2015-07-16 | 2015-07-16 | 日志数据分片方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105117402B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930256B (zh) * | 2016-04-14 | 2018-07-17 | 北京思特奇信息技术股份有限公司 | 一种利用log4j分文件的日志输出方法和装置 |
CN107590157B (zh) * | 2016-07-08 | 2021-03-23 | 腾讯科技(深圳)有限公司 | 一种数据存储方法、数据查询方法及相关设备 |
CN106354434B (zh) * | 2016-08-31 | 2019-07-23 | 中国人民大学 | 日志数据的存储方法及*** |
CN106599127A (zh) * | 2016-12-01 | 2017-04-26 | 深圳市风云实业有限公司 | 应用于单机服务器的日志存储和查询方法 |
CN107330106B (zh) * | 2017-07-07 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种基于fpga的数据过滤方法及装置 |
CN108415869B (zh) * | 2018-02-28 | 2020-06-26 | 北京零壹空间科技有限公司 | 串行数据的发送方法及装置 |
CN109101830A (zh) * | 2018-09-03 | 2018-12-28 | 安徽太阳石科技有限公司 | 基于区块链的实时数据安全防护方法和*** |
CN109657182B (zh) * | 2018-12-18 | 2020-09-08 | 深圳店匠科技有限公司 | 网页的生成方法、***和计算机可读存储介质 |
CN111382463B (zh) * | 2020-04-02 | 2022-11-29 | 中国工商银行股份有限公司 | 基于流数据的区块链***及方法 |
CN112632018B (zh) * | 2020-12-21 | 2022-05-17 | 深圳市杰成软件有限公司 | 一种业务流程事件日志采样方法与*** |
CN117591608B (zh) * | 2024-01-19 | 2024-04-30 | 恒辉信达技术有限公司 | 基于分布式哈希的云原生数据库数据分片方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408159A (zh) * | 2014-12-04 | 2015-03-11 | 曙光信息产业(北京)有限公司 | 一种数据关联、加载、查询方法及装置 |
CN104536988A (zh) * | 2014-12-10 | 2015-04-22 | 杭州斯凯网络科技有限公司 | MonetDB分布式计算存储方法 |
CN104572809A (zh) * | 2014-11-17 | 2015-04-29 | 杭州斯凯网络科技有限公司 | 一种分布式关系数据库自由扩展方法 |
CN104598519A (zh) * | 2014-12-11 | 2015-05-06 | 浙江浙大中控信息技术有限公司 | 一种基于连续内存的数据库索引***及处理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990177B2 (en) * | 2011-10-27 | 2015-03-24 | Yahoo! Inc. | Lock-free transactional support for large-scale storage systems |
US9754050B2 (en) * | 2012-02-28 | 2017-09-05 | Microsoft Technology Licensing, Llc | Path-decomposed trie data structures |
US9405643B2 (en) * | 2013-11-26 | 2016-08-02 | Dropbox, Inc. | Multi-level lookup architecture to facilitate failure recovery |
GB201400191D0 (en) * | 2014-01-07 | 2014-02-26 | Cryptic Software Ltd | Data file searching method |
-
2015
- 2015-07-16 CN CN201510420017.7A patent/CN105117402B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572809A (zh) * | 2014-11-17 | 2015-04-29 | 杭州斯凯网络科技有限公司 | 一种分布式关系数据库自由扩展方法 |
CN104408159A (zh) * | 2014-12-04 | 2015-03-11 | 曙光信息产业(北京)有限公司 | 一种数据关联、加载、查询方法及装置 |
CN104536988A (zh) * | 2014-12-10 | 2015-04-22 | 杭州斯凯网络科技有限公司 | MonetDB分布式计算存储方法 |
CN104598519A (zh) * | 2014-12-11 | 2015-05-06 | 浙江浙大中控信息技术有限公司 | 一种基于连续内存的数据库索引***及处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105117402A (zh) | 2015-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105117402B (zh) | 日志数据分片方法及装置 | |
AU2017202873B2 (en) | Efficient query processing using histograms in a columnar database | |
CN103577440B (zh) | 一种非关系型数据库中的数据处理方法和装置 | |
US8972337B1 (en) | Efficient query processing in columnar databases using bloom filters | |
US7853770B2 (en) | Storage system, data relocation method thereof, and recording medium that records data relocation program | |
CN101777017B (zh) | 一种连续数据保护***的快速恢复方法 | |
CN103019887B (zh) | 数据备份方法及装置 | |
CN104462421B (zh) | 基于键-值数据库的多租户扩展方法 | |
CN102779138B (zh) | 实时数据的硬盘存取方法 | |
CN103176754A (zh) | 一种海量小文件读取存储方法 | |
US10552460B2 (en) | Sensor data management apparatus, sensor data management method, and computer program product | |
CN106970930A (zh) | 消息发送确定方法及装置、数据表创建方法及装置 | |
CN105159925B (zh) | 一种数据库集群数据分配方法及*** | |
CN102737068A (zh) | 一种用于对检索数据进行缓存管理的方法与设备 | |
WO2021231082A1 (en) | Execution-time dynamic range partitioning transformations | |
CN107506466A (zh) | 一种小文件存储方法及*** | |
CN116339643B (zh) | 一种磁盘阵列的格式化方法、装置、设备和介质 | |
US20130024483A1 (en) | Distribution of data within a database | |
CN104408097A (zh) | 一种基于字符段热更新的混合索引方法及*** | |
CN101290621B (zh) | 安全数字卡的存储检索方法 | |
CN115576947A (zh) | 一种数据管理方法、装置、组合库、电子设备及存储介质 | |
CN115858471A (zh) | 业务数据变更记录方法、装置、计算机设备及介质 | |
CN112579605B (zh) | 一种数据存储方法、装置、存储介质及服务器 | |
CN117196602A (zh) | 缴费数据处理方法、装置、计算机设备和存储介质 | |
CN116578571A (zh) | 客群数据更新方法、装置、计算机设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180828 |