内容介绍
Druid 做为这款开源系统的实时大数据分析软件,近期两年迅速红遍全球互联网企业,非常是针对海量信息和实时性规定高的情景,包含广告词数据统计分析、用户行为分析、数据分析、运维管理监控器剖析等,在腾迅、阿里巴巴、优酷视频、小米手机等企业常有很多取得成功运用的实例。《Druid实时大数据分析原理与实践》的目地就是说协助专业技术人员尽快深层次了解Druid 技术性、大数据分析技术性电机选型、Druid 的安裝和应用、高級特点的应用,也包含某些源码的分析,及其某些疑难问题的迅速回应。
Druid 的食物网已经不断发展和成熟期,Druid 也已经处理很多的业务流程情景。期待这书能协助专业技术人员作出更强的技术性电机选型,深度1知道Druid 的作用和原理,更好地解决大数据分析难题。《Druid实时大数据分析原理与实践》合适大数据分析的从业者、it互联网 工作人员、互联网技术从业人员阅读文章。
目录
- 第1 章初识Druid . . . . . . . 1
- 1.1 Druid 是什么1
- 1.2 大数据分析和Druid 1
- 1.3 Druid 的产生3
- 1.3.1 MetaMarkets 简介3
- 1.3.2 失败总结4
- 1.4 Druid 的三个设计原则4
- 1.4.1 快速查询(Fast Query) 5
- 1.4.2 水平扩展能力(Horizontal Scalability) 5
- 1.4.3 实时分析(Realtime Analytics) 6
- 1.5 Druid 的技术特点6
- 1.5.1 数据吞吐量大6
- 1.5.2 支持流式数据摄入6
- 1.5.3 查询灵活且快6
- 1.5.4 社区支持力度大7
- 1.6 Druid 的Hello World 7
- 1.6.1 Druid 的部署环境7
- 1.6.2 Druid 的基本概念7
- 1.7 系统的扩展性9
- 1.8 性能指标10
- 1.9 Druid 的应用场景10
- 1.9.1 国内公司11
- 1.9.2 国外公司12
- 1.10 小结13
- 参考资料13
- 第2 章数据分析及相关软件. . . . 15
- 2.1 数据分析及相关概念15
- 2.2 数据分析软件的发展16
- 2.3 数据分析软件的分类17
- 2.3.1 商业软件17
- 2.3.2 时序数据库22
- 2.3.3 开源分布式计算平台23
- 2.3.4 开源分析数据库25
- 2.3.5 SQL on Hadoop/Spark 31
- 2.3.6 数据分析云服务33
- 2.4 小结34
- 参考资料34
- 第3 章架构详解. . . . 35
- 3.1 Druid 架构概览35
- 3.2 Druid 架构设计思想36
- 3.2.1 索引对树结构的选择37
- 3.2.2 Druid 总体架构41
- 3.2.3 基于DataSource 与Segment 的数据结构43
- 3.3 扩展系统45
- 3.3.1 主要的扩展45
- 3.3.2 下载与加载扩展46
- 3.4 实时节点47
- 3.4.1 Segment 数据文件的制造与传播47
- 3.4.2 高可用性与可扩展性48
- 3.5 历史节点49
- 3.5.1 内存为王的查询之道49
- 3.5.2 层的分组功能50
- 3.5.3 高可用性与可扩展性51
- 3.6 查询节点51
- 3.6.1 查询中枢点51
- 3.6.2 缓存的使用52
- 3.6.3 高可用性52
- 3.7 协调节点53
- 3.7.1 集群数据负载均衡的主宰53
- 3.7.2 利用规则管理数据生命周期53
- 3.7.3 副本实现Segment 的高可用性54
- 3.7.4 高可用性54
- 3.8 索引服务54
- 3.8.1 主从结构的架构54
- 3.8.2 统治节点55
- 3.8.3 中间管理者与苦工56
- 3.8.4 任务56
- 3.9 小结57
- 第4 章安装与配置. . . . .58
- 4.1 安装准备58
- 4.1.1 安装包简介58
- 4.1.2 安装环境59
- 4.1.3 Druid 外部依赖60
- 4.2 简单示例61
- 4.2.1 服务运行61
- 4.2.2 数据导入与查询62
- 4.3 规划与部署65
- 4.4 基本配置68
- 4.4.1 基础依赖配置68
- 4.4.2 数据节点配置调优69
- 4.4.3 查询节点配置调优69
- 4.5 集群节点配置示例70
- 4.5.1 节点规划70
- 4.5.2 Master 机器配置72
- 4.5.3 Data 机器配置76
- 4.6 小结79
- 第5 章数据摄入. . . . 80
- 5.1 数据摄入的两种方式80
- 5.1.1 流式数据源80
- 5.1.2 静态数据源81
- 5.2 流式数据摄取81
- 5.2.1 以Pull 方式摄取82
- 5.2.2 用户行为数据摄取案例86
- 5.2.3 以Push 方式摄取89
- 5.2.4 索引服务任务相关管理接口91
- 5.3 静态数据批量摄取94
- 5.3.1 以索引服务方式摄取94
- 5.3.2 以Hadoop 方式摄取96
- 5.4 流式与批量数据摄取的结合99
- 5.4.1 Lambda 架构99
- 5.4.2 解决时间窗口问题100
- 5.5 数据摄取的其他重要知识101
- 5.5.1 数据分片101
- 5.5.2 数据复制106
- 5.5.3 索引服务之Tranquility 107
- 5.5.4 高基数维度优化111
- 5.6 小结116
- 第6 章数据查询. . . . 117
- 6.1 查询过程117
- 6.2 组件118
- 6.2.1 Filter 118
- 6.2.2 Aggregator 121
- 6.2.3 Post-Aggregator 125
- 6.2.4 Search Query 129
- 6.2.5 Interval 129
- 6.2.6 Context 130
- 6.3 案例介绍131
- 6.4 Timeseries 134
- 6.5 TopN 138
- 6.6 GroupBy 144
- 6.7 Select 149
- 6.8 Search 151
- 6.9 元数据查询153
- 6.10 小结156
- 第7 章高级功能和特性. . . . 157
- 7.1 近似直方图(Approximate Histogram) 158
- 7.1.1 分位数和直方图158
- 7.1.2 实现原理158
- 7.1.3 如何使用161
- 7.1.4 近似直方图小结163
- 7.2 数据Sketch 163
- 7.2.1 DataSketch Aggregator 163
- 7.2.2 DataSketch Post-Aggregator 167
- 7.3 地理查询(Geographic Query) 170
- 7.3.1 基本原理170
- 7.3.2 空间索引(Spatial Indexing) 171
- 7.3.3 空间过滤(Spatial Filter) 171
- 7.3.4 边界条件(Boundary Condition) 172
- 7.3.5 地理查询小结172
- 7.4 Router 172
- 7.4.1 Router 概览172
- 7.4.2 路由规则174
- 7.4.3 配置175
- 7.4.4 路由策略175
- 7.5 Kaa 索引服务177
- 7.5.1 设计背景177
- 7.5.2 实现178
- 7.5.3 如何使用182
- 7.6 Supervisor API 186
- 7.6.1 创建Supervisor 186
- 7.6.2 关闭Supervisor 186
- 7.6.3 获取当前执行的Supervisor 186
- 7.6.4 获取Supervisor 规范186
- 7.6.5 获取Supervisor 的状态报告186
- 7.6.6 获取所有Supervisor 的历史187
- 7.6.7 获取Supervisor 的历史187
- 7.7 最佳实践187
- 7.7.1 容量规划187
- 7.7.2 Supervisor 的持久化187
- 7.7.3 Schema 的配置与变更188
- 7.8 小结188
- 第8 章核心源代码探析. . . . 189
- 8.1 如何编译Druid 代码189
- 8.2 Druid 项目介绍190
- 8.3 索引结构模块和层次关系192
- 8.4 Column 结构192
- 8.5 Segment 195
- 8.6 Query 模块203
- 8.6.1 基础组件203
- 8.6.2 内存池管理206
- 8.6.3 查询流程概览207
- 8.6.4 查询引擎225
- 8.7 Coordinator 模块229
- 8.8 小结237
- 第9 章监控和安全. . . . 238
- 9.1 Druid 监控238
- 9.1.1 Druid 监控指标238
- 9.1.2 常用的监控方法245
- 9.2 Druid 告警250
- 9.2.1 Druid 告警信息250
- 9.2.2 Druid 与告警系统的集成250
- 9.3 Druid 安全251
- 9.3.1 Druid 与利用Kerberos 加强安全认证的系统集成251
- 9.3.2 集成外部权限模块完成用户授权255
- 9.4 小结256
- 第10 章实践和应用. . . .257
- 10.1 小米257
- 10.1.1 场景一:小米统计服务258
- 10.1.2 场景二:广告平台实时数据分析260
- 10.2 优酷土豆262
- 10.2.1 需求分析262
- 10.2.2 技术选型及工程实践263
- 10.2.3 优化策略266
- 10.3 腾讯267
- 10.3.1 工程实践267
- 10.3.2 业务实践270
- 10.4 蓝海讯通279
- 10.5 小结284
- 第11 章Druid 生态与展望. . . . 285
- 11.1 Druid 生态系统285
- 11.2 Druid 生态系统资源288
- 11.2.1 IAP 288
- 11.2.2 Plywood 289
- 11.2.3 PlyQL 294
- 11.2.4 Pivot 297
- 11.2.5 Druid-Metrics-Kaa 300
- 11.2.6 Caravel(Airbnb) 301
- 11.3 Druid 的社区讨论组302
- 11.4 Druid 展望302
- 参考资料303
- 附录A 常见问题(FAQ) 304
- 附录B 常用参数表 312