CN110489452A - 多路数据流θ连接优化方法及系统 - Google Patents
多路数据流θ连接优化方法及系统 Download PDFInfo
- Publication number
- CN110489452A CN110489452A CN201910774187.3A CN201910774187A CN110489452A CN 110489452 A CN110489452 A CN 110489452A CN 201910774187 A CN201910774187 A CN 201910774187A CN 110489452 A CN110489452 A CN 110489452A
- Authority
- CN
- China
- Prior art keywords
- data
- data stream
- subregion
- module
- coarse filtration
- 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
Links
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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
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)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种多路数据流θ连接优化方法,包括:从每个原始数据流中取出待处理数据分别缓存至该原始数据流对应的一个缓存器;所述缓存器将取出的待处理数据按照指定属性值范围进行分区存储;对上述分区存储的待处理数据进行粗过滤;对上述粗过滤或者重新分区后的数据进行连接操作;剔除连接操作后数据中不满足条件的数据,得到最终连接结果。本发明还涉及一种多路数据流θ连接优化系统。本发明能够有效减少多路数据流θ连接次数,提高θ连接的效率,尤其是当数据流数量越多,建立在这些数据流上的θ连接效率提升越明显。
Description
技术领域
本发明涉及一种多路数据流θ连接优化方法及系统。
背景技术
在分布式数据处理环境中,数据的爆炸式增长带来了大数据分析的新挑战。连接运算(Join)是对海量数据进行分析处理的核心内容之一。然而,由于连接操作的代价较高,如何提高连接操作的执行性能一直是研究和开发的热点问题。在连接操作中,θ连接是关系R与关系S的一种连接运算,是从两个关系的广义笛卡尔积中选取属性间满足一定条件的元组形成一个新的连接:记作其中:A为数据集R中的属性,B为数据集S中的属性,θ为关系比较符,包含<,>,=,≤,≥,≠,其中θ在“=”时的连接为等值连接。
目前的主流研究中主要利用MapReduce框架来处理连接操作,该框架主要考虑网络中负载平衡的开销,当数据集变大时,大量的中间结果会导致很高的通信开销。在迭代式计算中,MapReduce把每一个中间结果存于HDFS上,下次计算需要在从HDFS读取再计算,造成了很多不必要的I/O操作。
为了解决这一问题,一些技术基于Mapreduce做了一些优化,尽可能使用一个MapReduce任务来计算。但是,现有技术的缺点主要体现在两个方面:一是主要针对等值连接;二是大多数使用Mapreduce框架。
现有研究中绝大多数都是只关注等值连接,即特定属性值相等时才进行连接。θ连接除包含等于之外,还包含大于、大于等于、小于、小于等于、不等于等多种情况,相比等值连接,在对数据的分析处理上,θ连接适用范围更加广泛,但同时也意味着时间复杂度以及计算复杂度增加,尤其是海量数据的操作时,提高θ连接的效率显得尤为重要。
此外,当前多数研究基于Mapreduce计算框架,把数据全部发到Reduce任务里面。这种方法需要大幅修改Mapreduce框架。在迭代式计算中,Mapreduce框架劣势更为明显。Mapreduce作业默认调度方式是FIFO,一次只运行一个作业。Mapreduce需要将中间数据输出到HDFS,在迭代式操作中,需要将中间数据从HDFS中先取出,再进行下一步操作,当迭代次数多的时候,Mapreduce框架会造成很多不必要的I/O浪费,在这一方面上也会导致连接时间长,效率低。例如:四个数据集的连接任务大多数基于Mapreduce系统将该作业分解为三个顺序链接的Mapreduce子任务:第一个子任务负责数据集R和S的连接工作,得到中间结果集U1输出到分布式文件系统HDFS中,第二个子任务再从HDFS中读出U1与T进行关联连接得到中间结果U2写入HDFS文件中,第三个任务是将第二个子任务得到的结果U2与N进行关联连接得到最终结果U3写入HDFS文件中。
但如果使用spark框架,则计算顺序将会发生如下改变。spark系统根据任务创建DAG图,stage1负责数据集R和S的连接工作,得到中间结果RDD1并存到内存中;stage2负责数据集T和N的连接工作,得到中间结果RDD2并存到内存中。stage1和stage2并发执行。Stage3负责RDD1和RDD2的连接,其结果RDD3为最终结果,存放于内存中。可以发现如果连接的数据集足够多或者中间结果集数据量很大则会带来巨大的磁盘I/O浪费。
发明内容
有鉴于此,有必要提供一种多路数据流θ连接优化方法及系统。
本发明提供一种多路数据流θ连接优化方法,该方法包括如下步骤:a.从每个原始数据流中取出待处理数据分别缓存至该原始数据流对应的一个缓存器;b.所述缓存器将取出的待处理数据按照指定属性值范围进行分区存储;c.对上述分区存储的待处理数据进行粗过滤;d.对上述粗过滤或者重新分区后的数据进行连接操作;e.剔除连接操作后数据中不满足条件的数据,得到最终连接结果。
其中,在所述步骤a之前还包括:
判断原始数据流的数量:
如果原始数据流的数量为2,则进行上述步骤a至步骤e,得到最终连接结果;
如果原始数据流的数量大于2,则将多路原始数据流先两两组成一对,进行上述步骤a至步骤e,多对并发执行,再将并发执行的结果作为下一轮的输入,两两成对过滤,直至只有一个输出;对于没有两两成对的数据,直接进入下一轮,作为下一轮的输入。
所述的步骤b包括:
分别将原始数据流的待处理数据按照其指定属性值的范围进行分区,使分区之间有序,分别获取待处理数据中的最大值和最小值。
所述的步骤c包括:
将分区存储的数据流中不满足粗过滤条件的数据删除,所述缓存器的分区间均是有序的,在删除操作时,快速锁定粗过滤条件所在分区,不满足条件的分区直接删除其中所有数据。
所述的步骤c和步骤d之间还包括:
判断是否发生数据倾斜;
如果发生了数据倾斜,则对发生倾斜的数据进行重新分区;如果没有发生数据倾斜,则直接进入步骤d。
本发明提供一种多路数据流θ连接优化系统,该系统包括获取模块、存储模块、粗过滤模块、判断模块、分区模块、连接模块以及筛选模块,其中:所述获取模块用于从每个原始数据流中取出待处理数据分别缓存至该原始数据流对应的一个缓存器;所述存储模块用于使所述缓存器将取出的待处理数据按照指定属性值范围进行分区存储;所述粗过滤模块用于对上述分区存储的待处理数据进行粗过滤;所述连接模块用于对上述粗过滤或者重新分区后的数据进行连接操作;所述筛选模块用于剔除连接操作后数据中不满足条件的数据,得到最终连接结果。
其中,该系统还包括判断模块,所述的判断模块具体用于:
判断原始数据流的数量:
如果原始数据流的数量为2,则进行上述步骤a至步骤e,得到最终连接结果;
如果原始数据流的数量大于2,则将多路原始数据流先两两组成一对,进行上述步骤a至步骤e,多对并发执行,再将并发执行的结果作为下一轮的输入,两两成对过滤,直至只有一个输出;对于没有两两成对的数据,直接进入下一轮,作为下一轮的输入。
所述的存储模块具体用于:
分别将原始数据流的待处理数据按照其指定属性值的范围进行分区,使分区之间有序,分别获取待处理数据中的最大值和最小值。
所述的粗过滤模块具体用于:
将分区存储的数据流中不满足粗过滤条件的数据删除,所述缓存器的分区间均是有序的,在删除操作时,快速锁定粗过滤条件所在分区,不满足条件的分区直接删除其中所有数据。
所述的判断模块还用于判断是否发生数据倾斜;
该系统还包括分区模块,所述分区模块用于在发生数据倾斜时,对发生倾斜的数据进行重新分区。
本发明有益效果如下:其一:本发明不局限于等值连接,还可以实现<,>,≤,≥,≠以及任何指定条件;其二:本发明舍弃了传统的Mapreduce框架,改为在spark平台上实现一种多路数据流θ连接的优化技术。Mapreduce中间结果存放于分布式文件系统,如:HDFS上,在迭代式计算中需要从磁盘获取中间结果,造成不必要的I/O开销。而本发明spark中间结果存于内存,存取快速,从这方面来说会使计算效率提高,性能得到提升;其三:本发明θ连接之前先进行过滤,剔除不必要的数据,使reduce输入数据量减小,减少笛卡儿积连接次数,省去大量不必要连接,提高连接性能;其四:本发明可以在分布式系统中并行计算,更进一步减少计算时间,提升计算效率。尤其是在迭代式计算中,效果更为明显。由于Mapreduce默认调度方式使FIFO,一次跑一个任务,其结果用于下一次连接,这种模式下N个数据流的θ连接需要N-1轮。而本发明采用spark,先两两计算,其结果进入下一轮迭代式计算,只需执行logN次。
附图说明
图1为本发明多路数据流θ连接优化方法的流程图;
图2为本发明实施例提供的粗过滤处理示意图;
图3为本发明实施例提供的连接操作示意图;
图4为本发明多路数据流θ连接优化系统的硬件架构图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细的说明。
参阅图1所示,是本发明多路数据流θ连接优化方法较佳实施例的作业流程图。
本发明实施例以两个数据流θ连接为例进行说明,本实施例中的两个数据流θ分别记为:数据流1、数据流2。
步骤S1,从每个原始数据流中取出待处理数据分别缓存至该原始数据流对应的一个缓存器。具体而言:
每个原始数据流对应一个缓存器,用于缓存待处理数据。
在本实施例中,取出待处理数据的多少通过传入参数指定,根据传入参数的大小,取出原始数据流中的所有数据。例如:传入参数10000,表示取当前位置开始的10000条数据。
步骤S2,所述缓存器将取出的待处理数据按照指定属性值范围进行分区存储,并获取所述待处理数据中的最大值和最小值。也即是:
将所述待处理数据进行预处理,获取最大值最小值:先分别将数据流1、数据流2的待处理数据按照指定属性值的范围进行分区,使分区之间有序,分别获取两个待处理数据中的最大值和最小值。
步骤S3,对上述分区存储的待处理数据进行粗过滤。本实施例预先将数据流1、数据流2中不满足粗过滤条件的数据删除,进而减少参与笛卡儿积次数,减少笛卡儿积数据量大小。具体而言:
粗过滤过程分为以下四种情况:
第一种情况:当连接条件为“数据流1指定属性大于数据流2指定属性”时。
用数据流2的最小值作为初始过滤条件,过滤掉数据流1中不大于它的数据;用数据流1的最大值作为初始过滤条件,过滤掉数据流2中不小于它的数据。
第二种情况:当连接条件为“数据流1指定属性小于数据流2指定属性”时。
用数据流2的最大值作为初始过滤条件,过滤掉数据流1中不小于它的数据;用数据流1的最小值作为初始过滤条件,过滤掉数据流2中不大于它的数据。
第三种情况:当连接条件为“数据流1指定属性大于等于数据流2指定属性”时。
用数据流2的最小值作为初始过滤条件,过滤掉数据流1中小于它的数据;用数据流1的最大值作为初始过滤条件,过滤掉数据流2中大于它的数据。
第四种情况:当连接条件为“数据流1指定属性小于等于数据流2指定属性”时。
用数据流2的最小值作为初始过滤条件,过滤掉数据流1中大于它的数据;用数据流1的最大值作为初始过滤条件,过滤掉数据流2中小于它的数据。
由于本申请缓存器的存储结构,本申请缓存器的分区间均是有序的,在删除操作时,可以快速锁定粗过滤条件所在分区。不满足条件的分区可以直接删除其中所有数据,无需遍历数据流中所有数据。这种存储方式不仅在过滤时可以加快删除,还可以在并行分布式计算中快速分区,进一步减少笛卡儿积连接次数。
步骤S4,判断是否发生数据倾斜。具体而言:
将分区大小与设定的阈值进行比较,当分区大小大于设定的阈值时,则判定发生了数据倾斜。所述阈值与传入参数有关。
如果发生了数据倾斜,则进入步骤S5;如果没有发生数据倾斜,则直接进入步骤S6。
步骤S5,对发生倾斜的数据进行重新分区,使负载均衡。具体而言:
在本实施例中,对发生倾斜的数据重新设定key值,以达到重新分区的目的。
步骤S6,对上述粗过滤或者重新分区后的数据进行连接操作,也即,进入Join阶段。具体而言:
粗过滤之后剩下的数据是已经按范围分区的数据。根据过滤条件,让数据流1的特定分区与数据流2的特定分区进行笛卡儿积。其中,所述过滤条件指数据流1、数据流2在指定属性上满足大于或小于或其他关系。
步骤S7:用所述过滤条件进行筛选,剔除笛卡儿积之后的数据中不满足条件的数据,得到最终连接结果。
在一些实施例中,如果所述过滤条件为数据流1指定属性大于数据流2对应属性,则在本步骤中,需要保留数据流1指定属性大于数据流2对应属性的所有数据。
在另外一些实施例中,对于多路数据流θ连接而言,先将多路数据流两两组成一对,进行上述步骤S1-S7,多对并发执行。将其结果作为下一轮的输入,两两成对过滤,直至只有一个输出。对于没有两两成对的数据,直接进入下一轮,作为下一轮的输入。如:(R1.a1θR2.a2)∧(R2.a1θR3.a2)∧…∧(Rn-1.aiθRn.aj),其中R1、R2…Rn分别表示不同数据集,a1、a2…ai、aj分别表示数据集各自包含的属性。
实施例1:
以下将以两路数据流为例,结合示意图,对本发明的具体设计方式和实现过程加以详细说明,以解释本发明。
如图2所示。数据流1包含两个属性A、B,数据流2包含两个属性B、C。数据流1待处理数据缓存于数据集R,记作R(A,B);数据流2待处理数据缓存于数据集S,记作S(B,C),θ连接条件为:R中b属性大于S中B属性,记作对于B属性而言,数据集R中范围在[0,5)的包含:0,1,4;范围在[5,10)的包含6,9;范围在[10,15)的包含10;范围在[15,20)的包含16,17,18,19,且数据集R最小值为0,最大值为19。同理得出数据集S的缓存方式。数据集R中B属性最小值Rmin=0,最大值Rmax=19,数据集S中B属性最小值Smin=7,最大值Smax=23。R中只需留下B属性比Smin大的数据,S中只需留下B属性比Rmax小的数据。由于Smin=7,属于第2个分区[5,10),因此直接删除R中分区小于2的所有数据,并且删除R中分区等于2且B属性小于Smin的数据,分区大于2的全部留下。由于Rmax=19,属于第3个分区[15,20),因此直接删除S中分区大于3里所有数据,并且删除S中分区3里B属性大于Rmax的数据,分区小于3的全部留下。即,在笛卡儿积操作之前,删除图2中阴影部分表示的数据。本申请提出的存储结构无需比较数据集中所有数据就可以实现快速删除。
参阅图4所示,是本发明多路数据流θ连接优化系统10的硬件架构图。该系统包括:获取模块101、存储模块102、粗过滤模块103、判断模块104、分区模块105、连接模块106以及筛选模块107。
本发明实施例以两个数据流θ连接为例进行说明,本实施例中的两个数据流θ分别记为:数据流1、数据流2。
所述获取模块101用于从每个原始数据流中取出待处理数据分别缓存至该原始数据流对应的一个缓存器。具体而言:
每个原始数据流对应一个缓存器,用于缓存待处理数据。
在本实施例中,取出待处理数据的多少通过传入参数指定,根据传入参数的大小,取出原始数据流中的所有数据。例如:传入参数10000,表示取当前位置开始的10000条数据。
所述存储模块102用于使所述缓存器将取出的待处理数据按照指定属性值范围进行分区存储,并获取所述待处理数据中的最大值和最小值。也即是:
将所述待处理数据进行预处理,获取最大值最小值:先分别将数据流1、数据流2的待处理数据按照指定属性值的范围进行分区,使分区之间有序,分别获取两个待处理数据中的最大值和最小值。
所述粗过滤模块103用于对上述分区存储的待处理数据进行粗过滤。本实施例预先将数据流1、数据流2中不满足粗过滤条件的数据删除,进而减少参与笛卡儿积次数,减少笛卡儿积数据量大小。
具体而言:
粗过滤过程分为以下四种情况:
第一种情况:当连接条件为“数据流1指定属性大于数据流2指定属性”时。
用数据流2的最小值作为初始过滤条件,过滤掉数据流1中不大于它的数据;用数据流1的最大值作为初始过滤条件,过滤掉数据流2中不小于它的数据。
第二种情况:当连接条件为“数据流1指定属性小于数据流2指定属性”时。
用数据流2的最大值作为初始过滤条件,过滤掉数据流1中不小于它的数据;用数据流1的最小值作为初始过滤条件,过滤掉数据流2中不大于它的数据。
第三种情况:当连接条件为“数据流1指定属性大于等于数据流2指定属性”时。
用数据流2的最小值作为初始过滤条件,过滤掉数据流1中小于它的数据;用数据流1的最大值作为初始过滤条件,过滤掉数据流2中大于它的数据。
第四种情况:当连接条件为“数据流1指定属性小于等于数据流2指定属性”时。
用数据流2的最小值作为初始过滤条件,过滤掉数据流1中大于它的数据;用数据流1的最大值作为初始过滤条件,过滤掉数据流2中小于它的数据。
由于本申请缓存器的存储结构,本申请缓存器的分区间均是有序的,在删除操作时,可以快速锁定粗过滤条件所在分区。不满足条件的分区可以直接删除其中所有数据,无需遍历数据流中所有数据。这种存储方式不仅在过滤时可以加快删除,还可以在并行分布式计算中快速分区,进一步减少笛卡儿积连接次数。
所述判断模块104用于判断是否发生数据倾斜。具体而言:
所述判断模块104将分区大小与设定的阈值进行比较,当分区大小大于设定的阈值时,则判定发生了数据倾斜。所述阈值与传入参数有关。
所述分区模块105用于在发生数据倾斜时,对发生倾斜的数据进行重新分区,使负载均衡。具体而言:
在本实施例中,所述分区模块105对发生倾斜的数据重新设定key值,以达到重新分区的目的。
所述连接模块106用于对上述粗过滤或者重新分区后的数据进行连接操作,也即,进入Join阶段。具体而言:
粗过滤之后剩下的数据是已经按范围分区的数据。根据过滤条件,让数据流1的特定分区与数据流2的特定分区进行笛卡儿积。其中,所述过滤条件指数据流1、数据流2在指定属性上满足大于或小于或其他关系。
所述筛选模块107用于用所述过滤条件进行筛选,剔除笛卡儿积之后的数据中不满足条件的数据,得到最终连接结果。
在一些实施例中,如果所述过滤条件为数据流1指定属性大于数据流2对应属性,则所述筛选模块107保留数据流1指定属性大于数据流2对应属性的所有数据。
在另外一些实施例中,所述判断模块104还用于判断原始数据流的数量,并在原始数据流的数量大于2时,也即,对于大于两路的数据流θ连接而言,先将多路数据流两两组成一对,上述获取模块101、存储模块102、粗过滤模块103、判断模块104、分区模块105、连接模块106以及筛选模块107执行相应操作,多对并发执行。将其结果作为下一轮的输入,两两成对过滤,直至只有一个输出。对于没有两两成对的数据,直接进入下一轮,作为下一轮的输入。如:(R1.a1θR2.a2)∧(R2.a1θR3.a2)∧…∧(Rn-1.aiθRn.aj),其中R1、R2…Rn分别表示不同数据集,a1、a2…ai、aj分别表示数据集各自包含的属性。
在分布式计算中,通信的代价很大,因此通过控制数据分布以获得最少的网络传输可以极大地提升整体性能。在连接这种基于key的操作中,合理分区现得更为重要。好的分区方法可以让数据传输到尽可能少的节点上。本发明可以通过控制分区方式来控制集群中每个节点处理指定数据,从而减少通信开销。由于本发明的分区方法使数据已经在分区间有序,因此可以通过指定部分分区之间进行笛卡儿积,无需两个数据流过滤后的所有数据都互相进行笛卡儿积。如图3所示,假设用两个节点来计算。为减少数据传输,将数据集R中范围为[5,10),[10,15)的数据发送到节点1,范围为[15,20)的数据发送到节点2;数据集S中所有数据发送到节点2,范围为[5,10),[10,15)的数据发送到节点1。在这里,实际上总共只进行了20次笛卡儿积。这种优化策略进一步减少了笛卡儿积次数,并且在分布式计算中,文件传输量也有所减少,在海量数据θ连接中,优势更为明显。
如果不过滤直接执行笛卡儿积,在图2所举的例子中,数据集R总共有3+2+1+4=10条数据,数据集S总共有1+2+1+3=7条数据,因此需要进行10*7次笛卡儿积得到70个连接结果,再按条件R.B>S.B进行筛选。如果使用本发明提出的方法,删除阴影部分额数据之后,数据集R还有1+1+4=6条数据,数据集S还有1+2+1=4条数据,需要进行6*4次笛卡儿积得到24个连接结果,再按条件R.B>S.B进行筛选。使用本发明提出的方法,可以极大减少笛卡儿积操作次数,提高计算效率。
虽然本发明参照当前的较佳实施方式进行了描述,但本领域的技术人员应能理解,上述较佳实施方式仅用来说明本发明,并非用来限定本发明的保护范围,任何在本发明的精神和原则范围之内,所做的任何修饰、等效替换、改进等,均应包含在本发明的权利保护范围之内。
Claims (10)
1.一种多路数据流θ连接优化方法,其特征在于,该方法包括如下步骤:
a.从每个原始数据流中取出待处理数据分别缓存至该原始数据流对应的一个缓存器;
b.所述缓存器将取出的待处理数据按照指定属性值范围进行分区存储;
c.对上述分区存储的待处理数据进行粗过滤;
d.对上述粗过滤或者重新分区后的数据进行连接操作;
e.剔除连接操作后数据中不满足条件的数据,得到最终连接结果。
2.如权利要求1所述的方法,其特征在于,在所述步骤a之前还包括:
判断原始数据流的数量:
如果原始数据流的数量为2,则进行上述步骤a至步骤e,得到最终连接结果;
如果原始数据流的数量大于2,则将多路原始数据流先两两组成一对,进行上述步骤a至步骤e,多对并发执行,再将并发执行的结果作为下一轮的输入,两两成对过滤,直至只有一个输出;对于没有两两成对的数据,直接进入下一轮,作为下一轮的输入。
3.如权利要求1所述的方法,其特征在于,所述的步骤b包括:
分别将原始数据流的待处理数据按照其指定属性值的范围进行分区,使分区之间有序,分别获取待处理数据中的最大值和最小值。
4.如权利要求2所述的方法,其特征在于,所述的步骤c包括:
将分区存储的数据流中不满足粗过滤条件的数据删除,所述缓存器的分区间均是有序的,在删除操作时,快速锁定粗过滤条件所在分区,不满足条件的分区直接删除其中所有数据。
5.如权利要求3所述的方法,其特征在于,所述的步骤c和步骤d之间还包括:
判断是否发生数据倾斜;
如果发生了数据倾斜,则对发生倾斜的数据进行重新分区;如果没有发生数据倾斜,则直接进入步骤d。
6.一种多路数据流θ连接优化系统,其特征在于,该系统包括获取模块、存储模块、粗过滤模块、判断模块、分区模块、连接模块以及筛选模块,其中:
所述获取模块用于从每个原始数据流中取出待处理数据分别缓存至该原始数据流对应的一个缓存器;
所述存储模块用于使所述缓存器将取出的待处理数据按照指定属性值范围进行分区存储;
所述粗过滤模块用于对上述分区存储的待处理数据进行粗过滤;
所述连接模块用于对上述粗过滤或者重新分区后的数据进行连接操作;
所述筛选模块用于剔除连接操作后数据中不满足条件的数据,得到最终连接结果。
7.如权利要求6所述的系统,其特征在于,该系统还包括判断模块,所述的判断模块具体用于:
判断原始数据流的数量:
如果原始数据流的数量为2,则进行上述步骤a至步骤e,得到最终连接结果;
如果原始数据流的数量大于2,则将多路原始数据流先两两组成一对,进行上述步骤a至步骤e,多对并发执行,再将并发执行的结果作为下一轮的输入,两两成对过滤,直至只有一个输出;对于没有两两成对的数据,直接进入下一轮,作为下一轮的输入。
8.如权利要求7所述的系统,其特征在于,所述的存储模块具体用于:
分别将原始数据流的待处理数据按照其指定属性值的范围进行分区,使分区之间有序,分别获取待处理数据中的最大值和最小值。
9.如权利要求8所述的系统,其特征在于,所述的粗过滤模块具体用于:
将分区存储的数据流中不满足粗过滤条件的数据删除,所述缓存器的分区间均是有序的,在删除操作时,快速锁定粗过滤条件所在分区,不满足条件的分区直接删除其中所有数据。
10.如权利要求9所述的系统,其特征在于:
所述的判断模块还用于判断是否发生数据倾斜;
该系统还包括分区模块,所述分区模块用于在发生数据倾斜时,对发生倾斜的数据进行重新分区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910774187.3A CN110489452A (zh) | 2019-08-21 | 2019-08-21 | 多路数据流θ连接优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910774187.3A CN110489452A (zh) | 2019-08-21 | 2019-08-21 | 多路数据流θ连接优化方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110489452A true CN110489452A (zh) | 2019-11-22 |
Family
ID=68551627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910774187.3A Pending CN110489452A (zh) | 2019-08-21 | 2019-08-21 | 多路数据流θ连接优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110489452A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855721A (zh) * | 2020-01-15 | 2020-02-28 | 武汉思普崚技术有限公司 | 一种寻找网络逻辑路径的方法、设备及存储介质 |
CN111600944A (zh) * | 2020-05-12 | 2020-08-28 | 北京锐安科技有限公司 | 一种数据处理方法、装置、设备和存储介质 |
CN112615910A (zh) * | 2020-12-10 | 2021-04-06 | 中国科学院深圳先进技术研究院 | 一种数据流连接优化方法、系统、终端以及存储介质 |
CN112948442A (zh) * | 2021-03-26 | 2021-06-11 | 深圳先进技术研究院 | 数据流θ连接优化方法、系统、终端以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140156707A1 (en) * | 2012-12-05 | 2014-06-05 | Hewlett-Packard Development Company, L.P. | Streaming system performance optimization |
CN106021386A (zh) * | 2016-05-12 | 2016-10-12 | 西北工业大学 | 面向海量分布式数据的非等值连接方法 |
CN106528717A (zh) * | 2016-10-26 | 2017-03-22 | 中国电子产品可靠性与环境试验研究所 | 数据处理方法和系统 |
CN109791543A (zh) * | 2016-09-30 | 2019-05-21 | 华为技术有限公司 | 执行多表连接操作的控制方法及对应装置 |
CN109992372A (zh) * | 2017-12-29 | 2019-07-09 | 中国移动通信集团陕西有限公司 | 一种基于映射归约的数据处理方法及装置 |
-
2019
- 2019-08-21 CN CN201910774187.3A patent/CN110489452A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140156707A1 (en) * | 2012-12-05 | 2014-06-05 | Hewlett-Packard Development Company, L.P. | Streaming system performance optimization |
CN106021386A (zh) * | 2016-05-12 | 2016-10-12 | 西北工业大学 | 面向海量分布式数据的非等值连接方法 |
CN109791543A (zh) * | 2016-09-30 | 2019-05-21 | 华为技术有限公司 | 执行多表连接操作的控制方法及对应装置 |
CN106528717A (zh) * | 2016-10-26 | 2017-03-22 | 中国电子产品可靠性与环境试验研究所 | 数据处理方法和系统 |
CN109992372A (zh) * | 2017-12-29 | 2019-07-09 | 中国移动通信集团陕西有限公司 | 一种基于映射归约的数据处理方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855721A (zh) * | 2020-01-15 | 2020-02-28 | 武汉思普崚技术有限公司 | 一种寻找网络逻辑路径的方法、设备及存储介质 |
CN111600944A (zh) * | 2020-05-12 | 2020-08-28 | 北京锐安科技有限公司 | 一种数据处理方法、装置、设备和存储介质 |
CN111600944B (zh) * | 2020-05-12 | 2023-02-28 | 北京锐安科技有限公司 | 一种数据处理方法、装置、设备和存储介质 |
CN112615910A (zh) * | 2020-12-10 | 2021-04-06 | 中国科学院深圳先进技术研究院 | 一种数据流连接优化方法、系统、终端以及存储介质 |
CN112615910B (zh) * | 2020-12-10 | 2021-10-29 | 中国科学院深圳先进技术研究院 | 一种数据流连接优化方法、系统、终端以及存储介质 |
CN112948442A (zh) * | 2021-03-26 | 2021-06-11 | 深圳先进技术研究院 | 数据流θ连接优化方法、系统、终端以及存储介质 |
CN112948442B (zh) * | 2021-03-26 | 2022-06-21 | 深圳先进技术研究院 | 数据流θ连接优化方法、系统、终端以及存储介质 |
WO2022199147A1 (zh) * | 2021-03-26 | 2022-09-29 | 深圳先进技术研究院 | 数据流θ连接优化方法、系统、终端以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489452A (zh) | 多路数据流θ连接优化方法及系统 | |
CN102752198B (zh) | 多核报文转发方法、多核处理器及网络设备 | |
Yamashita et al. | A new method to express functional permissibilities for LUT based FPGAs and its applications | |
CN103178989B (zh) | 访问热度统计方法及装置 | |
CN106095589A (zh) | 一种分配分区的方法、装置及系统 | |
CN104050041A (zh) | 用于在处理器中调度规则匹配的调度方法和装置 | |
CN111478811A (zh) | 一种基于双层信息流传递的网络关键点分析方法 | |
CN104915717A (zh) | 数据处理方法、知识库推理方法及相关装置 | |
CN111563093A (zh) | 一种联盟区块链冲突交易检测与规避系统及方法 | |
CN107451091A (zh) | 基于fpga‑cpu混合架构的高速信息交互系统 | |
CN104408169A (zh) | 基于多维表达式语言的维度查询方法及装置 | |
Yum et al. | Comparison of routing procedures for circuit-switched traffic in nonhierarchical networks | |
CN110908796A (zh) | 一种Gaia系统中的多作业合并与优化系统及方法 | |
CN109635473B (zh) | 一种启发式高通量材料仿真计算优化方法 | |
CN105095455B (zh) | 一种数据连接优化方法和数据运算系统 | |
CN109254962A (zh) | 一种基于t-树的索引优化方法及装置 | |
CN107547549B (zh) | 一种访问控制策略优化方法 | |
CN114021319A (zh) | 一种基于改进桥接系数的指挥控制网络关键边识别方法 | |
CN108667659A (zh) | 网络拓朴图中环路节点的搜索方法及系统 | |
CN108040018A (zh) | 一种网络功能虚拟化下的细粒度网络流调度方法及系统 | |
CN107451229A (zh) | 一种数据库查询方法和装置 | |
CN112965825A (zh) | 一种面向负载均衡的动态均衡分区方法及系统 | |
CN112633680A (zh) | 风险事件的策略确定方法、装置、设备及可读存储介质 | |
CN115221103A (zh) | 计算装置、数据处理方法及相关产品 | |
CN113391891B (zh) | 基于Rete和字符串模式匹配算法的负载均衡资源调度方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191122 |
|
RJ01 | Rejection of invention patent application after publication |