Druid

迈向更灵活,贝壳 OLAP 平台架构演进

℡╲_俬逩灬. 提交于 2020-10-20 01:41:49
​导语 | 为了满足贝壳日益复杂、多样化业务场景下的多维数据分析需求,贝壳 OLAP 平台经历了从早期基 于Hive+MySQL 原始阶段,到基于 Kylin单一引擎的平台化建设,再到支持多种不同OLAP引擎的灵活架构的发展历程。本文是对贝壳找房数据智能中心资深研发工程师——肖赞在云+社区沙龙online的分享整理,希望与大家一同交流。 点击查看完整直播回放 一、贝壳业务背景介绍 贝壳找房的定位是科技驱动的新居住平台,提供涵盖二手房、新房、租赁、装修和社区服务多元化居住服务。贝壳找房聚合居住垂直品类服务商,提供全方位的品质居住服务,有三亿家庭用户,被认为是房产类的淘宝,很多品牌和开发商都入住了贝壳找房的平台。 贝壳找房推动了房产服务这个传统行业转向互联网化的过程,一方面要求业务运营日趋精益化,另一方面数据驱动角色的需求也不断增强。 贝壳找房的业务模式比较复杂,涉及到二手房、新房、装修、租赁等不同方向。这也给整个 OLAP 平台数据分析方面带来了很多挑战,比如如何更好的支持不同复杂业务场景下的需求。 二、OLAP 平台架构演化历程 OLAP 平台的架构发展大致可以分为三个阶段,第一个阶段是 2015 年到 2016 年链家网的时代,它是初期从无到有的阶段。第二个阶段是从 2016 年到 2019 年初,这个阶段是基于 Apache Kylin 构建的 OLAP 平台建设阶段。从

druid抛出的异常------javax.management.InstanceAlreadyExistsException引发的一系列探索

落花浮王杯 提交于 2020-10-15 02:59:59
druid抛出的异常------javax.management.InstanceAlreadyExistsException引发的一系列探索 参考文章: (1)druid抛出的异常------javax.management.InstanceAlreadyExistsException引发的一系列探索 (2)https://www.cnblogs.com/youzhibing/p/6826767.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/stackoom/blog/4674068

AnalyticDB实现和特点浅析

北慕城南 提交于 2020-10-06 01:39:05
目录 AnalyticDB介绍与背景 AnalyticDB详细解析 架构设计 数据分区 读写分离和读写流程 其他特性介绍 混合(列-行)存储引擎 索引 小结 本篇主要是根据AnalyticDB的论文,来讨论AnalyticDB出现的背景,各个模块的设计,一些特性的解析。可能还会在一些点上还会穿插一些与当前业界开源实现的比对,希望能够有一个更加深入的探讨。OK,那我们开始吧。 AnalyticDB介绍与背景 要说AnalyticDB,那起码得知道它是干什么的。这里直接贴下百度百科的介绍: AnalyticDB是阿里云自主研发的一款实时分析数据库,可以毫秒级针对千亿级数据进行即时的多维分析透视。 简单地说,就是实时OLAP型数据库,它的对标产品是Apache Kylin,Apache Druid,Clickhouse这些。然后AnalyticDB的特点, 包括高并发实时摄入数据,兼容Mysql协议,无需预计算即可有的极快响应时间,多种数据源接入,大规模集群管理等 。好吧,这几个特点都很官方,不急,接下来会逐渐讨论各个点。 然后介绍下AnalyticDB的背景。 首先先说说传统的OLAP型数据仓库,以往构建OLAP型数据仓库通常都是采用离线模式, 即在晚上设置定时任务将前一天的数据同步到数据仓库中,第二天数据分析师或报表工具就可以根据数据产出分析结果 。但这样的问题是数据延迟太高了

一步步用数据库中间Mycat+SpringBoot完成分库分表

拥有回忆 提交于 2020-10-02 09:33:45
一、背景 随着时间和业务的发展,数据库中的数据量增长是不可控的,库和表中的数据会越来越大,随之带来的是更高的磁盘、IO、系统开销,甚至性能上的瓶颈,而一台服务的资源终究是有限的,因此需要对数据库和表进行拆分,从而更好的提供数据服务。 当用户表达到千万级别,在做很多操作的时候都会很吃力,所以当数据增长到1000万以上就需要分库分表来缓解单库(表)的压力。 二、什么是分库分表[1] 简单来说,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。 数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式。一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直(纵向)切分;另外一种则是根据表中的数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库(主机)上面,这种切分称之为数 据的水平(横向)切分。 垂直切分的最大特点就是规则简单,实施也更为方便,尤其适合各业务之间的耦合度非常低,相互影响很小,业务逻辑非常清晰的系统。在这种系统中,可以很容易做到将不同业务模块所使用的表分拆到不同的数据库中。根据不同的表来进行拆分,对应用程序的影响也更小,拆分规则也会比较简单清晰。 水平切分于垂直切分相比,相对来说稍微复杂一些

Springboot 添加druid监控

情到浓时终转凉″ 提交于 2020-10-01 11:21:04
pom <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version> 1.1 . 9 </version> </dependency> yml spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver - class - name: com.mysql.cj.jdbc.Driver url: jdbc:mysql: // localhost:3306/shiroDemo?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 username: root password: root initialSize: 5 # 配置Druid的其他参数,以下配置必须增加一个配置文件才能有效 # 初始化大小,最小,最大 minIdle: 5 maxActive: 20 # 获取连接等待超时的时间 maxWait: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒

测试记录: 连接池做一次结果集(ResultSet)测试

一世执手 提交于 2020-09-30 17:17:31
代码类: https://github.com/Chris2018998/BeeCP/blob/master/doc/temp/TestResultSet.java *******************开始测试数据源(BeeCP)******************* BeeCP-通过,<检查由executeQuery执行的结果值必须等于Statement.getResultSet()> BeeCP-通过,<结果集合关闭结果后,statement.getResultSet()不能再获取这个结果集合对象> BeeCP-通过,<unwrap测试ResultSet是否存在暴露问题(原生态对象不允许暴露给使用者)> BeeCP-通过,<unwrap测试Connection是否存在是否存在暴露问题(原生态对象不允许暴露给使用者)> BeeCP-通过,<检查关闭的这个结果集合isClosed()的返回值必须等于True> BeeCP-通过,<检查从一个已经关闭的Statement获取曾经打开过的结果集合要抛出异常> *******************开始测试数据源(HikariCP)******************* HikariCP-失败,<检查由executeQuery执行的结果值必须等于Statement.getResultSet()> HikariCP-通过,

冰眼冷链物流监控平台学习总结

前提是你 提交于 2020-09-29 08:37:51
冰眼冷链物流监控平台学习总结 采用的的主要技术有: netty、springboot、springcloud、 kafka、flink、redis、druid/ vue等 资料: https://pan.baidu.com/s/1KZf1Gj4-UGleJjWiLfStSw 提取码:8wyv 解决方案: 监控部分采用分布式微服务架构,同时针对海量物联网数据的统计和查询引入了专门的解决方案。 基于物联网及大数据实时计算技术.... 来源: oschina 链接: https://my.oschina.net/u/4351890/blog/4626607

SpringBoot 整合 Mybatis 框架

大憨熊 提交于 2020-09-27 08:41:24
使用IDEA开发工具,通过Maven构建SpringBoot项目,初始化项目添加的依赖有:spring-boot-starter-jdbc、spring-boot-starter-web、mysql-connector-java,这里为了演示整合SpringBoot,初始时只勾选了这几项,其他的启动器根据自己实际项目选择添加,如何使用IDEA构建SpringBoot项目这就不再过多赘述了。 版本: IDEA 2020.1.3 Maven 3.6.3 MySql 8.0.19 SpringBoot 2.3.2 这里构建项目使用的是SpringBoot自带的Hikari数据源,也可以根据自己项目选择Druid、c3p0等。 如果使用Druid数据源可以参考上一篇博客:SpringBoot学习之整合Druid的简单应用 1.环境搭建 首先在SpringBoot项目的pom.xml文件中添加 mybatis-spring-boot-starter 依赖 < dependency > < groupId > org.mybatis.spring.boot </ groupId > < artifactId > mybatis-spring-boot-starter </ artifactId > < version > 2.1.3 </ version > </ dependency >

生产实践 | 基于 Flink 的短视频生产消费监控

梦想的初衷 提交于 2020-09-25 18:43:20
本文详细介绍了实时监控类指标的数据流转链路以及技术方案,大多数的实时监控类指标都可按照本文中的几种方案实现。 短视频生产消费监控 短视频带来了全新的传播场域和节目形态,小屏幕、快节奏成为行业潮流的同时,也催生了新的用户消费习惯,为创作者和商户带来收益。而多元化的短视频也可以为品牌方提供营销机遇。 其中对于垂类生态短视频的生产消费热点的监控分析目前成为了实时数据处理很常见的一个应用场景,比如对某个圈定的垂类生态下的视频生产或者视频消费进行监控,对热点视频生成对应的优化推荐策略,促进热点视频的生产或者消费,构建整个生产消费数据链路的闭环,从而提高创作者收益以及消费者留存。 本文将完整分析垂类生态短视频生产消费数据的整条链路流转方式,并基于 Flink 提供几种对于垂类视频生产消费监控的方案设计。通过本文,你可以了解到: 垂类生态短视频生产消费数据链路闭环 实时监控短视频生产消费的方案设计 不同监控量级场景下的代码实现 flink 学习资料 项目简介 垂类生态短视频生产消费数据链路流转架构图如下,此数据流转图也适用于其他场景: 链路 在上述场景中,用户生产和消费短视频,从而客户端、服务端以及数据库会产生相应的行为操作日志,这些日志会通过日志抽取中间件抽取到消息队列中,我们目前的场景中是使用 Kafka 作为消息队列;然后使用 flink 对垂类生态中的视频进行生产或消费监控

CKEditor 5 + SpringBoot实战(三):SpringData JPA数据持久化

℡╲_俬逩灬. 提交于 2020-08-20 01:28:03
在本系列的文章中,我将介绍如何在Spring Boot Application中使用CKEditor编辑器。介绍的内容包括基本环境的搭建,文件上传,SpringData JPA数据持久化,CKEditor5的安装,CKEditor图片上传,CKEditor插入视频,获取/设置CKEditor内容等。 项目源码 本系列文章的项目源码同步更新至 码云 和 Github ,你可以任选其一下载源码到本地。项目地址如下: 码云: https://gitee.com/ramostear/CKEditor5-SpringBoot Github: https://github.com/ramostear/CKEditor5-SpringBoot 你也可以通过Git命令行工具下载项目源码,命令如下(二者任选其一): git clone https://gitee.com/ramostear/CKEditor5-SpringBoot.git git clone https://github.com/ramostear/CKEditor5-SpringBoot.git 接上篇内容,本篇的主要内容是引入MySQL数据库驱动依赖和SpringData JPA依赖,然后创建内容实体,并完成数据持久层(DAO)和业务逻辑层(Service)相关代码的设计和实现。 引入依赖 前面的内容中我们分析过