欢迎光临
免费的PDF电子书下载网站

OpenTSDB技术内幕 PDF下载

编辑推荐

目前物联网领域正在如火如荼的发展,互联网企业甚至一些传统企业也在争相布局物联网。在很多物联网系统中,需要对联网的智能设备进行监控,并对监控采样得到到数据进行持久化存储,而其*就是本书介绍的时序数据库。

本书详细介绍了OpenTSDB的使用和深层次原理,包括OpenTSDB的网络层、OpenTSDB中UniqueId组件的原理、OpenTSDB如何实现时序数据的存储及相关优化、OpenTSDB如何实现时序数据的查询、OpenTSDB中的元数据及Tree结构的实现和功能、OpenTSDB中的插件及工具类实现原理内容,对时序数据库感兴趣的读者一定不要错过。

 ;

内容简介

本书主要以OpenTSDB的*版本(2.3.1版本)为基础进行介绍。第1章从OpenTSDB的入门开始,介绍市面上多种时序数据库和云端时序数据库,OpenTSDB的基础概念、源码环境搭建及Grafana的基本使用等。第2章主要介绍OpenTSDB的网络层,涉及Java NIO基础、Netty基本使用,分析了OpenTSDB网络层的架构和实现。第3章介绍OpenTSDB中UniqueId组件的原理,主要讲解如何实现UID与字符串之间的映射。第4章介绍OpenTSDB如何实现时序数据的存储及相关优化。第5章介绍OpenTSDB如何实现时序数据的查询,其中分析了OpenTSDB查询中每个步骤的实现。第6章和第7章主要介绍OpenTSDB中的元数据及Tree结构的实现和功能。第8章主要分析OpenTSDB中的插件及工具类实现原理。

作者简介

2015至今,负责XS云平台的基础架构设计及研发工作,XS云平台以Kafka为消息总线,收集用户产生操作日志,为后台多个数据分析平台提供数据源。

OpenTSDB技术内幕 PDF下载

目录

目  录


第1章 快速入门
1.1 时序数据简介
1.2 时序数据库
1.3 快速入门
1.3.1 基础知识
1.3.2 HBase简介
1.3.3 源码环境搭建
1.3.4 HTTP接口
1.3.5 示例分析
1.4 本章小结
第2章 网络层
2.1 Java NIO基础
2.2 Netty基础
2.2.1 ChannelEvent
2.2.2 Channel
2.2.3 NioSelector
2.2.4 ChannelBuffer
2.2.5 Netty 3示例分析
2.3 OpenTSDB网络层
2.3.1 TSDMain入口
2.3.2 PipelineFactory工厂
2.3.3 ConnectionManager
2.3.4 DetectHttpOrRpc
2.3.5 RpcHandler分析
2.3.6 RpcManager
2.3.7 HttpRpc接口
2.3.8 拾遗
2.4 本章小结
第3章 UniqueId
3.1 tsdb-uid表设计
3.2 UniqueId
3.2.1 分配UID
3.2.2 查询UID
3.2.3 UniqueIdAllocator
3.2.4 UniqueIdFilterPlugin
3.2.5 异步分配UID
3.2.6 查询字符串
3.2.7 suggest方法
3.2.8 删除UID
3.2.9 重新分配UID
3.2.10 其他方法
3.3 UIDMeta
3.4 本章小结
第4章 数据存储
4.1 TSDB表设计
4.1.1 压缩优化
4.1.2 追加模式
4.1.3 Annotation
4.2 TSDB
4.3 写入数据
4.4 Compaction
4.5 CompactionQueue
4.6 UID相关方法
4.7 本章小结
第5章 数据查询
5.1 DataPoint接口
5.2 DataPoints接口
5.3 RowSeq
5.4 Span
5.5 SpanGroup
5.5.1 AggregationIterator
5.5.2 Aggregator
5.6 DownsamplingSpecification
5.7 Downsampler
5.8 TagVFilter
5.9 TSQuery
5.10 TSSubQuery
5.11 TsdbQuery
5.11.1 初始化
5.11.2 findSpans()方法
5.11.3 创建Scanner
5.11.4 ScannerCB
5.11.5 GroupByAndAggregateCB
5.11.6 SaltScanner
5.12 TSUIDQuery
5.13 Rate相关
5.14 本章小结
第6章 元数据
6.1 tsdb-meta表
6.2 TSMeta
6.3 Annotation
6.4 本章小结
第7章 Tree
7.1 tsdb-tree表设计
7.2 Branch
7.3 Leaf
7.4 TreeRule
7.5 Tree元数据
7.6 TreeBuilder
7.7 本章小结
第8章 插件及工具类
8.1 插件概述
8.2 常用插件分析
8.2.1 SearchPlugin插件
8.2.2 RTPublisher插件
8.2.3 StartupPlugin扩展
8.2.4 HttpSerializer插件
8.2.5 HttpRpcPlugin扩展
8.2.6 WriteableDataPointFilterPlugin&UniqueIdFilterPlugin
8.2.7 TagVFilter扩展
8.3 插件加载流程
8.4 常用工具类
8.4.1 数据导入
8.4.2 数据导出
8.4.3 Fsck工具
8.4.4 其他工具简介
8.5 本章小结

前沿

前  言

OpenTSDB是一个分布式、可伸缩的时间序列数据库,其底层存储以HBase为主(这也是笔者使用的存储),当前版本也支持Cassandra等存储。正因为其底层存储依赖于HBase,其写入性能和可扩展性都得到了保证。OpenTSDB支持多tag维度查询,支持毫秒级的时序数据。OpenTSDB主要实现了时序数据的存储和查询功能,其自带的前端界面比较简单,笔者推荐使用强大的前端展示工具Grafana。另外,OpenTSDB也提供了丰富的插件接口,可以帮助开发人员对其进行扩展,在本书中也会进行详细介绍。
如何阅读本书
由于篇幅限制,本书并没有详细介绍Java语言的基础知识,但为便于读者理解OpenTSDB的设计思想和实现细节,笔者希望读者对Java语言的基本语法有一定的了解。
本书共8章,主要从源码角度深入剖析OpenTSDB的原理和实现。各章之间的内容相对独立,对OpenTSDB有一定了解的读者可以有目标地选择合适的章节开始阅读,当然也可以从第1章开始向后逐章阅读。本书主要以OpenTSDB的最新版本(2.3.1版本)为基础进行介绍。
第1章介绍时序数据库的基本特征,并列举了比较热门的开源时序数据库产品及一些云厂商的时序数据库产品。接下来介绍了OpenTSDB的基础知识,以及OpenTSDB中最常用的API,其中重点分析了put和query这两个核心接口。最后分析了OpenTSDB源码中提供的AddDataExample和QueryExample两个示例。
第2章深入分析OpenTSDB的网络层实现,其中介绍了Netty 3的基础知识,以及OpenTSDB网络层如何使用Netty。另外,本章介绍了OpenTSDB网络层中所有的HttpRpc实现,重点介绍了PutDataPointRpc和QueryRpc两个HttpRpc实现。
第3章简略说明了OpenTSDB使用HBase存储时序数据的大体设计,尤其介绍了RowKey的设计中UID的原理和作用。本章具体分析了HBase中tsdb-uid表的设计,以及UniqueId组件管理UID的功能。
第4章主要介绍了OpenTSDB存储时序数据的相关组件及其具体实现。首先分析了OpenTSDB中存储时序数据的TSDB表的设计,其中涉及RowKey的设计、列名的格式及不同格式的列名对应的数据类型。之后又简单介绍了OpenTSDB中的压缩优化、追加模式及Annotation存储相关的内容。接下来,深入分析了TSDB这一核心类的关键字段、初始化过程,以及写入时序数据的具体实现。最后深入分析了OpenTSDB中压缩优化方面的具体实现,其中涉及Compaction和CompactionQueue两个组件的具体实现。
第5章主要介绍了OpenTSDB查询时序数据的相关组件。首先,介绍了OpenTSDB查询时涉及的一些基本接口类和实现类。然后,深入分析了OpenTSDB在查询过程中对时序数据的抽象,其中涉及RowSeq、Span及SpanGroup等组件。接下来,继续分析了OpenTSDB在查询时序数据的过程中涉及的其他组件。最后,分析了TSQuery、TSSubQuery等核心查询组件的具体实现。
第6章主要介绍了OpenTSDB中元数据的相关内容。首先,介绍了存储TSMeta元数据的tsdb-meta表的RowKey设计及整张tsdb-meta表的结构。然后,分析了TSMeta类的核心字段、增删改查TSMeta元数据的具体实现。
第7章主要介绍了OpenTSDB中Tree(树形结构)相关的实现。首先,简单介绍了Tree中关键组成部分的概念及tsdb-tree表的结构。然后,深入剖析了OpenTSDB树形结构中核心组件的实现。最后,深入分析了构建一个完整Tree的过程。
第8章主要介绍了OpenTSDB提供的插件体系和常用工具类的实现原理。首先,介绍了OpenTSDB插件的公共配置及一些共性特征。然后,针对OpenTSDB常用的插件接口进行了介绍。接着,分析了OpenTSDB加载插件的大致流程。最后,详细分析了OpenTSDB中常用的三个工具类的实现,分别是TextImporter、DumpSeries及Fsck。此外,还简单介绍了其他几个工具类的功能。
如果读者在阅读本书的过程中,发现任何不妥之处,请将您宝贵的意见和建议发送到邮箱shen_baili @163.com,也欢迎读者朋友通过此邮箱与笔者进行交流。
致谢
感谢电子工业出版社博文视点的陈晓猛老师,是您的辛勤工作让本书的出版成为可能。同时,还要感谢许多我不知道名字的幕后工作人员为本书付出的努力!
感谢三十在技术上提供的帮助。
感谢小鱼同学,是你让我看到了星辰大海。
感谢我的母亲,谢谢您的付出和牺牲!

OpenTSDB技术内幕 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:OpenTSDB技术内幕