编辑推荐 内容丰富:本书全面覆盖了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作为时序数据库的杰出代表,展现了数据库领域的“应用驱动创新”和“抽象成就硬核”的传统特点。这本书以通俗易懂的方式,展示了一个开源的高性能时序数据库的全貌,相信它对从事学术研究和应用开发的科技工作者具有很高的参考价值和启发性。 ——周傲英,华东师范大学教授,中国计算机学会数据库专业委员会主任 TDengine是由陶建辉先生——一位令人尊敬的开发者,带领团队经过数年的自主研发而开发的时序大数据平台。自项目启动之初,他们便坚定地选择了开源和国际化的发展方向,这使得产品和企业都取得了快速的发展,并为国产数据库的发展开辟了一条可行的路径。这本书深入浅出地介绍了TDengine的使用、管理、维护及其内核设计精髓。对于从事大数据领域开发和应用的专业人士来说,这本书具有极高的参考价值。 ——杜小勇,中国人民大学教授,明理书院院长 这本书系统介绍了TDengine的设计理念、技术实现和应用场景,为读者提供了丰富的学习资源。希望这本书能够帮助更多的人深入理解、掌握时序数据处理技术,并将其应用于物联网、工业互联网等场景,以促进数字化转型的进程。 ——陈恩红,中国科学技术大学教授,大数据学院执行院长 数据作为新生产要素,其价值的发挥依赖于技术创新。TDengine经过多年的深耕,以其很好的创新能力和数据处理技术,为传统企业,特别是工业制造业企业等,提供了强大的赋能。这本书有望助力更多的研发人员和决策者,在工业4.0和AI的浪潮中,更深入地学习和掌握时序大数据的处理技术,从而有效地从数据中挖掘出潜在价值。 ——何宝宏,中国信息通信研究院云计算与大数据研究所所长 这本书深入剖析了TDengine开源时序数据库的核心技术,并将其开源精神融入实战案例,展现了其在多个行业的应用深度与广度。它不仅适合希望深入了解时序数据处理的开发者阅读,也为行业数据开发者和企业决策者提供了宝贵的参考和洞察。 ——蒋涛,CSDN创始人兼董事长,中国开源软件推进联盟副主席 这本书深入浅出地讲解了时序数据的处理技术,并结合众多实战案例,为开发者提供了丰富的学习资源。在数智化时代,掌握时序数据处理技能极为关键。这本书能够帮助读者迅速理解并应用TDengine这一时序数据库领域的代表性产品,具有极高的阅读价值。 ——霍太稳,极客邦科技创始人 |