技术栈
calcite
一只努力的微服务
3 天前
大数据
·
数据库
·
calcite
·
优化规则
【Calcite 系列】深入理解 Calcite 的 IntersectToSemiJoinRule
本文围绕 IntersectToSemiJoinRule 的源码实现,介绍 Calcite 如何把 INTERSECT 操作改写成一系列 SEMI JOIN,从而让优化器能利用 Join 相关的优化手段(哈希连接、索引等)来执行交集语义。
一只努力的微服务
3 天前
大数据
·
数据库
·
calcite
·
优化规则
【Calcite 系列】深入理解 Calcite 的 SetOpToFilterRule
本文围绕 SetOpToFilterRule 的源码实现,介绍 Calcite 如何把多个来自同一数据源、仅谓词不同的 UNION / INTERSECT / MINUS 分支,改写成单个数据源加复合过滤条件的等价形式,从而消除重复表扫描、增强谓词下推能力。
一只努力的微服务
6 天前
calcite
·
函数依赖
【Calcite 系列】深入解析 Apache Calcite 的函数依赖实现 RelMdFunctionalDependency
本文围绕 core/src/main/java/org/apache/calcite/rel/metadata/RelMdFunctionalDependency.java 这份实现,系统介绍 Calcite 是如何在关系代数树上推导函数依赖(Functional Dependency, FD)。相关 PR:CALCITE-5913、CALCITE-7218、CALCITE-7219
一只努力的微服务
6 天前
calcite
·
优化规则
【Calcite 系列】深入理解 Calcite 的 JoinExpandOrToUnionRule
本文围绕 JoinExpandOrToUnionRule 的源码实现,介绍 Calcite 如何把带 OR 条件的 Join 改写成多个更容易优化的 Join 分支,并通过 UNION ALL、ANTI JOIN 和补 NULL 的方式保持语义等价。
james的分享
24 天前
大数据
·
sql
·
apache
·
calcite
大数据领域核心 SQL 优化框架Apache Calcite介绍
Apache Calcite 是一个 动态数据管理框架,核心能力是:🔥 SQL 解析 + 关系代数表示 + 查询优化 + 可插拔执行引擎适配
一只努力的微服务
3 个月前
java
·
calcite
【Calcite 系列】将 INTERSECT 转换为 EXISTS
在 SQL 标准中,INTERSECT(交集)是一个常见的集合操作符。默认情况下,INTERSECT 暗含 DISTINCT 语义,即返回同时存在于两个查询结果集中的唯一行。
长路 ㅤ
7 个月前
代码生成
·
calcite
·
sql解析
·
javacc
·
自定义语法
Calcite自定义扩展SQL案例详细流程篇
博主介绍:✌目前全网粉丝4W+,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。
张铁牛
1 年前
db
·
calcite
·
middleware
6. Calcite添加自定义函数
在上篇博文中介绍了如何使用calcite进行sql验证, 但是真正在实际生产环境中我们可能需要使用到此时我们需要将自定义的函数注册到calcite中, 用于sql验证和执行. 例如注册一个简单的函数 如: 将数据库中的性别字段值做字典转换.
张铁牛
1 年前
db
·
calcite
5. 想在代码中验证sql的正确性?
我们在平时的开发中可能会遇到需要验证一下sql是否正确,也就是需要check一下sql。判断sql是否正确一般包含一下几点:
张铁牛
1 年前
db
·
calcite
·
middleware
4. 使用sql查询excel内容
我们在前面的文章中提到了calcite支持csv和json文件的数据源适配, 其实就是将文件解析成表然后以文件夹为schema, 然后将生成的schema注册到RootSehema(RootSchema是所有数据源schema的parent,多个不同数据源schema可以挂在同一个RootSchema下)下, 最终使用calcite的特性进行sql的解析查询返回.
张铁牛
1 年前
db
·
calcite
·
middleware
3. 使用sql查询csv/json文件内容,还能关联查询?
我们在前面的文章提到了calcite可以支持文件系统的数据源适配, 其实官方已经提供了相应的能力, 其支持csv和json的查询适配, 废话不多说, 直接展示.
张铁牛
1 年前
db
·
calcite
·
middleware
2. 什么?你想跨数据库关联查询?
我们平时开发中可能会遇到这样的问题,现在分布式环境下每个服务对应的数据库都是独立的,每个应用使用的都是自己的数据库,或者项目现场我们的服务需要使用第三方的提供的数据,但是第三方直接把数据库信息扔给我们,让我们自己去查询,像这种情况我们一般就两种做法
张铁牛
1 年前
db
·
calcite
1. Calcite元数据创建
Calcite 是一款来自 Apache 的开源动态数据管理框架,核心功能是提供 SQL 查询解析、优化及执行等基础能力,以灵活支持多种数据源,广泛应用于各类数据处理系统。以下从其功能特性、应用场景、优势三方面简单概述:
FserSuN
1 年前
apache
·
calcite
Apache Calcite - 查询优化之自定义优化规则
为了自定义优化规则,我们需要继承RelOptRule类。org.apache.calcite.plan.RelOptRule 是 Apache Calcite 中的一个抽象类,用于定义优化规则。优化规则是用于匹配查询计划中的特定模式,并将其转换为更优化的形式的逻辑。通过继承 RelOptRule,你可以创建自定义的优化规则,以满足特定的优化需求。
小刘新鲜事儿
2 年前
calcite
大数据计算引擎中的Calcite
Calcite是一个动态数据库管理框架,具备数据库管理系统的功能 Calcite具备SQL解析、校验、优化、生成、连接查询等功能 Calcite能够为不同平台和数据源提供统一的查询引擎
roman_日积跬步-终至千里
2 年前
apache
·
calcite
【源码分析】 Calcite 处理流程详解:calcite架构、处理流程以及就一个运行示例进行源码分析
本文主要描述了解calcite,主要为了了解等原理打基础。Apache Calcite是一个动态的数据管理框架, 它可以实现SQL的解析, 验证, 优化和执行。
roman_日积跬步-终至千里
2 年前
calcite
【源码预备】Calcite基础知识与概念:关系代数概念、查询优化、sql关键字执行顺序以及calcite基础概念
本文主要描述:Calcite 相关的基础性内容。上篇了解了【源码分析】 Calcite 处理流程详解:calcite架构、处理流程以及就一个运行示例进行源码分析之后,我们对calcite有了一定的认知,但有些细节还未说明,所以本篇讨论对 Calcite 相关的基础性内容进行说明。希望通过本篇能够对Calcite的原理细节有一个更加清晰的了解。
我是有底线的