标签分类
当前位置:首页 > 数据库电子书 > Druid电子书网盘下载
Druid实时大数据分析原理与实践 Druid实时大数据分析原理与实践
众商

众商 提供上传

资源
26
粉丝
48
喜欢
190
评论
1

    Druid实时大数据分析原理与实践 PDF 高清版

    Druid电子书
    • 发布时间:

    给大家带来的一篇关于Druid相关的电子书资源,介绍了关于Druid、大数据、原理、实践方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小48.4 MB,欧阳辰编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.1,更多相关的学习资源可以参阅 数据库电子书、等栏目。

  • Druid实时大数据分析原理与实践 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1D9ndQRFudYc-vkTTomsqJA
  • 分享码:7s13
  • Druid实时大数据分析原理与实践

    内容介绍

    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 Kaa 索引服务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-Kaa 300
    • 11.2.6 Caravel(Airbnb) 301
    • 11.3 Druid 的社区讨论组302
    • 11.4 Druid 展望302
    • 参考资料303
    • 附录A 常见问题(FAQ) 304
    • 附录B 常用参数表 312

    读书笔记

    关于数据库连接池Druid使用说明

    根据综合性能,可靠性,稳定性,扩展性,易用性等因素替换成最优的数据库连接池。

    Druid:druid-1.0.29

    数据库 Mysql.5.6.17

    替换目标:替换掉C3P0,用druid来替换

    替换原因:

    1、性能方面 hikariCP>druid>tomcat-jdbc>dbcp>c3p0 。hikariCP的高性能得益于最大限度的避免锁竞争。

    2、druid功能最为全面,sql拦截等功能,统计数据较为全面,具有良好的扩展性。

    3、综合性能,扩展性等方面,可考虑使用druid或者hikariCP连接池,比较方便对jdbc接口进行监控跟踪等。

    4、可开启prepareStatement缓存,对性能会有大概20%的提升。

    psCache是connection私有的,所以不存在线程竞争的问题,开启pscache不会存在竞争的性能损耗。

    psCache的key为prepare执行的sql和catalog等,value对应的为prepareStatement对象。开启缓存主要是减少了解析sql的开销。

    5、3p0历史悠久,代码及其复杂,不利于维护。并且存在deadlock的潜在风险。

    6、Druid可以打印SQL,慢查询方面的日志

    Druid 参数

    配置参数 缺省值 游戏服设置的值 参数说明
    initialSize 0 4 初始化连接数量
    minIdle 0 4 最小空闲连接数
    maxActive 8 8 最大并发连接数
    maxWait -1L 60000 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,
    缺省启用公平锁,并发效率会有所下降,
    如果需要可以通过配置useUnfairLock属性为true使用非公平锁。
    timeBetweenEvictionRunsMillis 60000 60000 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    Destroy线程会检测连接的间隔时间
    minEvictableIdleTimeMillis 1800000 1800000 配置一个连接在池中最小生存的时间,单位是毫秒
    validationQuery null select 1 用来检测连接是否有效的sql,要求是一个查询语句
    testOnBorrow FALSE FALSE 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
    testOnReturn FALSE FALSE 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
    testWhileIdle TRUE TRUE 建议配置为true,不影响性能,并且保证安全性。 申请连接的时候检测,如果
    空闲时间大于 timeBetweenEvictionRunsMillis, 执行validationQuery检测连接是否有效。
    poolPreparedStatements FALSE TRUE false 是否缓存preparedStatement,也就是PSCache。
    PSCache对支持游标的数据库性能提升巨大,比如说oracle。
    在mysql5.5以下的版本中没有PSCache功能,建议关闭掉。
    5.5及以上版本有PSCache,建议开启。
    maxPoolPreparedStatementPerConnectionSize 10 100 要启用PSCache,必须配置大于0,当大于0时,
    poolPreparedStatements自动触发修改为true。
    单个connnection独享一个statement cache,也就是说maxOpenPreparedStatements是针对单个connection链接的

    运行原理:

    数据库连接池在初始化的时候会创建initialSize个连接,当有数据库操作时,会从池中取出一个连接。如果当前池中正在使用的连接数等于maxActive,则会等待一段时间,等待其他操作释放掉某一个连接,如果这个等待时间超过了maxWait,则会报错;如果当前正在使用的连接数没有达到maxActive,则判断当前是否空闲连接,如果有则直接使用空闲连接,如果没有则新建立一个连接。在连接使用完毕后,不是将其物理连接关闭,而是将其放入池中等待其他操作复用。 同时连接池内部有机制判断,如果当前的总的连接数少于miniIdle,则会建立新的空闲连接,以保证连接数得到miniIdle。如果当前连接池中某个连接在空闲了timeBetweenEvictionRunsMillis时间后仍然没有使用,则被物理性的关闭掉。有些数据库连接的时候有超时限制(mysql连接在8小时后断开),或者由于网络中断等原因,连接池的连接会出现失效的情况,这时候设置一个testWhileIdle参数为true,可以保证连接池内部定时检测连接的可用性,不可用的连接会被抛弃或者重建,最大情况的保证从连接池中得到的Connection对象是可用的。当然,为了保证绝对的可用性,你也可以使用testOnBorrow为true(即在获取Connection对象时检测其可用性),不过这样会影响性能。

    如果要进行SQL监控,可以加入以下代码:

    Log4j2Filter log4j2 = new Log4j2Filter(); 
    log4j2.setResultSetLogEnabled(false); 
    log4j2.setStatementSqlPrettyFormat(false); 
    log4j2.setStatementExecutableSqlLogEnable(true); 
     
    log4j2.setDataSourceLogEnabled(false); 
    log4j2.setConnectionLogEnabled(false); 
    log4j2.setStatementLogEnabled(false); 
    log4j2.setResultSetLogEnabled(false); 
    ret.setProxyFilters(Arrays.asList(log4j2)); 

    闲置检测,创建连接,废弃连接清理由这三线程管理

    Daemon Thread [Abandoned connection cleanup thread] 
    Daemon Thread [Druid-ConnectionPool-Create-1184124073] 
    Daemon Thread [Druid-ConnectionPool-Destroy-1184124073] 

    总结

    以上就是本文关于数据库连接池Druid使用说明的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅:MySQL prepare原理详解等及其他相关专题,有什么问题可以随时留言,小编会及时回复大家的。

    上一篇:数据分析:企业的贤内助  下一篇:Python并行编程参考手册

    展开 +

    收起 -

    Druid相关电子书
    学习笔记
    网友NO.553845

    SpringBoot入门之集成Druid的方法示例

    Druid:为监控而生的数据库连接池.这篇先了解下它的简单使用,下篇尝试用它做多数据源配置。 主要参考:https://github.com/alibaba/druid/wiki/ 常见问题https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter 一、引入依赖 这里看其他博客都是引用的Druid,由于是使用springboot集成,这里参考druid官方文档,用的是druid-spring-boot-starter。 dependency groupIdcom.alibaba/groupId artifactIddruid-spring-boot-starter/artifactId version1.1.10/version /dependency 二、设置属性 这里用的demo还是在上一博客基础上进行的修改,所以已经配置上了数据库连接和mybatis。 spring.mvc.view.prefix=/view/spring.mvc.view.suffix=.jspmybatis.type-aliases-package=com.example.modelmybatis.config-location=classpath:mybatis/mybatis-config.xmlmybatis.mapper-locations=classpath:mybatis/mapper/*.xml#spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver#spring.datasource.url = jdbc:mysql://localhost:3306/mybatisspring.datasource.url =jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=trueserverTimezone=UTCspring.datasource.username = rootspring.datasource.password = 123456#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.druid.max-active=20spring.datasource.druid.initial-size=1spring.datasource.druid.max-wait=60000spring.datasource.druid.pool-prepared-statements=truespring.datasource.druid.max-pool-pre……

    网友NO.835479

    springboot 动态数据源的实现方法(Mybatis+Druid)

    Spring多数据源实现的方式大概有2中,一种是新建多个MapperScan扫描不同包,另外一种则是通过继承AbstractRoutingDataSource实现动态路由。今天作者主要基于后者做的实现,且方式1的实现比较简单这里不做过多探讨。 实现方式 方式1的实现(核心代码): @Configuration@MapperScan(basePackages = "com.goofly.test1", sqlSessionTemplateRef = "test1SqlSessionTemplate")public class DataSource1Config1 { @Bean(name = "dataSource1") @ConfigurationProperties(prefix = "spring.datasource.test1") @Primary public DataSource testDataSource() { return DataSourceBuilder.create().build(); } // .....略}@Configuration@MapperScan(basePackages = "com.goofly.test2", sqlSessionTemplateRef = "test1SqlSessionTemplate")public class DataSourceConfig2 { @Bean(name = "dataSource2") @ConfigurationProperties(prefix = "spring.datasource.test2") @Primary public DataSource testDataSource() { return DataSourceBuilder.create().build(); } // .....略} 方式2的实现(核心代码): public class DynamicRoutingDataSource extends AbstractRoutingDataSource { private static final Logger log = Logger.getLogger(DynamicRoutingDataSource.class); @Override protected Object determineCurrentLookupKey() { //从ThreadLocal中取值 return DynamicDataSourceContextHolder.get(); }} 第1种方式虽然实现比较加单,劣势就是不同数据源的mapper文件不能在同一包名,就显得不太灵活了。所以为了更加灵活的作为一个……

    网友NO.439230

    spring boot配置druid连接池的完整步骤

    Druid的简介 Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。Druid是阿里巴巴开发的号称为监控而生的数据库连接池! Druid的功能 1、替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。 2、可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。 3、数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。 4、SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。 5、扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。 所以Druid可以: 1、充当数据库连接池。 2、可以监控数据库访问性能 3、获得SQL执行日志 在spring boot基础上开始配置: 1.引入当前最新的版本,这里我们使用的maven dependency groupIdcom.ali……

    网友NO.562908

    springboot配置druid连接池的方法示例

    Druid的简介 Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。Druid是阿里巴巴开发的号称为监控而生的数据库连接池! Druid的功能 1、替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。 2、可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。 3、数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。 4、SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。 5、扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。 所以Druid可以: 1、充当数据库连接池。 2、可以监控数据库访问性能 3、获得SQL执行日志 在spring boot基础上开始配置: 1.引入当前最新的版本,这里我们使用的maven dependency groupIdcom.ali……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明