首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

SparkSql 中外连接查询中的谓词下推规则

SparkSql SparkSql是架构在spark计算框架之上的分布式Sql引擎,使用DataFrame和DataSet承载结构化和半结构化数据来实现数据复杂查询处理,提供的DSL可以直接使用scala...语言完成sql查询,同时也使用thrift server提供服务化的Sql查询功能。...外连接查询和连接条件 外连接查询(outter join),分为左外连接查询、右外连接查询以及全外连接查询,全外连接使用的场景不多,所以本文重点讨论的是左连接查询和右连接查询。...而上边提到的谓词下推能否在两类条件中使用,在SparkSql中则有特定的规则,以左外连接查询为例,规则如下: ? 接下来对这个表格中的规则进行详细的分析。...至此,左联接查询的四条规则分析完了,可以看出,在SparkSql中对于外连接查询时的过滤条件,并不能在所有情况下都用来进行数据源的过滤,如果使用得当会极大的提升查询性能,如果使用不当,则会产生错误的查询结果

1.7K90

sparksql 中外连接查询中的谓词下推处理

谓词下推 基本概念:谓词下推(predicate pushdown)属于逻辑优化。优化器可以将谓词过滤下推到数据源,从而使物理执行跳过无关数据。...在使用Parquet或者orcfile的情况下,更可能存在文件被整块跳过的情况,同时系统还通过字典编码把字符串对比转换为开销更小的整数对比。...究其原因,是因为在sparksql中,把以上的查询解析成了如下的子查询: [1505293913863_2083_1505293913921.jpg] 3.2....: 第一步:左表id为1的行在右表中可以找到,但是此时仅仅满足join条件,在使用where条件判断这条连接后数据时,发现右表的id不满足RT.id>1的条件,所以这条join结果不保留(注意,这里是不保留...好了,接下来看看右表join后条件下推的情况: 第一步:使用RT.id>1过滤右表,过滤后右表只剩一行id为2的行 第二步:左表id为1的行在右表中没有,此时左表值保留,右表值为null 第三步:

4.7K21

【大数据】SparkSql连接查询中的谓词下推处理(一)

,提供的DSL 可以直 接使用scala语言完成Sql查询,同时也使用thriftserver提供服务化的Sql查询功能。...那么谓 词 下 推第二层含义,即何时完 成数 据过滤则一般是在指连接查询中,是先对单表 数 据进行过 滤再和其他表连 接还是在先把多表进行连接再对连 接后的临 时表进 行过滤 4.内连接查询中的谓词下推规则...大家可以自行采用上边的分步法分析谓词下推和不下推时的查询结果,得到的结果是相同的。我们来看看上边不能下推时出现的情况在这种查询里会不会出现。...但是如果按照我们在2中的分析,使用OR连 接两 表的过滤条件,又不能随意的进行谓词下推,那要如何处理呢?...SparkSql在这里 使用了一种叫做“分区裁剪”的优化手段,即把分区并不看做普通的过滤条件,而是使用了“一刀切”的方法,把不符合查询分区条件的目录直接排除在待扫描的目录之外。

1.3K30

【大数据】SparkSql连接查询中的谓词下推处理(一)

1.SparkSql SparkSql是架构在Spark计算框架之上的分布式Sql引擎,使用DataFrame和DataSet承载结构化和半结构化数据来实现数据复杂查询处理,提供的DSL可以直接使用scala...语言完成Sql查询,同时也使用thriftserver提供服务化的Sql查询功能。...大家可以自行采用上边的分步法分析谓词下推和不下推时的查询结果,得到的结果是相同的。我们来看看上边不能下推时出现的情况在这种查询里会不会出现。...但是如果按照我们在2中的分析,使用OR连接两表的过滤条件,又不能随意的进行谓词下推,那要如何处理呢?...SparkSql在这里使用了一种叫做“分区裁剪”的优化手段,即把分区并不看做普通的过滤条件,而是使用了“一刀切”的方法,把不符合查询分区条件的目录直接排除在待扫描的目录之外。

1.7K20

大数据 | SparkSQL连接查询中的谓词下推处理(二)

在《SparkSql连接查询中的谓词下推处理(一)》中,我们介绍了一些基本的概念,并对内连接查询时的一些基本下推规则进行了分析。...本篇文章要介绍的是--外连接查询中的谓词下推规则,这相比内连接中的规则要复杂一些,不过使用简单的表格来进行分析也是可以分析清楚的。先上表: ? 我们以左外连接查询为例,先总结规矩如下: ?...然后使用LT.id>1这个join后条件进行过滤,结果如下: ? 来分析一下LT.id>1下推到左表进行数据过滤的结果,经过LT.id>1过滤后,左表变为: ?...可以看出,在SparkSQL中对于外连接查询时的过滤条件,并不能在所有情况下都用来进行数据源的过滤,如果使用得当会极大的提升查询性能,如果使用不当,则会产生错误的查询结果,而这种错误结果又不易发觉,所以使用时要格外小心...在本系列文章中,我们知道了分布式SQL中的一些谓词下推规则。在下一个系列文章中,我们就重点聊聊谓词下推到存储引擎或者数据源后,是如何完成高效的数据过滤的?

90220

SQL进阶-9-谓词exists使用

SQL进阶-9-EXISTS谓词使用 支撑SQL和关系数据库的两个重要理论基础: 数学领域的集合论 现代逻辑学标准体系的谓词逻辑(predicate logic) 本文中重点介绍的是谓词exists的用法...extists谓词不仅可以将多行数据作为整体来表达高级的条件,还可以在使用关联子查询时表现出良好的性能。...什么是谓词 SQL保留字中有很多的谓词,比如: 、=等比较谓词 Between、 like、in、is、null等 谓词就是函数;谓词是一种特殊的函数,返回的真值,结果都是true、false、unknown...(一般的谓词逻辑中没有unknown,但是SQL采用的是三值逻辑,因此具有三种值) exists属于二阶谓词,is、between等属于一阶谓词 ?...生成全部的会议的集合使用交叉联结: select distinct M1.meeting, M2.person from Meetings M1 cross join Meeting M2; --

1K20

【大数据】SparkSql连接查询中的谓词下推处理(一)

1.SparkSql SparkSql是架构在Spark计算框架之上的分布式Sql引擎,使用DataFrame和DataSet承载结构化和半结构化数据来实现数据复杂查询处理,提供的DSL可以直接使用scala...语言完成Sql查询,同时也使用thriftserver提供服务化的Sql查询功能。...大家可以自行采用上边的分步法分析谓词下推和不下推时的查询结果,得到的结果是相同的。我们来看看上边不能下推时出现的情况在这种查询里会不会出现。...但是如果按照我们在2中的分析,使用OR连接两表的过滤条件,又不能随意的进行谓词下推,那要如何处理呢?...SparkSql在这里使用了一种叫做“分区裁剪”的优化手段,即把分区并不看做普通的过滤条件,而是使用了“一刀切”的方法,把不符合查询分区条件的目录直接排除在待扫描的目录之外。

96320

大数据 | SparkSQL连接查询中的谓词下推处理(二)

在《SparkSql连接查询中的谓词下推处理(一)》中,我们介绍了一些基本的概念,并对内连接查询时的一些基本下推规则进行了分析。...本篇文章要介绍的是--外连接查询中的谓词下推规则,这相比内连接中的规则要复杂一些,不过使用简单的表格来进行分析也是可以分析清楚的。先上表: ? 我们以左外连接查询为例,先总结规矩如下: ?...然后使用LT.id>1这个join后条件进行过滤,结果如下: ? 来分析一下LT.id>1下推到左表进行数据过滤的结果,经过LT.id>1过滤后,左表变为: ?...可以看出,在SparkSQL中对于外连接查询时的过滤条件,并不能在所有情况下都用来进行数据源的过滤,如果使用得当会极大的提升查询性能,如果使用不当,则会产生错误的查询结果,而这种错误结果又不易发觉,所以使用时要格外小心...在本系列文章中,我们知道了分布式SQL中的一些谓词下推规则。在下一个系列文章中,我们就重点聊聊谓词下推到存储引擎或者数据源后,是如何完成高效的数据过滤的?

69430

JanusGraph -- 查询谓词和数据类型(janusgraph Search predicates and data types)

26.1 比较谓词 下列比较谓词,枚举了用于索引查询并在上面的示例中使用: eq (equal) neq (not equal) gt (greater than) gte (greater...boolean和uuid仅支持neq和eq 26.2 文本谓词 Text枚举指定用于查询匹配文本或字符串值的搜索操作符。...(基于Levenshtein编辑距离),则为true 字符串搜索谓词与整个字符串值匹配 textPrefix:如果字符串值以给定的查询字符串开头 textRegex:如果字符串值与给定的正则表达式完全匹配...### 23.4 查询示例 26.4 查询示例 以下查询示例演示了教程上的一些谓词: // 1)获取name属性为“hercules”的节点 g.V().has("name", "hercules...26.7 集合 如果您使用的是Elasticsearch,则可以对SET和LIST类型的属性进行索引。

1.2K21
领券