calcite learn
上层尽量简单的封装请求,所以它定义为标准的SQL,代码里告诉Calcite,虚拟出来的表是什么、字段是什么、字段类型是什么等,整体抽象为一个个Schema,对于我们来说就查Calcite虚拟出来东西,不用关心底层真正对接了哪些数据源,底层通过定义各种adapter,来对接不同的查询和存储引擎
自定义解析
- 创建模型,model.json
- 自定义SchemaFactory,CsvSchemaFactory
- 自定义Schema,CsvSchema
- 自定义Table,CsvTable、CsvScannableTable
- 自定义Enumerator,CsvEnumerator
Calcite 主要功能
SQL 解析
SQL 校验
查询优化
SQL 生成器
数据连接
Catelog: 主要定义SQL语义相关的元数据与命名空间。
SQL parser: 主要是把SQL转化成AST.
SQL validator: 通过Catalog来校证AST.
Query optimizer: 将AST转化成物理执行计划、优化物理执行计划.
SQL generator: 反向将物理执行计划转化成SQL语句.
属性 描述
approximateDecimal 是否可以接受DECIMAL类型上的聚合函数的近似结果
approximateDistinctCount 是否可以接受聚合函数COUNT(DISTINCT …)的近似结果
approximateTopN 是否可以接受”TopN”查询(ORDER BY aggFun() DESC LIMIT n)的近似结果
caseSensitive 标识符是否区分大小写。如果未指定,则使用来自于lex的值。
conformance SQL一致性级别。值:DEFAULT(默认,类似于PRAGMATIC_2003),LENIENT,MYSQL_5,ORACLE_10,ORACLE_12,PRAGMATIC_99,PRAGMATIC_2003,STRICT_92,STRICT_99,STRICT_2003,SQL_SERVER_2008。
createMaterializations Calcite是否创建物化的东西。默认false
defaultNullCollation 如果在查询中既不指定NULLS FIRST也不指定NULLS LAST,应如何对NULL值进行排序。缺省值为HIGH,与Oracle相同,对NULL值进行排序。
druidFetch 执行一次SELECT查询时,Druid适配器应该读取多少行。
forceDecorrelate 计划器是否应该尽可能地相互关联。默认为true。
fun 内置函数和运算符的集合。有效值是“标准”(默认),“oracle”,“空间”,并可以使用逗号连接组合,例如“oracle,spatial”。
lex 词汇(关键字)策略。值是ORACLE(默认),MYSQL,MYSQL_ANSI,SQL_SERVER,JAVA。
materializationsEnabled Calcite是否使用物化的东西。默认false
model JSON模型文件的URI
parserFactory 解析器工厂。实现SqlParserImplFactory 接口的类的名称,并且有一个公有的默认构造方法或者INSTANCE常量
quoting 如何引用标识符。值是DOUBLE_QUOTE,BACK_QUOTE,BRACKET。如果未指定,则使用来自于lex的值。
quotedCasing 如何存储使用了引号的标识符。值是UNCHANGED, TO_UPPER, TO_LOWER。如果未指定,则使用来自于lex的值。
schema 初始化schema名称
schemaFactory Schema工厂。实现SchemaFactory接口的类的名称,并且有一个公有的默认构造方法或者INSTANCE常量。如果指定了model,此属性会被忽略。
schemaType Schema类型。值必须是“MAP”(默认值),“JDBC”或“CUSTOM”。(如果schemaFactory指定则隐式指定为CUSTOM类型)如果指定了model,此属性会被忽略。
spark 指定是否应将Spark用作无法推送到源系统的处理引擎。如果为false(默认值),则Calcite将生成实现了Enumerable接口的代码。
timeZone 时区,例如“gmt-3”。默认是JVM的时区。
typeSystem 类型系统。实现了接口RelDataTypeSystem的类的名称,并具有公有的默认构造函数或INSTANCE常量。
unquotedCasing 如果标识符未被引用,如何存储。有效值是UNCHANGED,TO_UPPER,TO_LOWER。如果未指定,则使用来自于lex的值。
calcite learn相关推荐
- 【Kaggle Learn】Python 1-4
[Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...
- Blender赛车动画制作学习教程 Learn Race Car Animation with Blender
使用Blender 2.93创建您自己的惊人汽车动画 你会学到什么 Blender的界面和导航 建模 UV制图 材料 动画 照明设备 渲染 合成 要求 下载并安装Blender.免费下载和免费用于任何 ...
- Blender3.0动画制作入门学习教程 Learn Animation with Blender (2021)
要求 下载并安装Blender.免费下载和免费用于任何目的. 描述 加入我的动画课程. 在本课程中,我将从头开始讲述在Blender中创建动画场景的过程. 从第一步到最终渲染.在这个课程中,我们将使用 ...
- Unity与C#创建一个3D平台游戏 Learn to Create a 3D Platformer Game with Unity C#
游戏开发变得容易了.使用Unity学习C#并创建您自己的3D平台! 你会学到什么 学习现代通用编程语言C#. 了解Unity中3D开发的功能 发展强大的可转移的解决问题的技能 了解游戏开发过程 了解面 ...
- 学会在Unity中创建一个Match-3益智游戏 Learn To Create a Match-3 Puzzle Game in Unity
MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:48场讲座(6h 38m) |大小解压后:2.8 G ...
- Unity中创建本地多人游戏完整案例视频教程 Learn To Create A Local Multiplayer Game In Unity
Unity中创建本地多人游戏完整案例视频教程 Learn To Create A Local Multiplayer Game In Unity MP4 |视频:h264,1280x720 |音频:A ...
- Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D C#: Learn To Code Making 3D Games
Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D & C#: Learn To Code Making 3D Games Full Guide To Unit ...
- 读书笔记2013第10本:《学得少却考得好Learn More Study Less》
<学得少却考得好Learn More Study Less>这本书最早是从褪墨网站上看到的,crowncheng翻译了全文.这本书介绍了不少学习方法,非常适合在校的学生,原文的作者Scot ...
- The Road to learn React书籍学习笔记(第三章)
代码详情 声明周期方法 通过之前的学习,可以了解到ES6 类组件中的生命周期方法 constructor() 和 render() constructor() 构造函数只有在组件实例化并插入到 DOM ...
最新文章
- Android系统中Parcelable和Serializable的区别
- python实现文件下载-python实现上传下载文件功能
- Leet Code OJ 28. Implement strStr() [Difficulty: Easy]
- Android开发面试题之Activity启动模式讲解总结
- 深入浅出逻辑组合电路(2)
- debconf-set-selections mysql_docker 静默安装mysql
- 循环矩阵与傅里叶相关的几点性质
- 迈足狂奔!铁塔公司:目前北京已建好4400多座大型5G基站
- c# 将doc转换为docx
- PHP中几种b2b,用php开发 b2b 用什么架构?
- BugkuCTF 你必须让他停下
- set学习(系统的学习)
- [Java] 蓝桥杯BASIC-14 基础练习 时间转换
- 叙述计算机网络的分类与拓扑结构,计算机的网络中有线网络和无线网络最主要的区别是()。...
- 基于CarMaker的C-NCAP主动安全系统试验仿真(一)
- 2035年进入现代化交通强国行列
- QQ邮箱收不到GitHub验证邮件
- 大小写转换(大小写转换键是哪个键)
- Replication Failed to register VRMS. Operation ID: bef61197-acf3-46ac-bffd-d457
- 电力窃漏电用户自动识别(SPSS Modeler)