CN113535719A - 数据过滤方法、数据过滤装置、存储介质及产品 - Google Patents

数据过滤方法、数据过滤装置、存储介质及产品 Download PDF

Info

Publication number
CN113535719A
CN113535719A CN202110769221.5A CN202110769221A CN113535719A CN 113535719 A CN113535719 A CN 113535719A CN 202110769221 A CN202110769221 A CN 202110769221A CN 113535719 A CN113535719 A CN 113535719A
Authority
CN
China
Prior art keywords
filter
data
target data
filtering
attribute information
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.)
Pending
Application number
CN202110769221.5A
Other languages
English (en)
Inventor
郑宁
熊中哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ruizhe Hangzhou Technology Co ltd
Original Assignee
Ruizhe Hangzhou Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ruizhe Hangzhou Technology Co ltd filed Critical Ruizhe Hangzhou Technology Co ltd
Priority to CN202110769221.5A priority Critical patent/CN113535719A/zh
Publication of CN113535719A publication Critical patent/CN113535719A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据过滤方法、数据过滤装置、存储介质及产品。该方法包括:接收主机端设备发送的过滤器和右表对应的属性信息,所述过滤器由所述主机端设备根据左表构建获得;根据所述过滤器和所述属性信息获得目标数据块,并将所述目标数据块发送至所述主机端设备。本发明方法中,由可计算存储设备对数据进行过滤操作,过滤操作不需要在主机端进行,从而减小主机端CPU的计算压力,同时节省总线带宽和内存带宽的占用量。

Description

数据过滤方法、数据过滤装置、存储介质及产品
技术领域
本发明涉及通信技术,尤其涉及一种数据过滤方法、数据过滤装置、存储介质及产品。
背景技术
多表连接是当前数据库处理中常见的一种操作,当参与连接的表大小相差很多而且数据没有排序和索引的情况下,常使用哈希连接的方式进行多表之间的连接。
现有的哈希连接,主机会选择一个数据量小的表作为左表,然后根据左表对右表进行过滤找到符合哈希连接的数据。
而右表的数据量远大于左表,主机在建立哈希连接时的数据过滤会给主机CPU带来很大的计算压力,主机读取右表的数据使得带宽占用量较大。
发明内容
本发明提供一种数据过滤方法、数据过滤装置、存储介质及产品,用以解决哈希连接的数据过滤使主机CPU计算压力增大,同时导致带宽占用量较大的问题。
第一方面,本发明提供一种数据过滤方法,包括:
接收主机端设备发送的过滤器和右表对应的属性信息,所述过滤器由所述主机端设备根据左表构建获得;
根据所述过滤器和所述属性信息获得目标数据块,并将所述目标数据块发送至所述主机端设备。
第二方面,本发明提供一种数据过滤方法,包括:
接收哈希连接请求,解析所述请求获取右表对应的属性信息和左表;
根据所述左表构建对应的过滤器;
将所述过滤器和所述属性信息发送至可计算存储设备,以供所述可计算存储设备根据所述过滤器和所述属性信息获得目标数据块并反馈所述目标数据块。
第三方面,本发明提供一种数据过滤装置,包括:
信息接收单元,用于接收主机端设备发送的过滤器和右表对应的属性信息,所述过滤器由所述主机端设备根据左表构建获得;
数据获取单元,用于根据所述过滤器和所述属性信息获得目标数据块;
数据发送单元,用于将所述目标数据块发送至所述主机端设备。
第四方面,本发明提供一种数据过滤装置,包括:
请求接收单元,用于接收哈希连接请求;
数据获取单元,用于解析所述请求获取右表对应的属性信息和左表;
过滤器构建单元,用于根据所述左表构建对应的过滤器;
信息发送单元,用于将所述过滤器和所述属性信息发送至可计算存储设备,以供所述可计算存储设备根据所述过滤器和所述属性信息获得目标数据块并反馈所述目标数据块。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面或第二方面所述的方法。
第五方面,本发明实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面或第二方面所述的方法。
本发明提供的一种数据过滤方法、数据过滤装置、存储介质及产品,通过接收主机端设备发送的过滤器和右表对应的属性信息,其中,过滤器由主机端设备根据左表构建获得,进一步根据过滤器和属性信息获得目标数据块,并将目标数据块发送至所述主机端设备。主机端设备不进行数据过滤,由可计算存储设备进行数据过滤,从而可减小主机端CPU的计算压力,同时减少右表回传到主机端的数据量,可节省总线带宽占用量,主机端不需要直接读取右表数据,还可节省内存带宽的占用量。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本发明提供的数据过滤方法的网络架构示意图;
图2是本发明实施例一提供的数据过滤方法的流程示意图;
图3是本发明实施例二提供的数据过滤方法的流程示意图;
图4是本发明实施例三提供的数据过滤方法的流程示意图;
图5是本发明截取初始数据示意图;
图6是本发明实施例四提供的数据过滤方法的流程示意图;
图7是本发明实施例七提供的数据过滤方法的流程示意图;
图8是本发明实施例中主机端设备与可计算存储设备功能示意图;
图9是本发明实施例十提供的数据过滤方法的流程示意图;
图10是本发明一实施例提供的数据过滤装置的结构示意图;
图11是本发明又一实施例提供的数据过滤装置的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
现有技术中,多表的连接是当前数据库处理中常见的一种操作,当参与连接的表大小相差很多,数据又没有排序和索引的情况下,哈希连接是很好的选择,对于常见的两张表之间的哈希连接,主机先读取数据量较小的左表,然后根据连接条件在内存中生成一张对应的哈希表,然后读取数据量较大的右表,扫描并探测右表的数据元素是否在哈希表中,若不存在,则右表中对应的数据元素不符合连接条件,可以直接舍弃,若存在,则右表中对应的数据元素符合连接条件。
而在哈希连接的过程中,右表的每一个数据都需要进行哈希操作和判断,而右表的数据量远大于左表的数据量,因此会对主机的CPU带来很大的计算压力。主机端和存储设备之间通过总线连接,主机端需要读取存储设备中的右表数据,大量数据回传至主机端,导致总线带宽占用量较大,而且主机端将读取的右表数据放置在内存中,使得内存带宽占用量较大。
所以针对现有技术中存在的哈希连接的数据过滤使主机CPU计算压力增大,导致带宽占用量较大的技术问题,发明人在研究中发现,利用可计算存储设备中的计算能力,主机将过滤器发送给可计算存储设备,可计算存储设备对右表数据进行过滤,从而可减小主机端CPU的计算压力,同时减少右表回传到主机端的数据量,可节省总线带宽占用量,主机端不需要直接读取右表数据,还可节省内存带宽的占用量,最终通过可计算存储设备的辅助过滤操作提升数据库哈希连接的性能。
所以发明人基于上述的创造性发现,提出了本发明实施例的技术方案。下面对本发明实施例提供的数据过滤方法的网络架构及应用场景进行介绍。
如图1所示,本发明实施例提供的数据过滤方法对应的网络架构中包括:可计算存储设备1及主机端设备2,可计算存储设备1为主机端设备2的外存,可计算存储设备1与主机端设备2可通过总线连接。主机端设备2具有显示装置,主机端设备2中预先安装有数据过滤方法对应的客户端,用户可通过显示装置查看客户端,用户在客户端的操作界面中点击哈希连接的链接或图标,来触发哈希连接请求,主机端设备2接收哈希连接请求并对哈希连接请求进行解析,获得右表对应的属性信息和左表。主机端设备2根据左表构建过滤器,并将过滤器和右表对应的属性信息发送至可计算存储设备1。可计算存储设备1根据过滤器和右表对应的属性信息获得目标数据块,并将目标数据块发送至主机端设备2。主机端设备不进行数据过滤,由可计算存储设备进行数据过滤,从而可减小主机端CPU的计算压力,同时减少右表回传到主机端的数据量,可节省总线带宽占用量,主机端不需要直接读取右表数据,还可节省内存带宽的占用量。
所以发明人基于上述的创造性发现,提出了本发明实施例的技术方案。
以下将参照附图来具体描述本发明的实施例。
实施例一
图2是本发明实施例一提供的数据过滤方法的流程示意图,如图2所示,本实施例提供的数据过滤方法的执行主体为数据过滤装置,本实施例提供的数据过滤方法包括以下步骤:
步骤101,接收主机端设备发送的过滤器和右表对应的属性信息,过滤器由主机端设备根据左表构建获得。
本实施例中,过滤器包括哈希表对应的过滤器以及布隆过滤器,过滤器由主机端设备构建而成,具体的,主机端设备根据左表构建过滤器。主机端设备接收哈希连接请求,对哈希连接请求进行解析,可获得右表对应的属性信息,主机端设备将构建的过滤器和右表对应的属性信息发送至可计算存储设备,可计算存储设备接收过滤器和右表对应的属性信息。
步骤102,根据过滤器和属性信息获得目标数据块,并将目标数据块发送至主机端设备。
本实施例中,根据过滤器和右表对应的属性信息获得目标数据块,其中,右表对应的属性信息包括数据类型和逻辑块信息,将获得的目标数据块发送至主机端设备,完成哈希连接。
其中,目标数据块是将目标数据封装后得到的数据块,数据块是一组或几组按顺序连续排列在一起的记录,是主存储器与输入设备、输出设备或外存储器之间进行传输的数据单位。
本实施例中,主机端设备不进行数据过滤,由可计算存储设备进行数据过滤,从而可减小主机端CPU的计算压力,同时减少右表回传到主机端的数据量,可节省总线带宽占用量,主机端不需要直接读取右表数据,还可节省内存带宽的占用量。
实施例二
图3是本发明实施例二提供的数据过滤方法的流程示意图,如图3所示,在本发明实施例一提供的数据过滤方法的基础上,对步骤102中根据过滤器和属性信息获得目标数据进行了进一步的细化,包括以下步骤:
步骤1021,根据逻辑块信息在预存的右表中截取对应的初始数据。
本实施例中,右表对应的属性信息包括逻辑块信息和数据类型,根据逻辑块信息在预存的右表中可截取数据,将截取的数据作为初始数据。
其中,逻辑块是指存储在磁盘或者磁带上的数据块,该数据块具有一个用以检索或重写的地址。
步骤1022,根据数据类型对初始数据进行解析获得解析后的初始数据。
步骤1023,采用过滤器对解析后的初始数据进行过滤获得目标数据。
本实施例中,过滤器包括两种类型,分别是哈希表对应的过滤器以及布隆过滤器,对于过滤器的选择可由用户选择或主机端设备选择,若主机端设备解析哈希连接请求获得过滤器类型,则按照用户指定类型构建过滤器,若主机端设备解析哈希连接请求未获得过滤器类型,则主机端任选一种过滤器类型构建过滤器。采用过滤器对解析后的初始数据进行过滤得到目标数据。
步骤1024,对目标数据按照预设的数据块封装策略进行封装获得目标数据块。
本实施例中,对目标数据按照预设的数据块封装策略进行封装从而获得目标数据块,将数据块发送至主机端设备。
其中,数据块是一组或几组按顺序连续排列在一起的记录,是主存储器与输入设备、输出设备或外存储器之间进行传输的数据单位。
实施例三
图4是本发明实施例三提供的数据过滤方法的流程示意图,如图4所示,在本发明实施例二提供的数据过滤方法的基础上,对步骤1021进一步的细化,包括以下步骤:
步骤1022a,根据逻辑块地址在预存的右表中进行查找获得与逻辑块地址对应的逻辑块数据。
本实施例中,逻辑块信息包括逻辑块地址、偏移量和长度,可计算存储设备预先存储有右表,根据逻辑块地址在预存的右表中查找数据,查找到与逻辑块地址对应的逻辑块数据。
其中,逻辑块地址(Logical Block Address,LBA)是描述计算机存储设备上数据所在区块的通用机制,一般用在像硬盘这样的辅助记忆设备。LBA可以意指某个数据区块的地址或是某个地址所指向的数据区块。LBA是非常单纯的一种定址模式﹔从0开始编号来定位区块,第一区块LBA=0,第二区块LBA=1,依此类推。
步骤1022b,根据偏移量和长度在逻辑块数据中截取对应的初始数据。
本实施例中,根据偏移量和长度在逻辑块数据中截取对应的初始数据,如图5所示,逻辑块包括LBA0-LBA3,每个逻辑块为4KB,总长度为16KB,偏移量为2KB,长度为11KB,初始数据从LBA0的2KB处开始到LBA3的1KB处结束。
实施例四
图6是本发明实施例四提供的数据过滤方法的流程示意图,如图6所示,在本发明实施例二提供的数据过滤方法的基础上,对步骤1023进一步的细化,包括以下步骤:
步骤1023a,确定过滤器对应的过滤器类型,并根据过滤器类型确定对应的过滤策略。
本实施例中,过滤器包括两种类型,分别是哈希表对应的过滤器以及布隆过滤器,对于过滤器的选择可由用户选择或主机端设备选择,用户可根据需求自行选择,主机端设备可根据左表数据量大小选择适合的过滤器,若左表的数据量大于预设值,可选择布隆过滤器进行过滤;若左表的数据量小于或等于预设值,可选择哈希表作为过滤器,即哈希表对应的过滤器。不同过滤器类型对应不同的过滤策略。
步骤1023b,根据过滤策略对解析后的初始数据进行过滤获得目标数据。
本实施例中,根据过滤策略对解析后的初始数据进行过滤从而获得目标数据,具体地,哈希表对应的过滤器策略为第一过滤策略,布隆过滤器对应的过滤策略为第二过滤策略。
可选地,步骤1023a中根据过滤器类型确定对应的过滤策略包括:
步骤1001,若过滤器类型为哈希表对应的过滤器,则确定对应的过滤策略为哈希表对应的第一过滤策略。
本实施例中,若过滤器类型为哈希表对应的过滤器,说明是使用哈希表作为过滤器,此时确定对应的过滤策略为哈希表对应的第一过滤策略。
步骤1002,若过滤器类型为布隆过滤器,则确定对应的过滤策略为布隆过滤器对应的第二过滤策略。
本实施例中,若过滤器类型为布隆过滤器,此时确定对应的过滤策略为布隆过滤器对应的第二过滤策略。
需要说明的是,在数据量较大的时候,可选择布隆过滤器进行过滤,再结合哈希表进行过滤。
实施例五
在本发明实施例四提供的数据过滤方法的基础上,对步骤1023b进一步的细化,包括以下步骤:
步骤1003,确定解析后的初始数据是否与哈希表中的数据匹配。
本实施例中,若过滤策略为第一过滤策略,根据第一过滤策略对解析后的初始数据进行过滤获得目标数据,具体地,确定解析后的初始数据是否与哈希表中的数据匹配,可以直接进行比对,哈希表是一种特殊的数据结构,它里面按一定顺序保存了左表所有的相关数据,所以探测右表的初始数据时,只需查看哈希表里有没有与初始数据一样的数据即可。
步骤1004,若是,则将匹配的初始数据确定为目标数据。
本实施例中,若解析后的初始数据与哈希表中的数据匹配,说明初始数据与哈希表中数据一致,则将匹配的初始数据确定为目标数据。
可选地,对步骤1023b进一步的细化,包括以下步骤:
步骤1005,确定解析后的初始数据对应的比特位是否置1。
本实施例中,若过滤策略为第二过滤策略,根据第二过滤策略对解析后的初始数据进行过滤获得目标数据,具体地,确定解析后的初始数据对应的所有比特位是否置1。
步骤1006,若是,则将该初始数据确定为目标数据。
本实施例中,在探测时,每拿一个右表中初始数据,就查看这个数据对应的布隆滤波器中的比特位是否置为了1,如果都置为了1,说明很大概率上这个数据可能在左表里,如果没有置为1,这个数据一定不在左表里。若解析后的初始数据对应的所有比特位均置为了1,则将该初始数据确定为目标数据。
实施例六
在本发明实施例二提供的数据过滤方法的基础上,对步骤1024进一步的细化,包括以下步骤:
步骤1024a,将目标数据存放至缓存空间中,在缓存空间中将目标数据按照预设的数据块封装策略中配置的有效数据长度、目标数据、书元素个数和原始校验码进行封装获得目标数据块。
本实施例中,可计算存储设备可预先申请在其内部申请相应的缓存空间,用于存放符合过滤器的过滤结果,具体地,将目标数据存放至缓存空间中,在缓存空间中将目标数据按照预设数据块封装策略中配置的有效数据长度、目标数据、目标数据长度以及原始校验码进行封装,从而获得目标数据块。
其中,原始校验码用于验证,目标数据块在传输时可能会出现传输错误,导致可计算存储设备发送的数据块和主机端设备接收的数据块不一致,因此将原始校验码与数据一同封装,以供主机端设备对目标数据块进行验证。本实施例中,对目标数据块对应的目标数据进行验证,可确保数据的正确性。
实施例七
图7是本发明实施例七提供的数据过滤方法的流程示意图,如图7所示,本实施例提供的数据过滤方法的执行主体为数据过滤装置,本实施例提供的数据过滤方法包括以下步骤:
步骤201,接收哈希连接请求,解析请求获取右表对应的属性信息和左表。
本实施例中,数据过滤装置位于主机端设备中,主机端设备接收哈希连接请求,对哈希连接请求进行解析,获得右表对应的属性信息和左表,属性信息包括逻辑块信息和数据类型,逻辑块信息包括逻辑块地址、偏移量和长度。
其中,哈希连接是数据库中的常用操作,哈希连接的对象是两个数据表,首先选择出其中一个小表,这里的小表指的是参与连接操作的数据集合中数据量较小的表,将小表作为左表。对连接列字段的所有数据值,进行哈希函数操作。哈希函数是计算机科学中经常使用到的一种处理函数。哈希函数处理过的数据特征是相同数据值的哈希函数值一定相同,不同数据值的哈希函数值可能相同。
步骤202,根据左表构建对应的过滤器。
本实施例中,过滤器包括两种类型,分别是哈希表对应的过滤器和布隆过滤器,可根据左表构建哈希表对应的过滤器,或根据左表构建布隆过滤器。
步骤203,将过滤器和属性信息发送至可计算存储设备,以供可计算存储设备根据过滤器和属性信息获得目标数据块并反馈目标数据块。
本实施例中,将过滤器和右表对应的属性信息发送至可计算存储设备,可计算存储设备根据过滤器和右表属性信息获得目标数据块,可计算存储设备将目标数据块反馈给主机端设备。
本实施例中,主机端为可计算存储设备提供过滤器,可计算存储设备对数据进行过滤操作,过滤操作不需要在主机端进行,从而减小主机端CPU的计算压力,同时节省总线带宽和内存带宽的占用量,通过可计算存储设备的辅助过滤操作提升哈希连接的性能。
实施例八
在本发明实施例七提供的数据过滤方法的基础上,对步骤202进一步的细化,包括以下步骤:
步骤2021,根据左表和连接请求对应的连接条件构建哈希表,并根据哈希表构建对应的过滤器;
或根据左表构建对应的布隆过滤器。
本实施例中,接收哈希连接请求后,对该连接请求进行解析可获取连接条件、左表和右表对应的属性信息,主机端设备读取左表,并根据连接条件在内存中生成对应的哈希表,或者根据左表直接构建对应的布隆过滤器。
优选地,可参见图8,主机端设备与可计算存储设备通过总线连接,主机端设备接收哈希连接请求,解析哈希连接请求获得得左表和右表对应的属性信息,根据左表建立哈希表,根据哈希表构建过滤器或者直接根据左表构建过滤器,将右表对应的属性信息和过滤器发送至可计算存储设备,可计算存储设备在存储介质中读取右表,采用过滤器以及根据右表对应的属性信息在右表中得到目标数据,将目标数据放入申请的缓存空间中进行封装,获得目标数据块,将目标数据块发送至主机端设备的内存空间中,主机端设备根据目标数据块进行进一步的操作。
实施例九
在本发明实施例七提供的数据过滤方法的基础上,步骤203之后,还包括以下步骤:
步骤2041,对目标数据块进行验证。
本实施例中,目标数据块中包括原始校验码,原始校验码用于验证,目标数据块在传输时可能会出现传输错误,导致可计算存储设备发送的数据块和主机端设备接收的数据块不一致,主机端设备需对目标数据块进行验证。对目标数据块对应的目标数据进行验证,可确保后续操作中数据的正确性。
步骤2042,若验证通过,则根据过滤器类型确定是否对目标数据块对应的目标数据进行过滤。
本实施例中,若验证通过,根据过滤器类型确定是否需要对目标数据块对应的目标数据进行过滤,也就是二次过滤,在使用布隆过滤器时,不能确保对应的目标数据一定与左表数据一致,所以还需要结合哈希表再次进行过滤。
步骤2043,若过滤器类型为布隆过滤器,则根据左表和连接请求对应的连接条件构建哈希表,根据哈希表对目标数据进行过滤获得过滤后的数据,并进行哈希连接之后的操作。
本实施例中,若过滤器类型为布隆过滤器,还需要进行二次过滤,根据左表和连接请求对应的连接条件构建哈希表,根据哈希表对目标数据进行过滤,将目标数据块对应的目标数据与哈希表中的数据进行比对,保留目标数据中与哈希表中的数据一致的数据。
步骤2044,若过滤器类型为哈希表对应的过滤器,则确定目标数据对应的目标数据不需要过滤。
本实施例中,若过滤器类型为哈希表对应的过滤器,则该过滤器可以从右表中精确地过滤出满足要求的所有数据,因此不需要再进行二次过滤,直接进行哈希连接之后的操作。
实施例十
图9是本发明实施例十提供的数据过滤方法的流程示意图,如图9所示,在本发明实施例九提供的数据过滤方法的基础上,对步骤2041进一步的细化,包括以下步骤:
步骤2041a,解析目标数据块获得目标数据和原始校验码,并根据目标数据生成新的校验码。
本实施例中,解析目标数据块获得目标数据、原始校验码、有效数据长度、目标数据、目标数据个数,并根据目标数据生成新的校验码,将新的校验码与原始校验码比较,根据比较结果确定验证是否通过。
步骤2041b,若原始校验码与新的校验码一致,则确定目标数据验证通过。
本实施例中,若原始校验码和新的校验码一致,说明可计算存储设备发送的目标数据块与主机端设备接收的目标数据块一致,数据在传输中没有出错,确定目标数据验证通过。
步骤2041c,若原始校验码与新的校验码不一致,则确定目标数据验证未通过。
本实施例中,若原始校验码和新的校验码不一致,说明可计算存储设备发送的目标数据块与主机端设备接收的目标数据块不一致,数据在传输中出错,确定目标数据验证未通过。
本实施例中,对目标数据块对应的目标数据进行验证,可确保后续操作数据的正确性。
图10是本发明一实施例提供的数据过滤装置300的结构示意图,如图10所示,本实施例提供的数据过滤装置包括信息接收单元301,数据获取单元302,数据发送单元303。
其中,信息接收单元301,用于接收主机端设备发送的过滤器和右表对应的属性信息,过滤器由主机端设备根据左表构建获得。数据获取单元302,用于根据过滤器和属性信息获得目标数据块。数据发送单元301,用于将目标数据块发送至主机端设备。
可选地,数据获取单元302包括截取模块,解析模块,过滤模块和封装模块。
其中,截取模块,用于根据逻辑块信息在预存的右表中截取对应的初始数据。解析模块,用于根据数据类型对初始数据进行解析获得解析后的初始数据。过滤模块,用于采用过滤器对解析后的初始数据进行过滤获得目标数据。封装模块,用于对目标数据按照预设的数据块封装策略进行封装获得目标数据块。
可选地,截取模块,还用于根据逻辑块地址在预存的右表中进行查找获得与逻辑块地址对应的逻辑块数据;根据偏移量和长度在逻辑块数据中截取对应的初始数据。
可选地,过滤模块,还用于确定过滤器对应的过滤器类型,并根据过滤器类型确定对应的过滤策略;根据过滤策略对解析后的初始数据进行过滤获得目标数据。
可选地,过滤模块,还用于若过滤器类型为哈希表对应的过滤器,则确定对应的过滤策略为哈希表对应的第一过滤策略;若过滤器类型为布隆过滤器,则确定对应的过滤策略为布隆过滤器对应的第二过滤策略。
可选地,过滤模块,还用于确定解析后的初始数据是否与哈希表中的数据匹配;若是,则将匹配的初始数据确定为目标数据。确定解析后的初始数据对应的比特位是否置1;若是,则将该初始数据确定为目标数据。
可选地,封装模块,还用于将目标数据存放至缓存空间中,在缓存空间中将目标数据按照预设的数据块封装策略中配置的有效数据长度、目标数据、目标数据个数和原始校验码进行封装获得目标数据块。
图11是本发明又一实施例提供的数据过滤装置400的结构示意图,如图11所示,本实施例提供的数据过滤装置包括请求接收单元401,数据获取单元402,过滤器构建单元403,信息发送单元404。
其中,请求接收单元401,用于接收哈希连接请求。数据获取单元402,用于解析请求获取右表对应的属性信息和左表。过滤器构建单元403,用于根据左表构建对应的过滤器。信息发送单元404,用于将过滤器和属性信息发送至可计算存储设备,以供可计算存储设备根据过滤器和属性信息获得目标数据块并反馈目标数据块。
可选地,过滤器构建单元403,还用于根据左表和连接请求对应的连接条件构建哈希表,并根据哈希表构建对应的过滤器;或根据左表构建对应的布隆过滤器。
可选地,数据过滤装置400还包括验证模块、判定模块和构建模块。
其中,验证模块用于,对目标数据块进行验证。判定模块,还用于若验证通过,则根据过滤器类型确定是否对目标数据块对应的目标数据进行过滤。若过滤器类型为哈希表对应的过滤器,则确定目标数据对应的目标数据不需要过滤。构建模块,用于若过滤器类型为布隆过滤器,则根据左表和连接请求对应的连接条件构建哈希表,根据哈希表对目标数据进行过滤获得过滤后的数据。
可选地,验证模块还用于,解析目标数据块获得目标数据和原始校验码,并根据目标数据生成新的校验码;若原始校验码与新的校验码一致,则确定目标数据验证通过;若原始校验码与新的校验码不一致,则确定目标数据验证未通过。
在示例性实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现上述任一实施例的方法。
在示例性实施例中,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行上述任一实施例的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。

Claims (15)

1.一种数据过滤方法,其特征在于,所述方法包括:
接收主机端设备发送的过滤器和右表对应的属性信息,所述过滤器由所述主机端设备根据左表构建获得;
根据所述过滤器和所述属性信息获得目标数据块,并将所述目标数据块发送至所述主机端设备。
2.根据权利要求1所述的方法,其特征在于,所述右表对应的属性信息包括逻辑块信息和数据类型,所述根据所述过滤器和属性信息获得目标数据,包括:
根据所述逻辑块信息在预存的右表中截取对应的初始数据;
根据所述数据类型对所述初始数据进行解析获得解析后的初始数据;
采用所述过滤器对所述解析后的初始数据进行过滤获得目标数据;
对所述目标数据按照预设的数据块封装策略进行封装获得目标数据块。
3.根据权利要求2所述的方法,其特征在于,所述逻辑块信息包括逻辑块地址、偏移量和长度,所述根据所述逻辑块信息在预存的右表中截取对应的初始数据,包括:
根据所述逻辑块地址在预存的右表中进行查找获得与逻辑块地址对应的逻辑块数据;
根据所述偏移量和所述长度在所述逻辑块数据中截取对应的初始数据。
4.根据权利要求2所述的方法,其特征在于,所述采用所述过滤器对所述解析后的初始数据进行过滤获得目标数据,包括:
确定所述过滤器对应的过滤器类型,并根据所述过滤器类型确定对应的过滤策略;
根据所述过滤策略对所述解析后的初始数据进行过滤获得目标数据。
5.根据权利要求4所述的方法,其特征在于,所述根据所述过滤器类型确定对应的过滤策略,包括:
若过滤器类型为哈希表对应的过滤器,则确定对应的过滤策略为哈希表对应的第一过滤策略;
若过滤器类型为布隆过滤器,则确定对应的过滤策略为布隆过滤器对应的第二过滤策略。
6.根据权利要求5所述的方法,其特征在于,若所述过滤策略为所述第一过滤策略,所述根据所述过滤策略对所述解析后的初始数据进行过滤获得目标数据,包括:
确定所述解析后的初始数据是否与所述哈希表中的数据匹配;
若是,则将匹配的初始数据确定为所述目标数据;
若所述过滤策略为所述第二过滤策略,所述根据所述过滤策略对所述解析后的初始数据进行过滤获得目标数据,包括:
确定所述解析后的初始数据对应的比特位是否置1;
若是,则将该初始数据确定为所述目标数据。
7.根据权利要求2所述的方法,其特征在于,所述对所述目标数据按照预设的数据块封装策略进行封装获得目标数据块,包括:
将所述目标数据存放至缓存空间中,在所述缓存空间中将所述目标数据按照预设的数据块封装策略中配置的有效数据长度、目标数据、目标数据个数和原始校验码进行封装获得目标数据块。
8.一种数据过滤方法,其特征在于,所述的方法包括:
接收哈希连接请求,解析所述请求获取右表对应的属性信息和左表;
根据所述左表构建对应的过滤器;
将所述过滤器和所述属性信息发送至可计算存储设备,以供所述可计算存储设备根据所述过滤器和所述属性信息获得目标数据块并反馈所述目标数据块。
9.根据权利要求8所述的方法,其特征在于,所述根据所述左表构建对应的过滤器,包括:
根据所述左表和所述连接请求对应的连接条件构建哈希表,并根据所述哈希表构建对应的过滤器;
或根据所述左表构建对应的布隆过滤器。
10.根据权利要求8所述的方法,其特征在于,所述将所述过滤器和所述属性信息发送至可计算存储设备之后,包括:
对所述目标数据块进行验证;
若验证通过,则根据过滤器类型确定是否对所述目标数据块对应的目标数据进行过滤;
若过滤器类型为布隆过滤器,则根据所述左表和所述连接请求对应的连接条件构建哈希表,根据所述哈希表对所述目标数据进行过滤获得过滤后的数据;
若过滤器类型为哈希表对应的过滤器,则确定所述目标数据对应的目标数据不需要过滤。
11.根据权利要求10所述的方法,其特征在于,所述对所述目标数据块进行验证,包括:
解析所述目标数据块获得目标数据和原始校验码,并根据所述目标数据生成新的校验码;
若所述原始校验码与所述新的校验码一致,则确定所述目标数据验证通过;
若所述原始校验码与所述新的校验码不一致,则确定所述目标数据验证未通过。
12.一种数据过滤装置,其特征在于,所述装置包括:
信息接收单元,用于接收主机端设备发送的过滤器和右表对应的属性信息,所述过滤器由所述主机端设备根据左表构建获得;
数据获取单元,用于根据所述过滤器和所述属性信息获得目标数据块;
数据发送单元,用于将所述目标数据块发送至所述主机端设备。
13.一种数据过滤装置,其特征在于,所述装置包括:
请求接收单元,用于接收哈希连接请求;
数据获取单元,用于解析所述请求获取右表对应的属性信息和左表;
过滤器构建单元,用于根据所述左表构建对应的过滤器;
信息发送单元,用于将所述过滤器和所述属性信息发送至可计算存储设备,以供所述可计算存储设备根据所述过滤器和所述属性信息获得目标数据块并反馈所述目标数据块。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7或8-11中任一项所述的方法。
15.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如权利要求1-7或8-11中任一项所述的方法。
CN202110769221.5A 2021-07-07 2021-07-07 数据过滤方法、数据过滤装置、存储介质及产品 Pending CN113535719A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110769221.5A CN113535719A (zh) 2021-07-07 2021-07-07 数据过滤方法、数据过滤装置、存储介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110769221.5A CN113535719A (zh) 2021-07-07 2021-07-07 数据过滤方法、数据过滤装置、存储介质及产品

Publications (1)

Publication Number Publication Date
CN113535719A true CN113535719A (zh) 2021-10-22

Family

ID=78127036

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110769221.5A Pending CN113535719A (zh) 2021-07-07 2021-07-07 数据过滤方法、数据过滤装置、存储介质及产品

Country Status (1)

Country Link
CN (1) CN113535719A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294554A (zh) * 2012-03-05 2013-09-11 中兴通讯股份有限公司 片上系统soc的多处理器的调度方法及装置
US20160292229A1 (en) * 2015-03-30 2016-10-06 Samsung Electronics Co., Ltd. Storage system and method of operating the same
CN107451090A (zh) * 2016-06-01 2017-12-08 华为技术有限公司 数据处理系统和数据处理方法
CN108182084A (zh) * 2017-12-28 2018-06-19 中国科学院计算技术研究所 哈希混合加速系统及应用其进行哈希连接的方法
US20200034361A1 (en) * 2018-07-26 2020-01-30 ScaleFlux, Inc. Using in-storage computation to improve the performance of hash join for database and data analytics
US10642840B1 (en) * 2018-03-07 2020-05-05 Amazon Technologies, Inc. Filtered hash table generation for performing hash joins
CN111737005A (zh) * 2020-06-30 2020-10-02 中国平安财产保险股份有限公司 任务处理方法、装置、计算机设备和存储介质
WO2021066257A1 (ko) * 2019-10-01 2021-04-08 인하대학교 산학협력단 블룸 필터를 이용한 효율적인 랜섬웨어 탐지 방법 및 시스템

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294554A (zh) * 2012-03-05 2013-09-11 中兴通讯股份有限公司 片上系统soc的多处理器的调度方法及装置
US20160292229A1 (en) * 2015-03-30 2016-10-06 Samsung Electronics Co., Ltd. Storage system and method of operating the same
CN107451090A (zh) * 2016-06-01 2017-12-08 华为技术有限公司 数据处理系统和数据处理方法
CN108182084A (zh) * 2017-12-28 2018-06-19 中国科学院计算技术研究所 哈希混合加速系统及应用其进行哈希连接的方法
US10642840B1 (en) * 2018-03-07 2020-05-05 Amazon Technologies, Inc. Filtered hash table generation for performing hash joins
US20200034361A1 (en) * 2018-07-26 2020-01-30 ScaleFlux, Inc. Using in-storage computation to improve the performance of hash join for database and data analytics
WO2021066257A1 (ko) * 2019-10-01 2021-04-08 인하대학교 산학협력단 블룸 필터를 이용한 효율적인 랜섬웨어 탐지 방법 및 시스템
CN111737005A (zh) * 2020-06-30 2020-10-02 中国平安财产保险股份有限公司 任务处理方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN106936441B (zh) 一种数据压缩方法和装置
US20170132260A1 (en) Data storage method and apparatus
US10649997B2 (en) Method, system and computer program product for performing numeric searches related to biometric information, for finding a matching biometric identifier in a biometric database
CN109857744B (zh) 稀疏张量计算方法、装置、设备及存储介质
CN110851474A (zh) 数据查询方法、数据库中间件、数据查询设备及存储介质
CN112579595A (zh) 数据处理方法、装置、电子设备及可读存储介质
CN111475105A (zh) 监控数据存储方法、设备、服务器及存储介质
CN111459919A (zh) 数据查询方法、加载组件、搜索组件和存储介质
CN116340367B (zh) 数据查询方法、装置、设备和存储介质
CN110222046B (zh) 列表数据的处理方法、装置、服务器和存储介质
CN107783728B (zh) 数据存储方法、装置和设备
CN111475402A (zh) 程序功能的测试方法及相关装置
CN104598409B (zh) 一种处理输入输出请求的方法及设备
CN108776665B (zh) 一种数据处理方法及装置
US20160203149A1 (en) File scanning method and apparatus related application
CN105975498A (zh) 数据查询的方法、装置和系统
CN113177045A (zh) 数据提取方法、装置、可计算存储设备及数据请求设备
CN113535719A (zh) 数据过滤方法、数据过滤装置、存储介质及产品
US10212036B2 (en) Performance testing method, performance testing apparatus performing the same and storage medium storing the same
CN108073709B (zh) 一种数据记录的操作方法、装置、设备和存储介质
CN106446080B (zh) 数据查询的方法、查询服务设备、客户端设备和数据系统
CN114238264A (zh) 数据处理方法、装置、计算机设备和存储介质
CN106547531B (zh) 基于php的应用性能管理方法及其模块
CN113868030B (zh) Cpu测试工具自适应匹配方法、系统、终端及存储介质
US20210406162A1 (en) Code testing method, apparatus and device, and computer-readable storage medium

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