-
内容大纲
Calcite是一款开源的动态数据管理框架,其目标是以一种方案适应所有需求场景,能为不同计算平台和数据源提供统一的查询引擎,它对于没有高并发、低延时的多数据源间的数据管理有着天然的优势,是解决多数据源统一管理问题的利器。
本书围绕Calcite,结合其数据库基础知识、核心理论以及相关的项目实践情况,从SQL的解析、校验、优化、执行等流程,对Calcite组件进行介绍。同时本书为部分章节配置对应的代码和实例,帮助读者加深理解。
本书由理论到实践,将源码解析与实际案例相结合,可以作为Calcite新手的入门图书以及快速上手的参考书,也可以作为大数据开发人员和从业人员的学习用书,还可以作为相关培训机构以及高等院校的教学用书。 -
作者介绍
-
目录
第1章 Calcite的前世今生
1.1 数据管理系统的发展历史
1.2 当前数据管理系统的困境
1.3 Calcite简史
1.3.1 发源时期
1.3.2 Apache Calcite时期
1.3.3 项目分拆阶段
1.4 Calcite生态系统
1.5 为什么使用Calcite
1.6 本章小结
第2章 Calcite架构概述
2.1 设计思想
2.1.1 聚焦查询优化
2.1.2 数据联邦
2.1.3 流式系统
2.2 整体架构
2.3 使用方式
2.4 核心特性
2.4.1 灵活可插拔
2.4.2 支持流式SQL
2.4.3 支持物化视图
2.4.4 支持多种数据模型
2.5 执行流程
2.5.1 服务的接收
2.5.2 SQL语法解析
2.5.3 语法树的校验
2.5.4 关系代数优化
2.5.5 执行并获取数据
2.6 本章小结
第3章 Calcite快速上手
3.1 下载、编译和运行
3.2 SQLLine操作方法
3.2.1 SQLLine的基本操作
3.2.2 SQLLine的进阶操作
3.2.3 其他操作
3.3 集成CSV文件开发实例
3.3.1 元数据定义
3.3.2 优化规则管理
3.4 本章小结
第4章 数据库查询优化技术
4.1 什么是数据库查询优化技术
4.2 查询优化器的内外结构
4.2.1 查询优化器的内部结构
4.2.2 优化器的外部关系
4.3 逻辑计划优化
4.3.1 关系代数
4.3.2 关系代数优化规则
4.4 物理计划优化
4.4.1 代价模型
4.4.2 逻辑代价
4.4.3 物理执行代价
4.4.4 算法代价
4.5 优化模型
4.5.1 启发式模型
4.5.2 火山模型
4.5.3 向量化模型
4.6 本章小结
第5章 服务层
5.1 Avatica架构介绍
5.2 Avatica执行结构和流程
5.2.1 Service接口
5.2.2 Meta接口
5.2.3 启动服务
5.3 Avatica鉴权
5.3.1 BASIC
5.3.2 DIGEST
5.3.3 SPNEGO
5.3.4 自定义鉴权
5.4 客户端驱动
5.4.1 Java驱动
5.4.2 Python驱动
5.5 命令行工具
5.5.1 使用SQLLine
5.5.2 自定义命令行交互方式
5.6 本章小结
第6章 解析层
6.1 语法解析过程
6.2 Calcite中的解析体系
6.2.1 抽象语法树的概念
6.2.2 SqlNode体系
6.3 JavaCC
6.3.1 JavaCC简介
6.3.2 JavaCC简单示例
6.3.3 Calcite中JavaCC的使用方法
6.4 Calcite整合Antlr方法
6.4.1 Antlr简介
6.4.2 上手Antlr
6.4.3 Calcite集成Antlr
6.5 Antlr对比JavaCC
6.5.1 输入输出
6.5.2 易用性
6.5.3 效率
6.5.4 在Calcite中如何选择
6.6 本章小结
第7章 校验层
7.1 何谓校验
7.2 元数据定义
7.2.1 Calcite中元数据的基本概念
7.2.2 数据模型定义
7.2.3 自定义表元数据实现
7.2.4 解析数据模型
7.3 校验流程
7.3.1 Calcite校验过程中的核心类
7.3.2 校验流程
7.4 元数据DDL
7.5 本章小结
第8章 优化层
8.1 关系代数与火山模型
8.1.1 关系代数
8.1.2 火山模型
8.2 优化器
8.2.1 优化器介绍
8.2.2 RBO模型和CBO模型
8.2.3 寻找关系代数最优解
8.3 Calcite优化器
8.3.1 构建算子树
8.3.2 RelNode
8.3.3 Calcite优化模型
8.4 自定义优化规则
8.4.1 CSV规则
8.4.2 RBO模型与CBO模型的对比
8.5 本章小结
第9章 数据源接入
9.1 Redis
9.1.1 配置model.json文件
9.1.2 配置Schema信息
9.1.3 定义表元数据
9.1.4 定义迭代器
9.2 PostgreSQL
9.2.1 构建元数据
9.2.2 自定义优化规则
9.2.3 整体流程
9.3 Janino介绍
9.4 本章小结
第10章 SQL函数扩展
10.1 UDF
10.1.1 UDF介绍
10.1.2 Calcite中如何定义UDF
10.2 UDAF
10.2.1 UDAF介绍
10.2.2 Calcite中如何定义UDAF
10.3 UDTF
10.3.1 UDTF介绍
10.3.2 Calcite中如何定义UDTF
10.4 执行流程
10.5 本章小结
第11章 空间数据查询
11.1 OGC简介
11.2 空间数据类型
11.3 空间函数
11.3.1 创建类函数
11.3.2 转换类函数
11.3.3 属性查询函数
11.3.4 空间判断函数
11.4 使用方法
11.5 自定义空间函数
11.6 本章小结
第12章 流式处理
12.1 流式查询简介
12.2 流式查询初体验
12.3 流式聚合查询
12.4 本章小结
第13章 视图
13.1 普通视图
13.2 物化视图
13.2.1 Join重写
13.2.2 联合重写
13.3 格
13.4 本章小结
第14章 Calcite在开源项目中的使用
14.1 Hive
14.1.1 Hive简介
14.1.2 Hive架构与执行流程
14.1.3 Hive集成Calcite
14.2 Kylin
14.2.1 Kylin简介
14.2.2 Kylin架构及执行流程
14.2.3 Kylin集成Calcite
14.3 Flink
14.3.1 Flink简介
14.3.2 Flink架构与执行流程
14.3.3 Flink集成Calcite
14.4 本章小结
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-

孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-

时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-

本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...
[
