目錄
序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執(zhí)行SQL39
3.7 小結43
第二部分 深入理解Trino
第4章 Trino架構47
4.1 集群中的協(xié)調器和工作節(jié)點47
4.2基于連接器的架構50
4.3 catalog、schema和表52
4.4 查詢執(zhí)行模型52
4.5 查詢計劃55
4.6 優(yōu)化規(guī)則59
4.7 實現(xiàn)規(guī)則61
4.8 基于代價的優(yōu)化器63
4.9 使用表統(tǒng)計信息70
4.10 小結72
第5章 生產環(huán)境部署74
5.1 配置細節(jié)74
5.2 服務端配置74
5.3 日志75
5.4 節(jié)點配置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 考慮集群規(guī)模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 現(xiàn)代分布式存儲管理和分析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 流系統(tǒng)連接器示例:Kafka117
7.5 文檔存儲連接器示例:Elasticsearch119
7.6 Trino中的聯(lián)邦查詢122
7.7 ETL和聯(lián)邦查詢128
7.8 小結128
第8章 在Trino中使用SQL129
8.1 Trino語句130
8.2 Trino系統(tǒng)表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 企業(yè)版:Starburst Enterprise和Starburst Galaxy226
11.6 其他集成示例227
11.7 自定義集成228
11.8 小結228
第12章 生產環(huán)境中的Trino229
12.1 使用Trino Web UI進行監(jiān)控229
12.2 Trino SQL查詢調優(yōu)240
12.3 內存管理243
12.4 任務并發(fā)性246
12.5 工作節(jié)點調度246
12.6 網絡數據交換247
12.7 JVM調優(yōu)247
12.8 資源組249
12.9 小結253
第13章 真實世界案例254
13.1 部署和運行時平臺254
13.2 集群規(guī)模255
13.3 Hadoop/Hive遷移的使用場景257
13.4 其他數據源257
13.5 用戶和流量258
13.6 小結258
總結259