一种基于大数据的查询方法_2

文档序号:8943119阅读:来源:国知局
分离出的元素里提取 能代表元素关键内容的关键像素点,本发明中关键像素点通过计算元素中所有像素的平均 值来获取,之后可以从关键像素点的集合中来提取颜色特征、形状特征、纹理特征。上述特 征共同构成描述图像内容的特征空间。在提取关键像素点后需要对图像进行聚类,根据相 关性关系将时间连续和内容相近的元素重新进行组合。
[0035] 以下给出相似度计算公式。设图像库中有N个图像,则库中图像可用P1Q e {1, 2, "·Ν})来表示,C1, G1, S1, 别表示颜色、纹理、形状、位置特征,用户提交的待检索的 图像实例用Pc表示,其颜色、纹理、形状、位置特征分别用C。,G。,S。,Μ。来表示,待检索图像 与第i个图像的相似度用D (P。,P1)表示,则相似度计算公式如下:
[0036] D (P。,P1) = W1Dc (C。,C1)+W2Dg(G。,G1)+W 3Ds(S。,S1)+W4Dm(M。,M 1)其中,Dc,Dg,Ds, 别为5,?1两个图像在颜色、纹理、形状、位置上的相似度。w 各特征的权重,其 值可以进行调整,但要满足Wi+Wjj+wfWd= 1。
[0037] 对图像特征进行相似度计算的工作量是非常大的。本发明利用MapReduce编程 模型来进行相似度计算和相似度匹配,从而实现分布式文件数据库中海量图像的分布式检 索。
[0038] 将对大规模图像数据的操作分发给主节点下的各个分节点去完成。在map阶段, MapReduce将图像数据分割成固定大小的分片,然后将每个分片分解成多个键值对〈1, V,,并将其作为map函数的输入,得到中间结果<K 2, V2>,然后按照1(2继续排序,并key值相 同的value放在一起形成一个新列表<K 2, list (V2) >。输入的<K2, list (V2) >对经过reduce 函数的处理后得到键值对<K3, V3>,将其输出到HDFS上。
[0039] 在本发明的MapReduce检索函数中,定义map的输入为〈图像ID,特征值〉,输出 为〈相似度,图像ID>,reduce端的输出为与用户提取的图像特征值相似度最高的〈相似 度,图像ID〉。
[0040] MapReduce检索函数的过程为:
[0041] (1)在map端,读取用户检索的图像,判断其是否满足检索条件,若满足则计算其 特征值,与分布式文件数据库中的图像进行特征相似度匹配计算,输出中间结果〈相似度, 图像ID>,将其写入本地存储器;若不满足检索条件,则输出空键值对。
[0042] (2)对map端输出的键值对〈相似度,图像ID>按照相似度进行分组和排序,然后 输入到reduce端。
[0043] (3)在reduce端,执行任务的reduce节点收集各个map节点任务的结果,并对匹 配结果按照相似度的值由大到小进行排序,然后将最终匹配结果的目标快照输出到HDFS 中。用户点击图像快照即可查看目标图像。
[0044] 对于数据存储,由集群服务器和终端接入到图像检索系统,作为数据存储层,集群 中对等的各个服务器节点由系统注册服务统一分配令牌号,通过一致性散列算法计算得到 各服务器的数据点存储范围。
[0045] 系统的数据存储流程可分为以下3步:
[0046] (1)终端通过轮询或事件触发方式获取当前实时数据,索引数据
[0047] (2)通过用户配置的数据点组态将实时数据上传至集群服务器。
[0048] (3)集群服务器的管理节点将实时数据中的数据点名转换为数据点ID,并按照一 致性散列算法建立数据点ID与物理服务器的映射,从而将数据发送至指定的服务器节点 中。
[0049] 为保障海量数据写入存储服务器的实时性,对数据上传机制进行如下优化:
[0050] (1)将终端进行分组,并按组名建立与物理服务器的映射,终端在向集群管理节点 进行存储定位后,直接连至指定的物理服务器,从而尽量减少不必要的数据转发。
[0051] (2)终端在数据写入第一个物理服务器的内存缓存后即认为写入成功,由该服务 器节点执行后继的冗余备份流程,从而减少了数据发送时的阻塞等待时间,在满足高可用 性的前提下提升了系统吞吐量。
[0052] 为保障数据服务的可用性,需要对历史数据存储进行冗余备份。系统默认的副本 数量为1,备份数据与主副本数据存储在不同的物理服务器,存储规则由主副本对应节点所 加载的脚本实现。
[0053] 当记录容量达到缓存页面大小后,或者超过最大缓存时间后,存储归档服务在执 行本地数据持久化的同时,将缓存数据发送至指定的备份节点。通过存储数据时附加的管 理信息进行数据一致性的快速判定和缺失数据的准确定位。
[0054] 当出现存储异常导致多个副本间产生差异时,需要数据存储检索机制支持备份同 步、差异快速定位。本发明利用基于多版本控制的数据管理:
[0055] 以固定长度的页面(通常为IkB或4kB)为最小单元进行数据管理,页面类型包括 数据记录页、索引信息页和版本信息页。数据记录页记录该数据点在某段时间的实时值、质 量码与建立时间,当该页记录过程发生异常时不会切换页面,而是使用累加的版本号和异 常发生时的页面记录偏移量进行标识;索引信息页记录了数据记录页的简要信息,如数据 记录页的版本变化标识、页面编号和时标索引等;版本信息页记录了各版本号对应的起止 时间、所关联的数据记录页起始编号及其页面记录偏移量等信息。各页面间以链表方式进 行关联,便于指定时间段存储数据的快速定位。
[0056] 由主副本对应节点在数据页写入磁盘的同时将其发送至指定的单个或多个备份 节点,从而实现多重副本的写入操作。各备份节点对接收到的数据记录页的处理流程与主 副本完全相同,并在页面成功写入磁盘后通过特定消息告知主副本对应节点。
[0057] 同时,在各备份节点定期进行自检操作,通过检测指定数据点所有版本编号的连 续性,以及各版本中所有数据记录页编号的连续性,可以快速确认是否存在数据缺失。如果 数据是完整的,则在结果文件中记录当前的检测位置,防止已检测的数据内容被重复检测, 否则将发起修复操作。
[0058] (1)与主副本对应节点进行协商,确定缺失的数据记录页对应的编号范围。
[0059] (2)向主副本对应节点请求缺失的数据记录页,在获取到所有页面后追加写入当 前归档文件,并修改索引信息页中维护的时标索引信息。
[0060] (3)如果存在版本号变化,则对应的版本信息页也将进行同步,以保证所有版本编 号的连续性。
[0061] 当用户在组态中添加节点时,集群管理节点通过一致性散列算法计算得到该新增 节点的数据存储范围。随后该新增节点向原主副本对应节点请求存储范围内的所有数据记 录页,而获取到数据记录页之后的处理流程与主副本完全相同。
[0062] 由于查询请求首先到达集群管理节点,需要由集群管理节点在处理查询请求时进 行负载均衡,防止某一存储服务器负荷过重,而对应的备份节点却处于空闲状态的现象发 生。集群管理节点确定查询目标服务器后,由查询客户端直接向对应的服务器进行本地查 询。
[0063] 进入本地数据查询流程后,通过相互链接的索引信息页中记录的时标索引,可以 快速定位到指定时间范围内的数据存储位置。如果页面的版本变化标识被设置,说明该页 面中混合存放有正常数据和异常数据,如果不加以区分而直接按时间顺序进行拟合,将产 生错误的拟合结果。
[0064] 通过版本信息页进行时序数据的版本控制,在版本发生变化的区间使用最新版本 的数据进行拟合,从而避免正常数据与异常数据混合交错导致错误的查询拟合结果。
[0065] 来自查询客户端的查询请求首先被提交给集群管理节点,由集群管理节点依据查 询时间长度决定是否将查询请求进行分解。如果查询时间跨度过大,则将原始查询请求按 时间范围分解为多个子查询请求,并按一致性散列算法指派给多个存储服务器节点。查询 客户端获取到应答信息后,与每个存储服务器节点建立直连,分别完成各自的本地数据查 询流程。如果不需要进行查询请求分解,则按负载均衡算法在主从备份节点中选择合适的 单个存储服务器进行后继查询。
[0066] 各数据存储服务器在接收到本地查询请求后,将依据版本信息页中的内容判断查 询时间范围内是否存在版本更新。如果该时间段内的过程数据属于同一版本,则直接由索 引信息页定位到实际存储位置进行数据读取,否则将按各版本更替时间点进行查询范围分 害J,各分割区间内使用最新版本的数据进行拟合,从而完成本地数据查询流程。
[0067] 根据上述分布式文件
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1