描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787115648587
内容丰富:本书全面覆盖了TDengine的基础知识、运维管理、应用开发到技术内幕,为读者提供一站式学习资源。
紧贴前沿领域:书中不仅介绍了TDengine的核心概念和功能,还深入探讨了时序数据处理的最新趋势和技术创新,保持了内容的前沿性。
深入浅出:本书以通俗易懂的语言解释复杂概念,通过逐步引导的方式,使读者能够轻松理解并掌握TDengine的高级特性。
理论与实践相结合:通过大量的实例演示和实践案例,本书将理论与实际应用紧密结合,帮助读者更好地将知识应用于具体场景。
TDengine官方出品:本书由TDengine官方具有丰富实战经验的行业专家撰写,确保了内容的专业性和权威性,为读者提供了可靠的学习指导。
本书由浅入深地阐述了时序大数据平台TDengine的核心原理与实战案例。首先,本书为读者提供了时序数据的基础知识和TDengine的核心特性概览,包括数据模型、数据写入、数据查询、数据订阅和流计算等;其次,详细介绍了TDengine的日常运维管理,包括安装部署、资源规划、图形化管理、数据安全等关键内容;然后,深入讲解了如何利用TDengine进行应用开发,涵盖多种编程语言的连接器使用、订阅数据,以及自定义函数的开发等高级功能;接下来,为数据库研发爱好者揭秘TDengine的内核设计,从分布式架构到存储引擎、查询引擎、数据订阅,再到流计算引擎的详细阐述;最后,通过分析典型应用场景案例,展示TDengine如何在实际业务中发挥作用。
本书架构清晰,内容丰富,理论与实践相结合,适合作为需要使用TDengine进行大数据处理的开发者、架构师和产品经理的技术参考与培训资料。
第 一部分 基础知识
第 1章 时序数据 1
1.1 什么是时序数据 1
1.2 时序数据的十大特征 2
1.3 时序数据的典型应用场景 3
1.4 处理时序数据所需要的核心模块 5
1.5 专用时序数据处理工具的必要性 6
1.6 选择时序数据处理工具的标准 8
第 2章 TDengine入门 10
2.1 TDengine产品 10
2.2 TDengine主要功能与特性 11
2.3 TDengine与典型时序数据库的区别 12
2.4 TDengine安装和启动 13
2.4.1 在Linux操作系统中安装和启动 14
2.4.2 Docker方式安装和启动 15
2.4.3 故障排查 16
2.5 TDengine云服务 16
2.5.1 新用户注册 16
2.5.2 创建实例 17
2.6 通过taosBenchmark体验写入速度 17
2.7 通过TDengine CLI体验查询速度 18
第3章 TDengine数据模型 19
3.1 基本概念 20
3.1.1 采集量 20
3.1.2 标签 20
3.1.3 数据采集点 20
3.1.4 表 21
3.1.5 超级表 21
3.1.6 子表 22
3.1.7 库 22
3.1.8 时间戳 23
3.2 数据建模 24
3.2.1 创建数据库 24
3.2.2 创建超级表 25
3.2.3 创建表 25
3.2.4 自动建表 26
3.2.5 创建普通表 26
3.2.6 多列模型与单列模型 27
第4章 TDengine数据写入 29
4.1 写入 29
4.1.1 一次写入一条 29
4.1.2 一次写入多条 30
4.1.3 一次写入多表 30
4.1.4 指定列写入 30
4.1.5 写入记录时自动建表 30
4.1.6 通过超级表写入 31
4.1.7 零代码方式写入 31
4.2 更新 32
4.3 删除 32
第5章 TDengine数据查询 33
5.1 基本查询 33
5.2 聚合查询 34
5.3 数据切分查询 36
5.4 窗口切分查询 36
5.4.1 时间戳伪列 38
5.4.2 时间窗口 38
5.4.3 状态窗口 43
5.4.4 会话窗口 44
5.4.5 事件窗口 46
5.4.6 计数窗口 47
5.5 时序数据特有函数 48
5.6 嵌套查询 49
5.7 union子句 50
5.8 关联查询 50
5.8.1 Join概念 50
5.8.2 语法说明 52
5.8.3 Join功能 52
5.8.4 约束和限制 53
第6章 TDengine高级功能 55
6.1 数据订阅 55
6.1.1 主题类型 56
6.1.2 删除主题 57
6.1.3 查看主题 58
6.1.4 创建消费者 58
6.1.5 查看消费者 58
6.1.6 删除消费组 58
6.1.7 查看订阅信息 58
6.1.8 订阅数据 58
6.1.9 回放功能 59
6.2 数据缓存 59
6.2.1 写缓存 60
6.2.2 读缓存 60
6.2.3 元数据缓存 61
6.2.4 文件系统缓存 61
6.2.5 实时数据查询的缓存实践 62
6.3 流计算 63
6.3.1 创建流计算 63
6.3.2 流计算的分区 65
6.3.3 流计算读取历史数据 66
6.3.4 流计算的触发模式 67
6.3.5 流计算的窗口关闭 67
6.3.6 流计算对于过期数据的处理策略 68
6.3.7 流计算对于修改数据的处理策略 68
6.3.8 流计算的其他策略 69
6.3.9 流计算的相关操作 70
6.4 边云协同 71
6.4.1 为什么需要边云协同 71
6.4.2 TDengine的边云协同解决方案 71
6.4.3 边云协同的优势 73
6.5 零代码数据源接入 73
6.5.1 支持的数据源 73
6.5.2 数据提取、过滤和转换 74
6.5.3 任务的创建 75
6.5.4 任务管理 76
第二部分 运维管理
第7章 集群安装部署 77
7.1 组件介绍 77
7.1.1 taosd 78
7.1.2 taosc 78
7.1.3 taosAdapter 79
7.1.4 taosKeeper 79
7.1.5 taosExplorer 80
7.1.6 taosX 80
7.1.7 taosX Agent 80
7.1.8 应用程序或第三方工具 81
7.2 资源规划 81
7.2.1 服务器内存需求 82
7.2.2 客户端内存需求 83
7.2.3 CPU需求 84
7.2.4 存储需求 84
7.2.5 多级存储 85
7.2.6 网络带宽需求 86
7.2.7 物理机或虚拟机台数 87
7.2.8 TDengine网络端口要求 87
7.3 手动部署 88
7.3.1 安装与配置 88
7.3.2 部署taosd 90
7.3.3 部署taosAdapter 96
7.3.4 部署taosKeeper 98
7.3.5 部署taosX 98
7.3.6 部署taosX Agent 99
7.3.7 部署taosExplorer 100
7.4 Docker部署 101
7.4.1 启动TDengine 101
7.4.2 在host网络模式下启动TDengine 102
7.4.3 以指定的hostname和port启动TDengine 102
7.5 Kubernetes部署与Helm部署 103
第8章 图形化管理工具 104
8.1 集群运行监控 104
8.1.1 taosKeeper的安装与配置 104
8.1.2 基于TDinsight的监控 105
8.2 可视化管理 107
8.2.1 登录 107
8.2.2 运行监控面板 107
8.2.3数据写入 107
8.2.4 数据浏览器 108
8.2.5 编程 108
8.2.6 流计算 108
8.2.7 数据订阅 108
8.2.8 工具 108
8.2.9 数据管理 108
第9章 数据安全 109
9.1 用户管理 109
9.1.1 创建用户 109
9.1.2 查看用户 110
9.1.3 修改用户信息 110
9.1.4 删除用户 110
9.2 权限管理 110
9.2.1 资源管理 111
9.2.2 授权 111
9.2.3 查看授权 115
9.2.4 撤销授权 115
9.3 数据备份、恢复、容错和灾备 116
9.3.1 基于taosdump进行数据备份恢复 116
9.3.2 基于TDengine Enterprise进行数据备份恢复 117
9.3.3 容错 117
9.3.4 数据灾备 118
9.4 更多的安全策略 118
9.4.1 IP白名单 119
9.4.2 审计日志 119
9.4.3 数据加密 120
第三部分 应用开发
第 10章 SQL执行 122
10.1 连接器 122
10.1.1 建立连接的方式 123
10.1.2 Java连接器简介 124
10.1.3 Java连接器的JDBC和JRE兼容性 124
10.1.4 安装Java连接器 124
10.1.5 TDengine数据类型和Java数据类型的转换关系 124
10.2 建立连接 125
10.2.1 指定URL以获取连接 125
10.2.2 指定URL和Properties以获取连接 127
10.2.3 配置参数的优先级 128
10.3 执行SQL 128
10.3.1 创建数据库和表 128
10.3.2 写入数据 129
10.3.3 查询数据 129
10.3.4 执行带有reqId的SQL 130
10.3.5 通过参数绑定方式高效写入数据 130
第 11章 无模式写入 133
11.1 无模式写入行协议 133
11.2 时间分辨率识别 136
11.3数据模式映射规则 136
11.4 数据模式变更处理 137
11.5 Java连接器无模式写入样例 137
11.6 查询写入的数据 138
第 12章 订阅数据 140
12.1 创建主题 140
12.2 创建消费者 141
12.3 订阅消费数据 141
12.4 指定订阅offset 142
12.5 提交offset 143
12.6 取消订阅和关闭消费 143
第 13章 自定义函数 144
13.1 自定义函数简介 144
13.2 用C语言开发UDF 144
13.2.1 接口定义 144
13.2.2 标量函数接口 144
13.2.3 聚合函数接口 145
13.2.4 初始化和销毁接口 145
13.2.5 标量函数模板 146
13.2.6 聚合函数模板 146
13.2.7 编译 147
13.3 用Python语言开发UDF 147
13.3.1 准备环境 147
13.3.2 接口定义 147
13.3.3 标量函数接口 147
13.3.4 聚合函数接口 148
13.3.5 初始化和销毁接口 148
13.3.6 标量函数模板 148
13.3.7 聚合函数模板 149
13.3.8 数据类型映射 149
13.4 管理UDF 150
13.4.1 创建UDF 150
13.4.2 删除UDF 151
13.4.3 查看UDF 151
第 14章 与第三方工具集成 152
14.1 Grafana 152
14.1.1 前置条件 152
14.1.2 安装TDengine Datasource插件 153
14.1.3 创建Dashboard 153
14.2 Looker Studio 155
14.2.1 获取 156
14.2.2 使用 156
14.3 Power BI 157
14.3.1 前置条件 157
14.3.2 安装ODBC驱动 157
14.3.3 配置ODBC数据源 157
14.3.4 导入TDengine数据到Power BI 158
14.3.5 智能电表样例 159
14.4 永洪BI 160
14.4.1 安装永洪BI 160
14.4.2 安装JDBC驱动 160
14.4.3 配置JDBC数据源 160
14.4.4 创建TDengine数据集 161
14.4.5 制作可视化报告 162
第四部分 技术内幕
第 15章 整体架构 163
15.1 集群与基本逻辑单元 163
15.1.1 主要逻辑单元 164
15.1.2 节点之间的通信 167
15.1.3 一个典型的消息流程 170
15.2 存储模型与数据分片、数据分区 171
15.2.1 存储模型 171
15.2.2 数据分片 172
15.2.3 数据分区 173
15.2.4 负载均衡与扩容 174
15.3 数据写入与复制流程 174
15.3.1 leader vnode写入流程 174
15.3.2 follower vnode写入流程 175
15.3.3 主从选择 176
15.3.4 同步复制 176
15.3.5 成员变更 176
15.3.6 重定向 177
15.4 缓存与持久化 177
15.4.1 时序数据缓存 177
15.4.2 持久化存储 178
15.4.3 预计算 179
15.4.4 多级存储与对象存储 179
第 16章 存储引擎 181
16.1 行列格式 181
16.1.1 行格式 181
16.1.2 列格式 182
16.2 vnode存储 183
16.2.1 vnode存储架构 183
16.2.2 元数据的存储 184
16.2.3 时序数据的存储 186
16.3 数据压缩 189
16.3.1 存储压缩 189
16.3.2 传输压缩 191
16.3.3 压缩流程 191
第 17章 查询引擎 193
17.1 各模块在查询计算中的职责 193
17.1.1 taosc 193
17.1.2 mnode 193
17.1.3 vnode 194
17.1.4 执行器 194
17.1.5 UDF Daemon 194
17.2 查询策略 195
17.3 SQL说明 195
17.4 查询流程 196
17.5 多表聚合查询流程 196
17.6 查询缓存 198
17.6.1 缓存的数据类型 198
17.6.2 缓存方案 198
第 18章 数据订阅 200
18.1 基本概念 200
18.1.1 主题 200
18.1.2 生产者 201
18.1.3 消费者 201
18.2 数据订阅架构 203
18.3 再平衡过程 204
18.4 消费者状态处理 205
18.5 消费数据 206
第 19章 流计算引擎 208
19.1 相关概念 209
19.1.1 有状态的流计算 209
19.1.2 预写日志 209
19.1.3 事件驱动执行 210
19.1.4 时间 210
19.1.5 时间窗口聚合 210
19.1.6 乱序处理 211
19.2 流计算任务 211
19.2.1 source task 212
19.2.2 agg task 212
19.2.3 sink task 212
19.3 流计算节点 213
19.4 状态与容错处理 213
19.4.1 检查点 213
19.4.2 状态存储后端 214
19.5 内存管理 214
19.6 流量控制 214
19.7 反压机制 215
第五部分 实践案例
第 20章 车联网 216
20.1 车联网面临的挑战 216
20.2 TDengine在车联网中的核心价值 217
20.3 TDengine在车联网中的应用 218
20.3.1 TSP车联网 218
20.3.2 物流车联网 220
第 21章 新能源 222
21.1 新能源面临的挑战 222
21.2 TDengine在新能源中的核心价值 223
21.3 TDengine在新能源中的应用 224
21.3.1 营销侧分布式光伏电站运行数据接入 224
21.3.2 数据即时分发至各地市 225
21.3.3 分类聚合计算瞬时发电功率 226
21.3.4 实时数据监测 227
21.3.5 智慧运维系统 227
第 22章 智慧油田 228
22.1 智慧油田面临的挑战 228
22.2 TDengine在智慧油田中的应用 229
第 23章 智能制造 233
23.1 智能制造面临的挑战 233
23.2 TDengine在智能制造中的核心价值 234
23.3 TDengine在智能制造中的应用 235
第 24章 金融 239
24.1 处理金融时序数据时面临的挑战 239
24.2 TDengine在金融中的核心价值 240
24.3 TDengine在金融中的应用 240
24.3.1 量化交易 240
24.3.2 行情中心 242
大数据不单指数据的规模大,而且强调数据的重要性。它涵盖了数据的采集、整合、关联和应用。随着人们对数据重要性认识的提升,数据成为新的生产要素,是推动数字化转型的关键力量。时序数据的管理和应用已成为研究的热点。涛思数据的TDengine作为时序数据库的杰出代表,展现了数据库领域的“应用驱动创新”和“抽象成就硬核”的传统特点。这本书以通俗易懂的方式,展示了一个开源的高性能时序数据库的全貌,相信它对从事学术研究和应用开发的科技工作者具有很高的参考价值和启发性。
——周傲英,华东师范大学教授,中国计算机
评论
还没有评论。