CN110532425B - 视频数据分布式存储方法、装置、计算机设备及存储介质 - Google Patents
视频数据分布式存储方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110532425B CN110532425B CN201910764018.1A CN201910764018A CN110532425B CN 110532425 B CN110532425 B CN 110532425B CN 201910764018 A CN201910764018 A CN 201910764018A CN 110532425 B CN110532425 B CN 110532425B
- Authority
- CN
- China
- Prior art keywords
- video data
- hash
- value
- stored
- preset
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000013507 mapping Methods 0.000 claims abstract description 31
- 230000006870 function Effects 0.000 claims description 134
- 238000004364 calculation method Methods 0.000 claims description 42
- 238000005192 partition Methods 0.000 claims description 25
- 238000005094 computer simulation Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 10
- 239000013598 vector Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/71—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/78—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/783—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Library & Information Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明公开了一种视频数据分布式存储方法,包括:根据待存储的视频数据集获取满足预设条件的哈希函数集合;基于所需的准确率确定哈希表的第一个数;使用所述哈希函数集合分别通过每个哈希表确定将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中的第二个数;连接所述第一个数和所述第二个数得到Row key值;根据所述Row key值创建HBase表;将所述待存储的视频数据集缓存至所述HBase表中。本发明还公开了一种视频数据分布式存储装置、计算机设备及存储介质。本发明能够将视频数据均匀的缓存在HBase表中,解决了数据倾斜的问题。
Description
技术领域
本发明涉及分布式存储技术领域,尤其涉及一种视频数据分布式存储方法、装置、计算机设备及存储介质。
背景技术
随着信息技术的飞速发展,需要存储的视频数据容量正在迅猛增长,存储系统的规模变得越来越庞大,目前单个计算机已经不能满足现状的需求。HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可以搭建起大规模结构化存储集群,能够满足大型互联网应用的高并发、高可用、优质响应时间等需求。
但是,HBase在创建表时没有提前进行预分区,创建的HBase表默认只有一个region,当大量连续的Row key集中写入某一个region中时,会造成集群中视频数据分布不均衡,从而产生热点问题,即大量的客户端会集中访问热点视频数据所在的节点。如此,又进一步导致热点视频数据所在的节点超出自身承受能力,引起性能下降甚至造成视频数据不可用。同时,集群中的其他节点无法服务其他视频数据请求,造成资源浪费。
因此,有必要提供一种新的视频数据均匀缓存的方案,来解决HBase分布式存储系统中视频数据倾斜的技术问题。
发明内容
本发明的主要目的在于提供一种视频数据分布式存储方法、装置、计算机设备及存储介质,旨在解决HBase分布式存储系统中视频数据倾斜的技术问题。
为实现上述目的,本发明的第一方面提供一种视频数据分布式存储方法,所述方法包括:
根据待存储的视频数据集获取满足预设条件的哈希函数集合;
基于所需的准确率确定哈希表的第一个数;
使用所述哈希函数集合分别通过每个哈希表确定将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中的第二个数;
连接所述第一个数和所述第二个数得到Row key值;
根据所述Row key值创建HBase表;
将所述待存储的视频数据集缓存至所述HBase表中。
根据本发明的一个可选实施例,所述根据待存储的视频数据集获取满足预设条件的哈希函数集合包括:
获取多个原始哈希函数;
从所述待存储的视频数据集中获取由第一视频数据和第二视频数据组成的多个视频数据对,其中,所述第一视频数据和所述第二视频数据之间的相似度大于预设相似度阈值;
使用每个原始哈希函数计算所述视频数据对中的第一视频数据的第一哈希值及计算所述视频数据对中的第二视频数据的第二哈希值;
判断所述第一哈希值与所述第二哈希值之间的差值是否小于或者等于预设差值阈值;
当所述第一哈希值与所述第二哈希值之间的差值小于或者等于所述预设差值阈值时,将对应的所述原始哈希函数确定为满足条件的哈希函数;
将所有满足条件的哈希函数构建为哈希函数集合。
根据本发明的一个可选实施例,所述基于所需的准确率确定哈希表的第一个数包括:
从每个所述视频数据中随机抽取预设帧数的图像;
根据所述图像的特征将所述图像转换为二进制序列;
根据所述预设帧数的图像的二进制序列得到所述视频数据的数据序列;
采用预设概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率及对应的参数值;
基于所需的准确率确定目标参数值,所述目标参数值为哈希表的第一个数。
根据本发明的一个可选实施例,所述预设概率计算模型为:
1-[1-(1-r/d)k]l
其中,d所述视频数据的数据序列的维度,r的取值范围为[1,d],k为所述图像的特征的维度,l为所述参数值,大于0;
所述采用预设概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率及对应的参数值包括:
在不同的r和l的基础上采用预设概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率。
根据本发明的一个可选实施例,所述使用所述哈希函数集合分别通过每个哈希表确定将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中的第二个数包括:
从所述哈希函数集合中任意选取K个哈希函数构造多个新的哈希函数集合;
采用所述新的哈希函数集合中的每个哈希函数将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中;
计算所有哈希桶的个数得到所述第二个数。
根据本发明的一个可选实施例,所述连接所述第一个数和所述第二个数得到Rowkey值包括:
设置Row key为1个9位的16进制数,其中,所述9位的16进制数的前7位为所述第二个数,所述9位的16进制数的后2位为所述第二个数;
将所述9位的16进制数与最大的int型数据进行与操作;
将进行与操作得到的数转换为十进制数,作为Row key值。
根据本发明的一个可选实施例,所述根据所述Row key值创建HBase表包括:
根据集群规模确定region分区数量;
根据所述Row key值和所述region分区数量确定每个region分区范围;
根据所述每个region分区范围创建HBase表。
为实现上述目的,本发明的第二方面提供一种视频数据分布式存储装置,所述装置包括:
集合获取模块,用于根据待存储的视频数据集获取满足预设条件的哈希函数集合;
第一确定模块,用于基于所需的准确率确定哈希表的第一个数;
第二确定模块,用于使用所述哈希函数集合分别通过每个哈希表确定将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中的第二个数;
Row key确定模块,用于连接所述第一个数和所述第二个数得到Row key值;
HBase表创建模块,用于根据所述Row key值创建HBase表;
数据缓存模块,用于将所述待存储的视频数据集缓存至所述HBase表中。
为实现上述目的,本发明的第三方面提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的视频数据分布式存储的下载程序,所述视频数据分布式存储的下载程序被所述处理器执行时实现所述的视频数据分布式存储方法。
为实现上述目的,本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有视频数据分布式存储的下载程序,所述视频数据分布式存储的下载程序可被一个或者多个处理器执行以实现所述的视频数据分布式存储方法。
本发明实施例所述的视频数据分布式存储方法、装置、计算机设备及存储介质,首先根据待存储的视频数据集获取满足预设条件的哈希函数集合,使得后续根据这些满足条件的哈希函数对视频数据进行映射时,能够保证相似度较高的视频数据被映射在一起的概率较大;接着基于所需的准确率确定哈希表的第一个数和使用所述哈希函数集合分别通过每个哈希表确定将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中的第二个数;再连接所述第一个数和所述第二个数得到Row key值;最后根据所述Row key值创建HBase表并将所述待存储的视频数据集缓存至所述HBase表中。本发明借助敏感哈希的原理,利用预分区技术配合良好的Row key设计,并根据所述Rowkey值创建HBase表,能够在视频数据导入时避免多余的region拆分、迁移等操作;在视频数据读取时,能够提高读取性能,避免复杂的过滤操作;而通过哈希函数将视频数据映射到哈希桶,能够很好的将视频数据均匀的分散在HBase每个RegionServer的所有region上,从而避免了视频数据倾斜,提高了集群的性能和资源使用率,确保了集群的稳定性。
附图说明
图1为本发明第一实施例的视频数据分布式存储方法的流程示意图;
图2为本发明采用预设概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率曲线意图;
图3为本发明第二实施例的视频数据分布式存储装置的结构示意图;
图4为本发明第三实施例揭露的计算机设备的内部结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的视频数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
如图1所示,为本发明实施例一提供的视频数据分布式存储方法的流程图。
所述视频数据分布式存储方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S11,根据待存储的视频数据集获取满足预设条件的哈希函数集合。
其中,所述待存储的视频数据集是指待缓存至Hbase分布式存储系统中的多个视频数据组成的数据结合。
本实施例中,将所述多个视频数据缓存至Hbase分布式存储系统中需实现如下功能:使得多个视频数据能够均匀的缓存,避免数据倾斜;原始数据空间中的两个相邻的视频数据通过相同的映射或投影变换后,这两个相邻的视频数据在新的数据空间中仍然相邻,而原始数据空间中的两个不相邻的视频数据被映射到新的数据空间中仍然不相邻,即保证相似的视频数据被缓存在一起,不相似的视频数据被缓存在不同位置。鉴于哈希函数能够用于唯一标识一个视频数据,则可以根据待存储的视频数据集筛选出满足上述条件的多个哈希函数,从而基于所筛选出的多个哈希函数构建出哈希函数集合。
在一个可选的实施例中,所述根据待存储的视频数据集获取满足预设条件的哈希函数集合包括:
获取多个原始哈希函数;
从所述待存储的视频数据集中获取由第一视频数据和第二视频数据组成的多个视频数据对,其中,所述第一视频数据和所述第二视频数据之间的相似度大于预设相似度阈值;
使用每个原始哈希函数计算所述视频数据对中的第一视频数据的第一哈希值及计算所述视频数据对中的第二视频数据的第二哈希值;
判断所述第一哈希值与所述第二哈希值之间的差值是否小于或者等于预设差值阈值;
当所述第一哈希值与所述第二哈希值之间的差值小于或者等于所述预设差值阈值时,将对应的所述原始哈希函数确定为满足条件的哈希函数;
将所有满足条件的哈希函数构建为哈希函数集合。
其中,所述原始哈希函数可以是基于比特取样的敏感哈希函数(LocalitySensitive Hash,LSH)、基于最小独立置换的LSH、基于随机投影的LSH、基于Lattice的LSH以及基于P稳定分布的LSH。
示例性的,假设待存储的视频数据集中包括1万个视频数据,可以先在欧式空间中计算任意两个视频数据的欧式距离之间的差值以确定这两个视频数据之间的相似度。当两个视频数据的欧式距离之间的差值小于预设差值阈值,表明这两个视频数据的相似度较大,则将这两个视频数据组成一个视频数据对,由此可以得到多个视频数据对。从多个原始哈希函数中选取一个哈希函数计算任意一个视频数据对中的两个视频数据的哈希值,通常而言,由于视频数据对中的两个视频数据相同或者相似度较高,则通过哈希函数计算得到的哈希值也应当相同或差值较小,此时,则可以认为选取出的这个哈希函数满足了条件。将所有满足条件的哈希函数组合在一起形成一个哈希函数集合。
S12,基于所需的准确率确定哈希表的第一个数。
在待存储的视频数据集存储在分布式存储系统之后,查询或者检索时,也希望有一个较高的准确率。当然,不同的需求,对应的准确率不同。
在一个可选的实施例中,所述基于所需的准确率确定哈希表的第一个数包括:
从每个所述视频数据中随机抽取预设帧数的图像;
根据所述图像的特征将所述图像转换为二进制序列;
根据所述预设帧数的图像的二进制序列得到所述视频数据的数据序列;
采用预设概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率及对应的参数值;
基于所需的准确率确定目标参数值,所述目标参数值为哈希表的第一个数。
本实施例中,一个视频数据包含了多帧图像,为了减少计算任意两个视频数据映射到一个哈希桶内的概率的计算量,缩短计算时间,提升计算性能,则按照一定的规则从每个视频数据中抽取预设帧数的图像,以抽取的预设帧数的图像替代整个视频数据参与计算。所述一定的规则可以是指从视频数据的前20%到后20%之间每隔预设时间段提取一帧图像。
示例性的,从视频数据中提取出120帧图像,再提取每帧图像的特征,所述特征可以是指亮度、饱和度、色彩、灰度直方图、局部纹理特征等中的一种或多种,将提取出的特征连接成多维的向量,再将120个这种多维的向量连接起来形成一个更高维的向量,作为视频数据的数据序列。
需要说明的是,为了便于计算,在提取出图像的某一个特征之后,将这一个特征的值转换为预设位数的二进制数。一个int型占32bit,则在将提取出的特征的值转换为二进制数后再进行连接得到二进制序列,判断所述二进制序列是否为32bit,不够32bit的则后面的bit用0填充直至所述二进制序列的维度为32,由此,视频数据的数据序列的维度d可以为3840(120*32)。例如,当图像的特征指亮度和对比度时,某一帧的图像的亮度值为30,对比度值为4,灰度直方图值为128,则将亮度值30转换为8位的二进制数“00011110”,将对比度值4转换为8位的二进制数“00000100”,将灰度直方图值128转换为8位的二进制数“10000000”,根据该帧图像的亮度特征、对比度特征及灰度直方图特征连接得到的二进制序列为“000111100000010010000000”,由于该二进制序列不足32位,则后面的8位用0进行填充,得到的32位的二进制序列为“00011110000001001000000000000000”。
对于两个视频数据的数据序列而言,抽取1维时,两个视频数据被映射到同一个哈希桶的概率为1-r/d,其中,r的取值范围为[1,d],抽取k维时,两个视频数据被映射到同一个哈希桶的概率为(1-r/d)k,k为所述图像的特征的维度(根据图像的特征连接得到的二进制序列的位数,例如,上述示例中的24),那么至少有1维不一致时,两个视频数据被映射到同一个哈希桶的概率为1-(1-r/d)k,至少有l维不一致时,两个视频数据被映射到同一个哈希桶的概率为1-[1-(1-r/d)k]l。将1-[1-(1-r/d)k]l作为概率计算模型,在所述概率计算模型中,将l作为大于0的参数。
请参阅图2所示,为采用概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率曲线的示意图。
图2中,以r为横坐标,以采用概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率为纵坐标建立坐标系。
由于对于任意一帧图像而言,在将提取出的特征转换为二进制数并连接成多维的向量之后,该多维的向量的维度既可确定,即所述概率计算模型中的k可以确定。
在一个可选的实施例中,所述采用预设概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率及对应的参数值包括:在不同的r和l的基础上采用预设概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率。
具体如下所示:
当确定了l的值后,在r从1至d的变化的基础上,即可采用概率计算模型计算两个视频数据映射到一个哈希桶内的多个概率,将计算得到的多个概率通过一条光滑的曲线进行拟合即可得到在该确定的l下的概率曲线;
当改变l的值后,在r从1至d的变化的基础上,同样采用概率计算模型计算所述两个视频数据映射到一个哈希桶内的多个概率,将计算得到的多个概率通过一条光滑的曲线进行拟合即可得到在该改变的l下的概率曲线,如此多次改变l的值,可得到这两个视频数据映射到一个哈希桶内的概率的多条概率曲线;
同理,对于其他任意的两个视频,多次改变l的值,并在r从1至d的变化的基础上,可得到任意两个视频数据映射到一个哈希桶内的概率的多条概率曲线。
可以预先设置查找的准确率r之间的对应关系,一旦确定实际需求的准确率,例如,99.9%,即可根据所述对应关系确定出r的值。当r的值确定后,再在坐标系上作出一条直线y=r,通过计算直线与概率区域之间的交点,选取出最小的交点对应的概率曲线为目标概率曲线,目标概率曲线对应的l为哈希表的个数。
S13,使用所述哈希函数集合分别通过每个哈希表确定将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中的第二个数。
在一个可选的实施例中,所述使用所述哈希函数集合分别通过每个哈希表确定将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中的第二个数包括:
从所述哈希函数集合中任意选取K个哈希函数构造多个新的哈希函数集合;
采用所述新的哈希函数集合中的每个哈希函数将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中;
计算所有哈希桶的个数得到所述第二个数。
其中,K可以为视频数据的一帧图像的特征的维度k。
为每一个哈希表,从选取出的个新的哈希函数集合中任意不放回的取出一个新的哈希函数集合,然后使用这个新的哈希函数集合中的10个哈希函数对待存储的视频数据集中的每一个视频数据进行哈希计算得到哈希值,哈希值作为哈希桶的标识。最后计算所有哈希表中的所有哈希桶的个数之和,得到第二个数。示例性的,假设计算得到的哈希表的第一个数为5,则从选取出的个新的哈希函数集合中随机不放回的取出5个新的哈希函数集合并随机分配给5个哈希表,其中,每个哈希表中有10个哈希函数,不同的哈希表中的哈希函数不同。针对第1个哈希表,采用对应的10个哈希函数分别计算每个视频数据的哈希值,将哈希值作为哈希桶的标识,计算第1个哈希表内的标识即可确定第1个哈希表内的哈希桶的个数。同理,计算其余9个哈希表内的哈希桶的个数。最后计算10个哈希表中的所有哈希桶的个数之和,得到哈希桶的第二个数。
S14,连接所述第一个数和所述第二个数得到Row key值。
本实施例中,当确定第一个数和第二个数,即确定哈希表的个数和哈希桶的个数之后,即可根据哈希表的个数和哈希桶的个数设计出一个合理的Rowkey值。
在一个可选的实施例中,所述连接所述第一个数和所述第二个数得到Row key值包括:
设置Row key为1个9位的16进制数,其中,所述9位的16进制数的前7位为所述第二个数,所述9位的16进制数的后2位为所述第二个数;
将所述9位的16进制数与最大的int型数据进行与操作;
将进行与操作得到的数转换为十进制数,作为Row key值。
由于Hbase中的行是以Row key的字典序排序的,所以我们将Row key设计为9个大写的16进制数(7位16进制数+2位16进制数),一个16进制数占4位,则前面28位范围0~0xFFFFFFF,后面8位范围0~0x13,前面28位代表哈希桶的个数,后面4位代表哈希表的个数。为了确保得到一个非负数的int型的值,即确保Row key值为正数,将第二个数和第一个数连接后再与最大int型数据进行逻辑&运算。关于Java的逻辑与预算为现有技术,本发明在此不再详细阐述。
S15,根据所述Row key值创建HBase表。
HBase中的一行由行键(Row key)和一个或多个列及其值组成,各行按字母顺序存储。为了实现HBase表中数据的分布式存储,HBase表按Row key的范围划分多个region。
在一个可选的实施例中,所述根据所述Row key值创建HBase表包括:
根据集群规模确定region分区数量;
根据所述Row key值和所述region分区数量确定每个region分区范围;
根据所述每个region分区范围创建HBase表。
所述集群规模是指分布式存储系统中Region Server的数量,所述RegionServer用于管理region中的数据。
示例性的,假设Row key值为1000,Region Server的数量为10,则可以分为10个region,则第1个region的分区范围(startkey-endkey)为1-100,第2个region的分区范围(startkey-endkey)为101-200,第3个region的分区范围(startkey-endkey)为201-300,以此内推,第10个region的分区范围(startkey-endkey)为901-1000。10个region的分区范围确定之后,即可创建出HBase表。
S16,将所述待存储的视频数据集缓存至所述HBase表中。
在将所述待存储的视频数据集存储至所述HBase表中时,视频数据按照Row key的字典序(byte order)排序存储。HBase在存储视频数据时会自动将视频数据均匀分布到各个region中,同时可以根据startkey和endkey可以获取到同一批视频数据。
综上,本发明实施例所述的视频数据分布式存储方法,首先根据待存储的视频数据集获取满足预设条件的哈希函数集合,使得后续根据这些满足条件的哈希函数对视频数据进行映射时,能够保证相似度较高的视频数据被映射在一起的概率较大;接着基于所需的准确率确定哈希表的第一个数和使用所述哈希函数集合分别通过每个哈希表确定将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中的第二个数;再连接所述第一个数和所述第二个数得到Row key值;最后根据所述Row key值创建HBase表并将所述待存储的视频数据集缓存至所述HBase表中。本发明借助敏感哈希的原理,利用预分区技术配合良好的Row key设计,并根据所述Row key值创建HBase表,能够在视频数据导入时避免多余的region拆分、迁移等操作;在视频数据读取时,能够提高读取性能,避免复杂的过滤操作;而通过哈希函数将视频数据映射到哈希桶,能够很好的将视频数据均匀的分散在HBase每个RegionServer的所有region上,从而避免了视频数据倾斜,提高了集群的性能和资源使用率,确保了集群的稳定性。
实施例二
参阅图3所示,为本发明实施例揭露的视频数据分布式存储装置的功能模块示意图。
在一些实施例中,所述视频数据分布式存储装置30运行于计算机设备中。所述视频数据分布式存储装置30可以包括多个由程序代码段所组成的功能模块。所述视频数据分布式存储装置30中的各个程序段的程序代码可以存储于计算机设备的存储器中,并由所述至少一个处理器所执行,以执行(详见图1描述)对视频数据的分布式存储。
本实施例中,所述视频数据分布式存储装置30根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:集合获取模块301、第一确定模块302、第二确定模块303、Row key确定模块304、HBase表创建模块305及数据缓存模块306。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
集合获取模块301,用于根据待存储的视频数据集获取满足预设条件的哈希函数集合。
其中,所述待存储的视频数据集是指待缓存至Hbase分布式存储系统中的多个视频数据组成的数据结合。
本实施例中,将所述多个视频数据缓存至Hbase分布式存储系统中需实现如下功能:使得多个视频数据能够均匀的缓存,避免数据倾斜;原始数据空间中的两个相邻的视频数据通过相同的映射或投影变换后,这两个相邻的视频数据在新的数据空间中仍然相邻,而原始数据空间中的两个不相邻的视频数据被映射到新的数据空间中仍然不相邻,即保证相似的视频数据被缓存在一起,不相似的视频数据被缓存在不同位置。鉴于哈希函数能够用于唯一标识一个视频数据,则可以根据待存储的视频数据集筛选出满足上述条件的多个哈希函数,从而基于所筛选出的多个哈希函数构建出哈希函数集合。
在一个可选的实施例中,所述集合获取模块301根据待存储的视频数据集获取满足预设条件的哈希函数集合包括:
获取多个原始哈希函数;
从所述待存储的视频数据集中获取由第一视频数据和第二视频数据组成的多个视频数据对,其中,所述第一视频数据和所述第二视频数据之间的相似度大于预设相似度阈值;
使用每个原始哈希函数计算所述视频数据对中的第一视频数据的第一哈希值及计算所述视频数据对中的第二视频数据的第二哈希值;
判断所述第一哈希值与所述第二哈希值之间的差值是否小于或者等于预设差值阈值;
当所述第一哈希值与所述第二哈希值之间的差值小于或者等于所述预设差值阈值时,将对应的所述原始哈希函数确定为满足条件的哈希函数;
将所有满足条件的哈希函数构建为哈希函数集合。
其中,所述原始哈希函数可以是基于比特取样的敏感哈希函数(LocalitySensitive Hash,LSH)、基于最小独立置换的LSH、基于随机投影的LSH、基于Lattice的LSH以及基于P稳定分布的LSH。
示例性的,假设待存储的视频数据集中包括1万个视频数据,可以先在欧式空间中计算任意两个视频数据的欧式距离之间的差值以确定这两个视频数据之间的相似度。当两个视频数据的欧式距离之间的差值小于预设差值阈值,表明这两个视频数据的相似度较大,则将这两个视频数据组成一个视频数据对,由此可以得到多个视频数据对。从多个原始哈希函数中选取一个哈希函数计算任意一个视频数据对中的两个视频数据的哈希值,通常而言,由于视频数据对中的两个视频数据相同或者相似度较高,则通过哈希函数计算得到的哈希值也应当相同或差值较小,此时,则可以认为选取出的这个哈希函数满足了条件。将所有满足条件的哈希函数组合在一起形成一个哈希函数集合。
第一确定模块302,用于基于所需的准确率确定哈希表的第一个数。
在待存储的视频数据集存储在分布式存储系统之后,查询或者检索时,也希望有一个较高的准确率。当然,不同的需求,对应的准确率不同。
在一个可选的实施例中,所述第一确定模块302基于所需的准确率确定哈希表的第一个数包括:
从每个所述视频数据中随机抽取预设帧数的图像;
根据所述图像的特征将所述图像转换为二进制序列;
根据所述预设帧数的图像的二进制序列得到所述视频数据的数据序列;
采用预设概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率及对应的参数值;
基于所需的准确率确定目标参数值,所述目标参数值为哈希表的第一个数。
本实施例中,一个视频数据包含了多帧图像,为了减少计算任意两个视频数据映射到一个哈希桶内的概率的计算量,缩短计算时间,提升计算性能,则按照一定的规则从每个视频数据中抽取预设帧数的图像。所述一定的规则可以是指从视频数据的前20%到后20%之间每隔预设时间段提取一帧图像。
示例性的,从视频数据中提取出120帧图像,再提取每帧图像的特征,所述特征可以是指亮度、饱和度、色彩、灰度直方图、局部纹理特征等中的一种或多种,将提取出的特征连接成多维的向量,再将120个这种多维的向量连接起来形成一个更高维的向量,作为视频数据的数据序列。
需要说明的是,为了便于计算,在提取出图像的某一个特征之后,将这一个特征的值转换为预设位数的二进制数。一个int型占32bit,则在将提取出的特征的值转换为二进制数后再进行连接得到二进制序列,判断所述二进制序列是否为32bit,不够32bit的则后面的bit用0填充直至所述二进制序列的维度为32,由此,视频数据的数据序列的维度d可以为3840(120*32)。例如,当图像的特征指亮度和对比度时,某一帧的图像的亮度值为30,对比度值为4,灰度直方图值为128,则将亮度值30转换为8位的二进制数“00011110”,将对比度值4转换为8位的二进制数“00000100”,将灰度直方图值128转换为8位的二进制数“10000000”,根据该帧图像的亮度特征、对比度特征及灰度直方图特征连接得到的二进制序列为“000111100000010010000000”,由于该二进制序列不足32位,则后面的8位用0进行填充,得到的32位的二进制序列为“00011110000001001000000000000000”。
对于两个视频数据的数据序列而言,抽取1维时,两个视频数据被映射到同一个哈希桶的概率为1-r/d,其中,r的取值范围为[1,d],抽取k维时,两个视频数据被映射到同一个哈希桶的概率为(1-r/d)k,k为所述图像的特征的维度(根据图像的特征连接得到的二进制序列的位数,例如,上述示例中的24),那么至少有1维不一致时,两个视频数据被映射到同一个哈希桶的概率为1-(1-r/d)k,至少有l维不一致时,两个视频数据被映射到同一个哈希桶的概率为1-[1-(1-r/d)k]l。将1-[1-(1-r/d)k]l作为概率计算模型,在所述概率计算模型中,将l作为大于0的参数。
请参阅图2所示,为采用概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率曲线的示意图。
图2中,以r为横坐标,以采用概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率为纵坐标建立坐标系。
由于对于任意一帧图像而言,在将提取出的特征转换为二进制数并连接成多维的向量之后,该多维的向量的维度既可确定,即所述概率计算模型中的k可以确定。
在一个可选的实施例中,所述采用预设概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率及对应的参数值包括:在不同的r和l的基础上采用预设概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率。
具体如下所示:
当确定了l的值后,在r从1至d的变化的基础上,即可采用概率计算模型计算两个视频数据映射到一个哈希桶内的多个概率,将计算得到的多个概率通过一条光滑的曲线进行拟合即可得到在该确定的l下的概率曲线;
当改变l的值后,在r从1至d的变化的基础上,同样采用概率计算模型计算所述两个视频数据映射到一个哈希桶内的多个概率,将计算得到的多个概率通过一条光滑的曲线进行拟合即可得到在该改变的l下的概率曲线,如此多次改变l的值,可得到这两个视频数据映射到一个哈希桶内的概率的多条概率曲线;
同理,对于其他任意的两个视频,多次改变l的值,并在r从1至d的变化的基础上,可得到任意两个视频数据映射到一个哈希桶内的概率的多条概率曲线。
可以预先设置查找的准确率r之间的对应关系,一旦确定实际需求的准确率,例如,99.9%,即可根据所述对应关系确定出r的值。当r的值确定后,再在坐标系上作出一条直线y=r,通过计算直线与概率区域之间的交点,选取出最小的交点对应的概率曲线为目标概率曲线,目标概率曲线对应的l为哈希表的个数。
第二确定模块303,用于使用所述哈希函数集合分别通过每个哈希表确定将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中的第二个数。
在一个可选的实施例中,所述第二确定模块303使用所述哈希函数集合分别通过每个哈希表确定将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中的第二个数包括:
从所述哈希函数集合中任意选取K个哈希函数构造多个新的哈希函数集合;
采用所述新的哈希函数集合中的每个哈希函数将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中;
计算所有哈希桶的个数得到所述第二个数。
其中,K可以为视频数据的一帧图像的特征的维度k。
为每一个哈希表,从选取出的个新的哈希函数集合中任意不放回的取出一个新的哈希函数集合,然后使用这个新的哈希函数集合中的10个哈希函数对待存储的视频数据集中的每一个视频数据进行哈希计算得到哈希值,哈希值作为哈希桶的标识。最后计算所有哈希表中的所有哈希桶的个数之和,得到第二个数。示例性的,假设计算得到的哈希表的第一个数为5,则从选取出的个新的哈希函数集合中随机不放回的取出5个新的哈希函数集合并随机分配给5个哈希表,其中,每个哈希表中有10个哈希函数,不同的哈希表中的哈希函数不同。针对第1个哈希表,采用对应的10个哈希函数分别计算每个视频数据的哈希值,将哈希值作为哈希桶的标识,计算第1个哈希表内的标识即可确定第1个哈希表内的哈希桶的个数。同理,计算其余9个哈希表内的哈希桶的个数。最后计算10个哈希表中的所有哈希桶的个数之和,得到哈希桶的第二个数。
Row key确定模块304,用于连接所述第一个数和所述第二个数得到Rowkey值。
本实施例中,当确定第一个数和第二个数,即确定哈希表的个数和哈希桶的个数之后,即可根据哈希表的个数和哈希桶的个数设计出一个合理的Rowkey值。
在一个可选的实施例中,所述Row key确定模块304连接所述第一个数和所述第二个数得到Row key值包括:
设置Row key为1个9位的16进制数,其中,所述9位的16进制数的前7位为所述第二个数,所述9位的16进制数的后2位为所述第二个数;
将所述9位的16进制数与最大的int型数据进行与操作;
将进行与操作得到的数转换为十进制数,作为Row key值。
由于Hbase中的行是以Row key的字典序排序的,所以我们将Row key设计为9个大写的16进制数(7位16进制数+2位16进制数),一个16进制数占4位,则前面28位范围0~0xFFFFFFF,后面8位范围0~0x13,前面28位代表哈希桶的个数,后面4位代表哈希表的个数。为了确保得到一个非负数的int型的值,即确保Row key值为正数,将第二个数和第一个数连接后再与最大int型数据进行逻辑&运算。关于Java的逻辑与预算为现有技术,本发明在此不再详细阐述。
HBase表创建模块305,用于根据所述Row key值创建HBase表。
HBase中的一行由行键(Row key)和一个或多个列及其值组成,各行按字母顺序存储。为了实现HBase表中数据的分布式存储,HBase表按Row key的范围划分多个region。
在一个可选的实施例中,所述HBase表创建模块305根据所述Row key值创建HBase表包括:
根据集群规模确定region分区数量;
根据所述Row key值和所述region分区数量确定每个region分区范围;
根据所述每个region分区范围创建HBase表。
所述集群规模是指分布式存储系统中Region Server的数量,所述RegionServer用于管理region中的数据。
示例性的,假设Row key值为1000,Region Server的数量为10,则可以分为10个region,则第1个region的分区范围(startkey-endkey)为1-100,第2个region的分区范围(startkey-endkey)为101-200,第3个region的分区范围(startkey-endkey)为201-300,以此内推,第10个region的分区范围(startkey-endkey)为901-1000。10个region的分区范围确定之后,即可创建出HBase表。
数据缓存模块306,用于将所述待存储的视频数据集缓存至所述HBase表中。
在将所述待存储的视频数据集存储至所述HBase表中时,视频数据按照Row key的字典序(byte order)排序存储。HBase在存储视频数据时会自动将视频数据均匀分布到各个region中,同时可以根据startkey和endkey可以获取到同一批视频数据。
综上,本发明实施例所述的视频数据分布式存储装置,首先根据待存储的视频数据集获取满足预设条件的哈希函数集合,使得后续根据这些满足条件的哈希函数对视频数据进行映射时,能够保证相似度较高的视频数据被映射在一起的概率较大;接着基于所需的准确率确定哈希表的第一个数和使用所述哈希函数集合分别通过每个哈希表确定将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中的第二个数;再连接所述第一个数和所述第二个数得到Row key值;最后根据所述Row key值创建HBase表并将所述待存储的视频数据集缓存至所述HBase表中。本发明借助敏感哈希的原理,利用预分区技术配合良好的Row key设计,并根据所述Row key值创建HBase表,能够在视频数据导入时避免多余的region拆分、迁移等操作;在视频数据读取时,能够提高读取性能,避免复杂的过滤操作;而通过哈希函数将视频数据映射到哈希桶,能够很好的将视频数据均匀的分散在HBase每个RegionServer的所有region上,从而避免了视频数据倾斜,提高了集群的性能和资源使用率,确保了集群的稳定性。
实施例三
图4为本发明实施例揭露的计算机设备的内部结构示意图。
在本实施例中,所述计算机设备4包括存储器41、处理器42和总线43。
其中,存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器41在一些实施例中可以是所述计算机设备4的内部存储单元,例如所述计算机设备4的硬盘。存储器41在另一些实施例中也可以是所述计算机设备4的外部存储设备,例如所述计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器41还可以既包括所述计算机设备4的内部存储单元也包括外部存储设备。存储器41不仅可以用于存储安装于所述计算机设备4的应用应用程序及各类视频数据,例如视频数据分布式存储装置30的代码等及各个模块,还可以用于暂时地存储已经输出或者将要输出的视频数据。
处理器42在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他视频数据处理芯片,用于运行存储器41中存储的程序代码或处理视频数据。
该总线43可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、视频数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,所述计算机设备4还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该计算机设备4与其他计算机设备之间建立通信连接。
可选地,该计算机设备4还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在所述计算机设备中处理的消息以及用于显示可视化的用户界面。
图4仅示出了具有组件41-43的所述计算机设备4,本领域技术人员可以理解的是,图4示出的结构并不构成对所述计算机设备4的限定,既可以是总线型结构,也可以是星形结构,所述计算机设备4还可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在上述实施例中,可以全部或部分地通过应用程序、硬件、固件或者其任意组合来实现。当使用应用程序实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或视频数据中心通过有线(例如,同轴电缆、光纤、数字用户线)或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或视频数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、视频数据中心等视频数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD),或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用应用程序功能单元的形式实现。
所述集成的单元如果以应用程序功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以应用程序产品的形式体现出来,该计算机应用程序产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、硬盘、只读存储器(Read-OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、物品或者方法中还存在另外的相同要素。
以上仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种视频数据分布式存储方法,其特征在于,所述方法包括:
根据待存储的视频数据集获取满足预设条件的哈希函数集合;
基于所需的准确率确定哈希表的第一个数,包括:从每个所述视频数据中随机抽取预设帧数的图像;根据所述图像的特征将所述图像转换为二进制序列;根据所述预设帧数的图像的二进制序列得到所述视频数据的数据序列;采用预设概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率及对应的参数值;基于所需的准确率确定目标参数值,所述目标参数值为哈希表的第一个数;
使用所述哈希函数集合分别通过每个哈希表确定将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中的第二个数;
连接所述第一个数和所述第二个数得到Row key值;
根据所述Row key值创建HBase表;
将所述待存储的视频数据集缓存至所述HBase表中。
2.如权利要求1所述的方法,其特征在于,所述根据待存储的视频数据集获取满足预设条件的哈希函数集合包括:
获取多个原始哈希函数;
从所述待存储的视频数据集中获取由第一视频数据和第二视频数据组成的多个视频数据对,其中,所述第一视频数据和所述第二视频数据之间的相似度大于预设相似度阈值;
使用每个原始哈希函数计算所述视频数据对中的第一视频数据的第一哈希值及计算所述视频数据对中的第二视频数据的第二哈希值;
判断所述第一哈希值与所述第二哈希值之间的差值是否小于或者等于预设差值阈值;
当所述第一哈希值与所述第二哈希值之间的差值小于或者等于所述预设差值阈值时,将对应的所述原始哈希函数确定为满足条件的哈希函数;
将所有满足条件的哈希函数构建为哈希函数集合。
4.如权利要求3所述的方法,其特征在于,所述使用所述哈希函数集合分别通过每个哈希表确定将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中的第二个数包括:
从所述哈希函数集合中任意选取K个哈希函数构造多个新的哈希函数集合;
采用所述新的哈希函数集合中的每个哈希函数将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中;
计算所有哈希桶的个数得到所述第二个数。
5.如权利要求1所述的方法,其特征在于,所述连接所述第一个数和所述第二个数得到Row key值包括:
设置Row key为1个9位的16进制数,其中,所述9位的16进制数的前7位为所述第二个数,所述9位的16进制数的后2位为所述第一个数;
将所述9位的16进制数与最大的int型数据进行与操作;
将进行与操作得到的数转换为十进制数,作为Row key值。
6.如权利要求1至4中任意一项所述的方法,其特征在于,所述根据所述Row key值创建HBase表包括:
根据集群规模确定region分区数量;
根据所述Row key值和所述region分区数量确定每个region分区范围;
根据所述每个region分区范围创建HBase表。
7.一种视频数据分布式存储装置,其特征在于,所述装置包括:
集合获取模块,用于根据待存储的视频数据集获取满足预设条件的哈希函数集合;
第一确定模块,用于基于所需的准确率确定哈希表的第一个数,包括:从每个所述视频数据中随机抽取预设帧数的图像;根据所述图像的特征将所述图像转换为二进制序列;根据所述预设帧数的图像的二进制序列得到所述视频数据的数据序列;采用预设概率计算模型计算任意两个视频数据映射到一个哈希桶内的概率及对应的参数值;基于所需的准确率确定目标参数值,所述目标参数值为哈希表的第一个数;
第二确定模块,用于使用所述哈希函数集合分别通过每个哈希表确定将所述待存储的视频数据集中的每个视频数据映射到相应的哈希桶中的第二个数;
Row key确定模块,用于连接所述第一个数和所述第二个数得到Row key值;
HBase表创建模块,用于根据所述Row key值创建HBase表;
数据缓存模块,用于将所述待存储的视频数据集缓存至所述HBase表中。
8.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的视频数据分布式存储的下载程序,所述视频数据分布式存储的下载程序被所述处理器执行时实现如权利要求1至6中任意一项所述的视频数据分布式存储方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有视频数据分布式存储的下载程序,所述视频数据分布式存储的下载程序可被一个或者多个处理器执行以实现如权利要求1至6中任一项所述的视频数据分布式存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910764018.1A CN110532425B (zh) | 2019-08-19 | 2019-08-19 | 视频数据分布式存储方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910764018.1A CN110532425B (zh) | 2019-08-19 | 2019-08-19 | 视频数据分布式存储方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110532425A CN110532425A (zh) | 2019-12-03 |
CN110532425B true CN110532425B (zh) | 2022-04-01 |
Family
ID=68663819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910764018.1A Active CN110532425B (zh) | 2019-08-19 | 2019-08-19 | 视频数据分布式存储方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110532425B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112383819B (zh) * | 2020-11-06 | 2022-03-11 | 平安科技(深圳)有限公司 | 视频帧提取方法及相关设备 |
CN113067989B (zh) * | 2021-06-01 | 2021-09-24 | 神威超算(北京)科技有限公司 | 一种数据处理方法和芯片 |
CN113516506B (zh) * | 2021-06-10 | 2024-04-26 | 深圳市云网万店科技有限公司 | 一种数据处理方法、装置及电子设备 |
CN117827850B (zh) * | 2024-03-06 | 2024-05-10 | 深圳钰丰信息技术有限公司 | 一种数据存储方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246700A (zh) * | 2013-04-01 | 2013-08-14 | 厦门市美亚柏科信息股份有限公司 | 基于HBase的海量小文件低延时存储方法 |
CN105426437A (zh) * | 2015-11-05 | 2016-03-23 | 西安翔迅科技有限责任公司 | 一种基于HBase的智能交通领域卡口数据存储方法 |
CN106777387A (zh) * | 2017-02-16 | 2017-05-31 | 江苏海平面数据科技有限公司 | 一种基于HBase的物联网大数据存取方法 |
CN107273482A (zh) * | 2017-06-12 | 2017-10-20 | 北京市天元网络技术股份有限公司 | 基于HBase的告警数据存储方法及装置 |
CN107391554A (zh) * | 2017-06-07 | 2017-11-24 | 中国人民解放军国防科学技术大学 | 高效分布式局部敏感哈希方法 |
CN107633001A (zh) * | 2017-08-03 | 2018-01-26 | 北京空间科技信息研究所 | 哈希分区优化方法和装置 |
CN110020086A (zh) * | 2017-12-22 | 2019-07-16 | 中国移动通信集团浙江有限公司 | 一种用户画像查询方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10740358B2 (en) * | 2013-04-11 | 2020-08-11 | Oracle International Corporation | Knowledge-intensive data processing system |
-
2019
- 2019-08-19 CN CN201910764018.1A patent/CN110532425B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246700A (zh) * | 2013-04-01 | 2013-08-14 | 厦门市美亚柏科信息股份有限公司 | 基于HBase的海量小文件低延时存储方法 |
CN105426437A (zh) * | 2015-11-05 | 2016-03-23 | 西安翔迅科技有限责任公司 | 一种基于HBase的智能交通领域卡口数据存储方法 |
CN106777387A (zh) * | 2017-02-16 | 2017-05-31 | 江苏海平面数据科技有限公司 | 一种基于HBase的物联网大数据存取方法 |
CN107391554A (zh) * | 2017-06-07 | 2017-11-24 | 中国人民解放军国防科学技术大学 | 高效分布式局部敏感哈希方法 |
CN107273482A (zh) * | 2017-06-12 | 2017-10-20 | 北京市天元网络技术股份有限公司 | 基于HBase的告警数据存储方法及装置 |
CN107633001A (zh) * | 2017-08-03 | 2018-01-26 | 北京空间科技信息研究所 | 哈希分区优化方法和装置 |
CN110020086A (zh) * | 2017-12-22 | 2019-07-16 | 中国移动通信集团浙江有限公司 | 一种用户画像查询方法及装置 |
Non-Patent Citations (2)
Title |
---|
Research on optimization of community mass data storage based on HBase;Jian Guo 等;《 Third International Conference on Cyberspace Technology (CCT 2015)》;20151018;1-4 * |
基于局部敏感哈希的大规模相似图像检索技术研究与实现;张万新;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20190115(第01期);I138-2289 * |
Also Published As
Publication number | Publication date |
---|---|
CN110532425A (zh) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110532425B (zh) | 视频数据分布式存储方法、装置、计算机设备及存储介质 | |
JP7046172B2 (ja) | シャード・データベースのシャード・テーブルにレコードを記憶するためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステム、シャード・データベースのシャード・テーブルからレコードを検索するためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステム、ならびにシャード・データベースを記憶するためのシステム | |
US20170031760A1 (en) | Validating stored encoded data slice integrity in a dispersed storage network | |
US10423476B2 (en) | Aggressive searching for missing data in a DSN memory that has had migrations | |
CN105488050B (zh) | 一种数据库多索引方法、装置及系统 | |
US20180074903A1 (en) | Processing access requests in a dispersed storage network | |
CN108717461B (zh) | 海量数据结构化方法、装置、计算机设备及存储介质 | |
CN111078689B (zh) | 一种非连续型预排序遍历树算法的数据处理方法及系统 | |
CN111400308A (zh) | 缓存数据的处理方法、电子装置及可读存储介质 | |
CN112860737B (zh) | 数据查询方法、装置、电子设备及可读存储介质 | |
US10419538B2 (en) | Selecting memory for data access in a dispersed storage network | |
CN111090649A (zh) | 数据信息分页查询方法、装置、计算机设备及存储介质 | |
CN112256472B (zh) | 分布式数据调取方法、装置、电子设备及存储介质 | |
US20190208016A1 (en) | Indicating multiple encoding schemes in a dispersed storage network | |
US20190294557A1 (en) | Hash table collision resolution for storage unit memory | |
US10506045B2 (en) | Memory access using deterministic function and secure seed | |
CN115206460A (zh) | 药物数据处理方法、装置、电子设备及存储介质 | |
US10511665B2 (en) | Efficient resource reclamation after deletion of slice from common file | |
CN112698877A (zh) | 数据处理方法及系统 | |
CN112232025A (zh) | 一种字符串存储方法、装置及电子设备 | |
CN111966691B (zh) | 一种分布式存储系统快速查询对象所属目录的配置方法及系统 | |
CN115328892B (zh) | 一种业务表单数据结构处理方法、系统、电子设备及介质 | |
CN113434508B (zh) | 用于存储信息的方法和装置 | |
CN114579835B (zh) | 数据存储、查询方法和相关设备 | |
US11379449B2 (en) | Method, electronic device and computer program product for creating metadata index |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |