Hadoop:是一个分布式计算的开源框架,包含三大核心组件:
- HDFS:存储数据的数据仓库
- Hive:专门处理存储再HDFS数据仓库工具,主要解决数据处理和计算问题,可以将结构化的数据文件映射为一张数据库表
- HBase:是基于HDFS的数据库,主要适用于海量数据明细随机实时查询,如日志明细,交易清单,轨迹行为等。
- 在大数据架构中,Hive和HBase是协作关系,数据流一般如下:
通过ETL工具将数据抽取到HDFS存储;通过Hive清洗,处理和计算原始数据;Hive清洗处理后的结果,如果是面向海量数据随机查询场景的可存入HBase数据应用从HBase查询数据
ETL 工具
ELK 技术栈
- Elastic Stack
- Elastic Search
- Logstash
- Kibana
Clickhouse结合大数据生态来定制一套完善的数据分析方案,如何打造完备的运营管理平台以降低维护成本
-
Clickhouse简介:目前企业用户行为日志每天百亿量级,虽然经过数仓的分层以及数据汇总层通用维度指标的预计算,但有些个性化的分析场景还是需要直接编写程序或sql查询,这种情况下hive sql和spark sql的查询性能已无法满足用户需求,我们迫切的需要一个OLAP引擎来支持快速的即时查询。
-
BI存储库主要采用的是Infobright,在千万量级能快的响应BI的查询请求,但随着时间推移和业务的发展,Infobriht的并发量与查询瓶颈日益凸显,尝试将数据量级的表导入TiDB,HBase,ES等存储库,虽然对查询有一定的提速,但是也存在着相应的问题,考虑到Clickhouse
-
Clickhouse特性:列式数据库管理系统
- 基于shard+replica实现的线性扩展和高可靠
- 采用列式存储,数据类型一致,压缩性能高
- 硬件利用率高,连续IO,提高了磁盘驱动的效率
- 向量化引擎与SIMD提高了CPU利用率,多核多节点并行化大查询
- 不足:
1. 不支持事务,异步删除与更新
2. 不适合高并发场景
-
整体架构:
依据数据的流向将clickhouse的应用架构划分为4个层级:
数据接入层:
- 提供数据导入相关的服务及功能,按照数据的量级和特性抽象出多种clickhouse导入数据的方式
数据存储层:
- 采用双副本机制来保证数据的高可靠,同时用nginx代理clickhouse集群,通过域名的方式进行读写操作,实现了数据均衡及高可靠写入,且对域名的相应时间及流量有对应的实时监控,一旦相应速度出现波动或异常能在第一时间收到报警通知。
数据服务层:
- 对外:将集群查询统一封装为scf服务(RPC)供外部调用
- 对内:提供了客户端工具直接共分析师及开发人员使用
数据应用层:
- 埋点系统:对接头的clickhouse集群,提供秒级别的OLAP查询功能
- 用户分析平台:通过标签筛选的方式,从用户访问总集合种根据特定的用户行为捕获所需用户集。
- BI:提供数据应用层的可视化展示,对接单分片多副本clickhouse集群,可横向扩展
Clickhouse运维管理平台
在Clickhouse的使用过程中对常见的运维操作:增删节点,用户管理,版本升降级等封装了一系列的指令脚本,再结合业务使用过程中的一些诉求开发Clickhouse管理平台,该平台集管理,运维,监控为一体,旨在让用户更方便,快捷的使用clickhouse服务,降低运维成本,提高工作效率。
配置文件管理
元数据管理
- 维护各个clickhouse集群的元数据信息,包含表的元数据据信息及clickhouse服务状态信息,给用户更直观的元数据管理体验,主要功能:
- 查询指定集群和库表信息,同时展示该表的状态:只读or读写
- 查看表的元数据信息 行数,磁盘占用,原始大小,更新时间,分区信息
- 设定数据生命周期,基于分区对数据进行清理操作
用户管理
集群操作
监控与报警
Clickhouse 应用
BI查询引擎
- 核心诉求
- 选型对比
- 集群构建
- 问题及优化
实时数仓
- 分层架构
- 数据输入与输出
- 数据产品
- 常见问题