欢迎您访问广东某某机械环保科有限公司网站,公司主营某某机械、某某设备、某某模具等产品!
全国咨询热线: 400-123-4567

新闻资讯

哈希游戏| 哈希游戏平台| 哈希游戏APP

HAXIYOUXI-HAXIYOUXIPINGTAI-HAXIYOUXIAPP

哈希连接方法、计算节点、存储介质哈希游戏- 游戏平台- 官方网站及程序产品与流程

作者:小编2025-06-27 19:19:33

  哈希游戏- 哈希游戏平台- 哈希游戏官方网站

哈希连接方法、计算节点、存储介质哈希游戏- 哈希游戏平台- 哈希游戏官方网站及程序产品与流程

  26.本技术提供的哈希连接方法、计算节点、存储介质及程序产品,针对欲通过哈希连接确定第一数据表和第二数据表的连接关系的应用场景,在基于第一哈希函数对第一数据表进行哈希运算,得到对应的哈希表之后,基于该哈希表,进行布隆过滤器的动态构建,进而基于所构建的布隆过滤器进行第二数据表的过滤,通过哈希表与过滤后的第二数据表进行哈希连接,从而确定第一数据表与第二数据表之间的联系,即得到哈希连接表,以便于基于该哈希连接表进行后续的数据处理,如数据统计,通过基于动态布隆过滤器进行第二数据表的过滤,减少了第二数据表中的数据量,进而减少了第二数据表传输和探测的开销,提

  47.哈希连接的主要过程包括建立(build)过程和探测(probe)过程,在建立过程,针对哈希连接中数据量较小的数据表(如数据表1),记为右表,对其中的每个元组的连接属性采用哈希运算计算哈希值,从而构建对应的哈希表。在探测过程,针对哈希连接的另一数据表,即数据量较多的数据表(如数据表2),记为左表,扫描左表的每一行并计算连接属性的哈希值,与建立过程构建的哈希表对比,查找符合连接条件的记录,从而确定左表和右表的连接关系。

  51.为了提高哈希连接的效率,即为了减少哈希连接过程中传输的数据量,本技术提供了基于结合动态布隆过滤器的哈希连接方法,该方法的主要过程为基于哈希连接的右表(即后续的第一数据表),通常为哈希连接时数据量较少的数据表,在构建阶段生成的哈希表,构建一个动态的布隆过滤器,进而基于该动态的布隆过滤器对哈希连接的左表(即后续的第二数据表)中的元组进行过滤,从而减少左表的数据量,通过网络将过滤后的左表发送至右表所在的物理节点或进程,进而基于右表对应的哈希表与过滤后的左表,进行哈希连接,降低了左表传输的开销,同时减少了哈希连接时探测的数据量,进而提高了分布式数据库中数据表哈希连接的效率。

  68.由于第一子计算节点对应的哈希表在计算时仅基于第一哈希函数进行,导致布隆过滤器对应的哈希函数的数量k仅为一个,从而导致误判率较高。为了降低误判率,还可以获取至少一个第二哈希函数,基于第二哈希函数计算第一数据表中元组的第二哈希值,从而基于第一哈希值以及第二哈希值,进行布隆过滤器的构建。第二哈希函数的数量越多,则导致需要计算较多的第二哈希值,从而增加了布隆过滤器构建的开销,在布隆过滤器构建时,应综合考虑开销和误判率两方面的因素进行第二哈希函数数量的确定。

  76.示例性的,图3为本技术图2所示实施例中步骤s203的流程示意图,如图3所示,图3中以布隆过滤器为8位数组,且布隆过滤器的哈希函数个数为一个(即仅以第一哈希函数为布隆过滤器的哈希函数)为例,其中,基于哈希表所构建的布隆过滤器对应的位数组第2、4、7位的取值为1,其余各位的取值为0。若第二数据表中的一个元组,如x,通过第一哈希函数计算的哈希值对应的位数组的比特位为第3位,由于布隆过滤器对应的位数组第3位的取值为0,即表示该元组不存在于第一数据表中,则删除元组x。若第二数据表中的一个元组,如y,通过第一哈希函数计算的哈希值对应的位数组的比特位为第7位,由于布隆过滤器对应的位数组第7位的取值为1,即表示该元组可能存在于第一数据表中,则保留元组y。以此类推,从而删除第二数据表中映射的布隆过滤器的位数组的比特位的取值不均为1的元组。

  93.示例性的,图5为本技术图4所示实施例中子布隆过滤器全量传输方式的示意图,如图5所示,图5以2个计算节点为例,即seg1和seg2,图5中以子布隆过滤器的位数组为11位为例。每个计算节点,即seg1和seg2,构建对应的子布隆过滤器,即bloom1()和bloom2(),每个计算节点将本节点构建或生成的子布隆过滤器广播至其他计算节点,进而每一计算节点将子布隆过滤器相加,即bloom1+bloom2,便得到全局、完整的布隆过滤器()。

  106.示例性的,图7为本技术图6所示实施例中子布隆过滤器置位传输方式的示意图,如图7所示,图7以3个计算节点为例,即seg1至seg3,图7中子布隆过滤器的位数组为8位。每个计算节点将本节点构建或生成的子布隆过滤器的置位信息,广播至其他计算节点,进而每一计算节点,基于其他计算节点发送的置位信息以及本节点生的子布隆过滤器,便得到全局、完整的布隆过滤器,在图7中seg1、seg2和seg3的置位信息分别为(1,4)、(4,6)和(2,4),图7仅展示seg1生成完整的布隆过滤器的过程,具体为:seg1基于seg2发送的置位信息(4,6),以及seg2发送的置位信息(2,4),对seg1生成的子布隆过滤器进行置位,得到完整的布隆过滤器,得到完整的布隆过滤器,即“01101010”,其中,位数组第一个比特位为第0位。同样的,其他计算节点,即seg2和seg3采用类似方式得到完成的布隆过滤器。

  155.在一个实施例中,还可以将该哈希连接结果反馈至目标终端,目标终端可以为用户终端、在线.在本实施例中,针对对分布式数据中多个计算节点中存储的多组第一数据表和第二数据表进行哈希连接的应用场景,针对每个计算节点,在基于第一哈希函数对该计算节点对应的第一数据表进行哈希运算,得到对应的哈希表之后,基于该哈希表,进行该计算节点对应的子布隆过滤器的动态构建,基于分布情况,选择数据量较少的传输方式广播该子布隆过滤器至其他所需的计算节点,从而使得每个计算节点得到完整的布隆过滤器,以提高过滤的准确度;进而基于该完整的布隆过滤器进行各计算节点的第二数据表的过滤,通过哈希表与过滤后的第二数据表进行哈希连接,从而确定第一数据表与第二数据表之间的联系,即得到哈希连接表,通过基于动态布隆过滤器进行第二数据表的过滤,减少了第二数据表中的数据量,进而减少了第二数据表网络传输和探测的开销,提高了哈希连接的效率。

  164.过滤器广播模块,用于在根据所述计算节点对应的哈希表,生成所述计算节点对应的子布隆过滤器之后,分别计算以第一传输方式和第二传输方式传输子布隆过滤器所需的数据量;根据传输所需的数据量,从第一传输方式和第二传输方式中确定所述子布隆过滤器的目标传输方式;基于所述目标传输方式,广播所述计算节点对应的子布隆过滤器至其他计算节点;其中,基于第一传输方式广播所述计算节点对应的子布隆过滤器,包括:广播所述计算节点对应的子布隆过滤器至其他计算节点;基于第二传输方式广播所述计算节点对应的子布隆过滤器,包括:广播所述计算节点对应的子布隆过滤器的置位信息至其他计算节点;其中,置位信息用于描述对应的子布隆过滤器被置位的位置。

  181.应理解,上述处理器可以是中央处理单元(central processing unit,简称cpu),还可以是其它通用处理器、数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。

  186.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例提供的方法。