calcite
quxiuchengdev
这个作者很懒,什么都没留下…
展开
-
Apache Calcite教程-基础知识-流SQL窗口
流SQL中的窗口概念滚动窗口 Tumbling Window滑动窗口 Sliding Window会话窗口 Session Window注意流SQL中的窗口概念滚动窗口 Tumbling Window将元素分配给每个固定长度的窗口,滚动窗口具有固定的尺寸,不重叠元素滑动窗口 Sliding Window滑动窗口将元素分配给固定长度的窗口,并且附加每次窗口的滑动频率,可以存在窗口重叠的...原创 2019-04-11 15:29:44 · 944 阅读 · 0 评论 -
Apache Calcite教程-基础知识-水位线(Watermark)
水位线(水印) Watermark和Apache Calcite基本无关,和流式SQL有关,作为附加学习内容Watermark的概念数据流中经常出现事件时间(Event Time)乱序的情况,如果创建一个时间窗口为5s,但是数据延迟到达,就会引起数据的不准确,为了解决类似的问题,提出了水位线概念Flink Watermark设计周期Watermark (Periodic Waterma...原创 2019-04-11 16:46:53 · 798 阅读 · 0 评论 -
Apache Calcite教程-基础知识-SQL与关系代数
sql和关系代数常见SQL和关系代数的转换选择(selection)σ投影(projection) π并集(set union) U更名(rename) ρ相等连接 (equijoin)θ-join (theta join)sql和关系代数sql和关系代数相互转换名称英文标识选择selectionσ (sigma)投影projectionΠ (PI大写)...原创 2019-04-08 20:55:04 · 1554 阅读 · 0 评论 -
Apache Calcite教程-SQL解析-Calcite自定义语法解析
Calcite自定义SQL解析常用方法和配置config.fmpp配置和Parser.jj文件结合说明package,class,importskeywordsnonReservedKeywordsjoinTypesstatementParserMethodsliteralParserMethodsdataTypeParserMethodsalterStatementParserMethodsc...原创 2019-04-25 20:06:22 · 12756 阅读 · 3 评论 -
Apache Calcite教程-SQL解析-Calcite SQL解析
Calcite SQL解析代码目录config.fmppparserImpls.ftl/compoundIdentifier.ftl生成解析器的流程Sql解析使用解析示例代码解析流程常用类SpanSqlAbstractParserImplSqlParseExceptionSqlParserSqlParserImplFactorySqlParserPosSqlParserUtilSqlNodeSq...原创 2019-04-23 21:11:40 · 11591 阅读 · 0 评论 -
Apache Calcite教程-SQL解析-FMPP
fmpp 具体代码实例1.添加Maven依赖fmpp配置文件freemarker模板1freemarker模板2执行maven插件生成文件fmpp 具体代码实例1.添加Maven依赖<plugin> <configuration> <!--配置文件地址--> <cfgFile>src/main/code...原创 2019-04-19 17:49:07 · 3649 阅读 · 0 评论 -
Apache Calcite教程-SQL解析-JavaCC教程
JavaCC语法描述文件JavaCC类介绍SimpleCharStreamXXXXXConstantsXXXXXTokenManagerTokenXXXXXParseExceptionTokenMgrError常见配置 optionsJavaCC工作原理语法二义性解决JavaCC语法Java代码JAVA函数条件循环正则表达式代码示例Maven编译简单计算器简单语法示例JavaCC使用递归下降...原创 2019-04-19 17:58:31 · 4047 阅读 · 0 评论 -
Apache Calcite教程-Schema,Table.自定义Schema,自定义Table
Apache Calcite - schemaschema - 常用类SchemaAbstractSchemaSchemaPlusSchemaFactoryTableAbstractTableScannableTableQueryableTableTranslatableTableFilterableTableProjectableFilterableTableStreamableTableAb...原创 2019-04-30 11:24:59 · 5684 阅读 · 0 评论 -
Apache Calcite教程-基础知识-SQL优化基础
基础概念逻辑优化关系代数等价变换运算符角度优化考虑选择基本选择性质分解有复杂条件的选择选择和叉积选择和集合运算选择和集合运算图解选择和投影投影基本投影性质投影和集合云算选择和集合运算图解运算规则度优化考虑连接,笛卡尔积交换律连接,笛卡尔积结合律投影的串接定律选择的串接定律投影与选择交换律选择与笛卡尔积的分配律选择与并的分配律选择与差的分配律投影与笛卡儿积的分配律投影与并的分配律子查询优化视图重写...原创 2019-04-11 13:00:36 · 3094 阅读 · 1 评论 -
Apache Calcite教程 -目录
Apache Calcite教程-官方翻译-背景Apache Calcite教程-官方翻译-关系代数Apache Calcite教程-官方翻译-适配器Apache Calcite教程-官方翻译-空间Apache Calcite教程-官方翻译-流Apache Calcite教程-关系代数...原创 2019-04-07 15:36:47 · 9222 阅读 · 0 评论 -
Apache Calcite教程-基础知识-关系代数
推荐阅读《数据库查询优化器的艺术》 关系代数解释关系代数解释关系代数原创 2019-04-07 15:32:00 · 1904 阅读 · 0 评论 -
RelNode继承类
RelNode RelNode(org.apache.calcite.rel.RelNode) AbstractRelNode (org.apache.calcite.rel) BiRel (org.apache.calcite.rel) Correlate (org.apache.calcite.rel.core) ...原创 2018-12-06 17:50:49 · 912 阅读 · 1 评论 -
RexNode
RexNodeRexNode (org.apache.calcite.rex) RexCall (org.apache.calcite.rex) RexMRAggCall in Match (org.apache.calcite.rel.core) RexOver (org.apache.calcite.rex) RexSubQuery (...原创 2018-12-06 17:52:19 · 671 阅读 · 0 评论 -
Apache Calcite教程-官方翻译-背景
前奏首先,我们需要明确一个概念:Apache Calcite 是一个动态的数据管理框架。Calcite管理了很多种典型的数据库,但是他并没有这些数据库具有的关键能力:数据存储、数据处理算法、元数据的存储。也可以这样说:Calcite只是对各种数据库(不同的数据源)的查询进行了封装,并对外提供了统一的查询入口。Calcite是有意的屏蔽这些基本的数据库所具有的能力。我们将看到这种“有意识”的做...翻译 2019-04-06 21:05:28 · 3438 阅读 · 0 评论 -
Apache Calcite教程-官方翻译-教程
快速入门下载安装**环境准备:** java版本\(8 9 10)开始:模式发现schemas中的Tables和views自定义表模型中的注释执行计划优化查询查询优化过程JDBC适配器克隆JDBC适配器更多的主题快速入门本章主要介绍一个简单的CSV适配器如何一步一步的创建和连接到Calcite。这个适配器能够将一个目录下面的csv文件表现成一个包含各种表的schema。Calcite已经实现...翻译 2019-04-06 21:11:42 · 2411 阅读 · 0 评论 -
Apache Calcite教程-官方翻译-关系代数
代数代数创建tablescan添加一个项目添加过滤器和聚合压栈和出栈字段名称和序号API摘要关系运算符堆栈方法Scalar expression methods模式方法组键方法聚合调用的方法代数关系代数是Calcite的核心。每个查询都被表示为一颗关联操作树。你可以将SQL翻译成关联代数,或者直接建立关联操作树。规划器规则使用保留语义的数学标识来转换表达式树。例如,如果过滤器不引用来自其他...翻译 2019-04-06 21:13:50 · 2692 阅读 · 0 评论 -
Apache Calcite教程-官方翻译-适配器
适配器schema 适配器引擎驱动Server 服务器可扩展性函数与操作符聚合函数窗口函数分组窗口函数表函数和表宏 - 不理解含义扩展解析生成并使用SQL方言声明自定义Schema反射的Schema声明自定义表修改数据流将操作下推到表中类型系统关系运算符计划规则调用约定 Calling conventions - 不懂内置的SQL实现统计数据和成本适配器schema 适配器模式适配器允许C...翻译 2019-04-06 21:15:04 · 5169 阅读 · 0 评论 -
Apache Calcite教程-官方翻译-空间
空间 - 全篇没有看明白啥意思介绍用空间支持空间 - 全篇没有看明白啥意思Calcite的目标(aiming)是实现SQL的1.2(version 1.2)版本OpenGIS简单特征实现规范,这是由PostGIS和H2GIS等空间数据库实现的标准。我们还旨在为空间索引spatial indexes和其他形式的查询优化添加优化器支持。介绍启用空间支持致谢介绍空间数据库是针...翻译 2019-04-06 21:16:01 · 928 阅读 · 0 评论 -
Apache Calcite教程-官方翻译-流
流介绍一个schema例子一个简单查询过滤行投影表达式滚动窗口改进滚动窗口跳跃窗口分组集合聚合之后过滤子查询,视图和SQL的闭包属性在流和关系之间转换饼图”问题:关于流的关系查询排序表构造函数滑动窗口级联窗口流表JOIN流流JOINDML标点符号流状态实现不实现在这个文件中函数参考文献流Calcite扩展了SQL和关系代数,以支持流式查询。介绍一个schema例子一个简单查询过滤行...翻译 2019-04-06 21:20:03 · 1500 阅读 · 0 评论 -
Apache Calcite教程-validate校验
Calcite校验常见类SqlValidator验证SQL语句的解析树SqlValidatorImplSqlValidator默认实现类,校验的核心类,整体代码最为复杂SqlValidatorScopeSQL校验名称解析范围SqlValidatorScope describes the tables and columns accessible at a particular po...原创 2019-05-19 15:58:57 · 6765 阅读 · 4 评论