目录
序1
前言3
第一部分 Trino入门
第1章 Trino介绍9
1.1 大数据带来的问题9
1.2 Trino来救场10
1.3 Trino使用场景13
1.4 Trino资源17
1.5 Trino简史21
1.6 小结22
第2章 安装和配置Trino23
2.1 使用Docker容器探索Trino23
2.2 使用归档文件安装Trino24
2.3 添加数据源27
2.4 运行Trino28
2.5 小结28
第3章 使用Trino29
3.1 Trino CLI29
3.2 Trino JDBC驱动34
3.3 Trino与ODBC38
3.4 客户端库38
3.5 Trino Web UI39
3.6 使用Trino执行SQL39
3.7 小结43
第二部分 深入理解Trino
第4章 Trino架构47
4.1 集群中的协调器和工作节点47
4.2基于连接器的架构50
4.3 catalog、schema和表52
4.4 查询执行模型52
4.5 查询计划55
4.6 优化规则59
4.7 实现规则61
4.8 基于代价的优化器63
4.9 使用表统计信息70
4.10 小结72
第5章 生产环境部署74
5.1 配置细节74
5.2 服务端配置74
5.3 日志75
5.4 节点配置76
5.5 JVM配置77
5.6 启动器77
5.7 集群安装79
5.8 使用RPM安装80
5.9在云上安装82
5.10 用Helm chart部署Kubernetes83
5.11 考虑集群规模84
5.12 小结85
第6章 连接器86
6.1 配置87
6.2 RDBMS连接器示例:PostgreSQL87
6.3 TPC-H连接器和TPC-DS连接器93
6.4 用于分布式存储数据源的Hive连接器94
6.5 现代分布式存储管理和分析103
6.6 非关系型数据源105
6.7 Trino JMX连接器105
6.8 black hole连接器107
6.9内存连接器107
6.10 其他连接器108
6.11 小结108
第7章 高级连接器示例109
7.1 用Phoenix连接HBase109
7.2 键值存储连接器示例:Accumulo110
7.3 Apache Cassandra连接器117
7.4 流系统连接器示例:Kafka117
7.5 文档存储连接器示例:Elasticsearch119
7.6 Trino中的联邦查询122
7.7 ETL和联邦查询128
7.8 小结128
第8章 在Trino中使用SQL129
8.1 Trino语句130
8.2 Trino系统表132
8.3 catalog134
8.4 schema135
8.5 information schema136
8.6 表137
8.7 视图143
8.8 会话信息和配置144
8.9 数据类型145
8.10 SELECT语句基础153
8.11 WHERE子句154
8.12 GROUP BY和HAVING子句155
8.13 ORDER BY子句和LIMIT子句157
8.14 JOIN语句157
8.15 UNION、INTERSECT和EXCEPT子句159
8.16 分组操作160
8.17 WITH子句161
8.18 子查询163
8.19 从表中删除数据165
8.20 小结165
第9章 高级SQL特性166
9.1 函数和运算符介绍166
9.2 标量函数和运算符167
9.3 布尔运算符167
9.4逻辑运算符169
9.5 用BETWEEN语句选择范围170
9.6 用IS (NOT) NULL检测值的存在170
9.7 数学函数和运算符170
9.8 三角函数171
9.9 常数和随机函数172
9.10 字符串函数和运算符172
9.11 字符串和映射174
9.12 Unicode174
9.13 正则表达式176
9.14 解嵌套复杂数据类型178
9.15 JSON函数180
9.16 日期和时间函数及运算符180
9.17 直方图183
9.18 聚合函数184
9.19 窗函数187
9.20 lambda表达式189
9.21 地理空间函数189
9.22 预处理语句190
9.23 小结192
第三部分 Trino的实际应用
第10章 安全195
10.1 认证196
10.2 授权199
10.3 加密204
10.4 CA与自签名证书212
10.5 证书认证213
10.6 Kerberos216
10.7 数据源访问和安全配置217
10.8 使用Hive连接器进行Kerberos认证219
10.9 集群分离220
10.10 小结220
第11章 将Trino与其他工具集成221
11.1 使用Apache Superset进行查询、可视化和更多操作221
11.2 使用RubiX提高性能222
11.3 使用Apache Airflow的工作流222
11.4 嵌入式Trino示例:Amazon Athena223
11.5 企业版:Starburst Enterprise和Starburst Galaxy226
11.6 其他集成示例227
11.7 自定义集成228
11.8 小结228
第12章 生产环境中的Trino229
12.1 使用Trino Web UI进行监控229
12.2 Trino SQL查询调优240
12.3 内存管理243
12.4 任务并发性246
12.5 工作节点调度246
12.6 网络数据交换247
12.7 JVM调优247
12.8 资源组249
12.9 小结253
第13章 真实世界案例254
13.1 部署和运行时平台254
13.2 集群规模255
13.3 Hadoop/Hive迁移的使用场景257
13.4 其他数据源257
13.5 用户和流量258
13.6 小结258
总结259