《大数据实时多维分析神器课件.ppt》由会员分享,可在线阅读,更多相关《大数据实时多维分析神器课件.ppt(23页珍藏版)》请在三一办公上搜索。
1、,大数据实时多维分析神器-Clickhouse,大数据平台部-李庆勇,大数据实时多维分析神器-Clickhouse大数据平台部-李,章节标题,Clickhouse是什么?,1,Clickhouse优劣势,2,Clickhouse表引擎,3,目录,Clickhouse在柚先森中的应用,4,章节标题Clickhouse是什么?1Clickhouse优,1,Clickhouse是什么?,1Clickhouse是什么?,是什么?,官网: ClickHouse是一个开源的面向列式数据的数据库管理系统, 能够使用SQL查询并且生成实时数据报告。,开源列式SQL实时,要点:,是什么?官网: ClickHou
2、se是一个开源的面向列式数据,2,Clickhouse优劣势,2Clickhouse优劣势,优 劣 势,优势:,劣势:,快(插入快,查询快)表引擎多,适合不同的场景压缩比高支持线性扩展功能多(函数,复杂数据结构),不支持delete和update(新update)非标准的SQL没有窗口功能文档不够完善不支持UDF,优 劣 势优势:劣势:快(插入快,查询快)不支持delete,优 劣 势,快,快,快,配置:16核64G SSD ECS,优 劣 势快,快,快配置:16核64G SSD ECS,优 劣 势,快,快,快,优 劣 势快,快,快,3,Clickhouse表引擎,3Clickhouse表引擎
3、,表引擎,它允许对存储在远程MySQL服务器上的数据执行SELECT查询。,MySQL引擎,常见的使用场景: 通过查询Clickhouse的MySQL引擎表的全量或增量数据,insert到Clickhouse的其他引擎表(如:MergeTree),然后对该表进行查询分析,注意事项: 1. where 语句中的=, !=, , =, , =条件是直接通过MySQL来查询, 其他条件,如:like, in 条件和limit是在clickhouse里执行的 2. 如果是增量数据请注意MySQL的索引是否起作用 3. 最新版本可以往MySQL写入clickhouse的统计数据,语法:,MySQL(ho
4、st:port, database, table, user, password, replace_query, on_duplicate_clause);,表引擎它允许对存储在远程MySQL服务器上的数据执行SELE,表引擎,Clickhouse最先进的表引擎,支持一个日期(分区)和一组主键的两层式索引,MergeTree引擎,常见的使用场景: 存储不需要做预计算的数据,例如事实表数据,log明细数据,注意事项:默认的时间分区是按月,可自定义分区,数据量不是特别大建议默认主键不能包含可为null字段,语法:MergeTree(EventDate, (CounterID, EventDate)
5、, 8192),表引擎Clickhouse最先进的表引擎,支持一个日期(分区,表引擎,基于MergeTree,能处理重复数据的功能,此引擎表与MergeTree的不同之处在于它删除具有相同主键值的重复条目。,ReplacingMergeTree引擎,常见的使用场景: 在多维数据加工流程中,为“最新值”,“实时数据”场景量身打造,注意事项:可以手动指定版本列,或不指定(按插入时间)手动执行optimize table t 后才会触发merge行为,语法:ReplacingMergeTree(EventDate, (OrderID, EventDate, BannerID), 8192, ver)
6、,表引擎基于MergeTree,能处理重复数据的功能,此引擎表,表引擎,基于MergeTree,能将具备可加性的指标进行相加,从而减少表的数据量。,SummingMergeTree引擎,常见的使用场景: 不需要存储明细数据,可以进行预计算的,注意事项:可加列不能是主键中的列,可加列都为null会被删除手动执行optimize table t 后才会触发merge行为,语法:SummingMergeTree(EventDate, (OrderID, EventDate, BannerID), 8192, (Shows, Clicks, Cost),表引擎基于MergeTree,能将具备可加性的指
7、标进行相加,表引擎,是在MergeTree基础之上,针对聚合函数结果,作增量计算优化的一个设计,AggregatingMergeTree引擎,常见的使用场景: 对多维数据进行降维,且能提供去重数,例如uv,注意事项:数据不能通过普通的insert插入,而只能通过insert into select插入普通mergeTree能满足性能,尽量不用AggregatingMergeTree,语法:AggregatingMergeTree(StartDate, (CounterID, StartDate), 8192),表引擎是在MergeTree基础之上,针对聚合函数结果,,表引擎,可以实现删除数据功
8、能,CollapsingMergeTree引擎,常见的使用场景: 通过该引擎可以实现数据的删除操作,注意事项:Max和Min的指标无法通过该引擎实现,语法:CollapsingMergeTree(EventDate, (CounterID, EventDate, intHash32(UniqID), VisitID), 8192, Sign),表引擎可以实现删除数据功能CollapsingMergeTr,表引擎,为clickhouse提供副本功能,从而实现clickhouse的高可用。,Replicated*MergeTree引擎,常见的使用场景: 与Distributed表一起组合实现cli
9、ckhouse的高可用分布式系统,注意事项:依赖zookeeper,对zookeeper的性能要求比较高可提前配置Replicated,即使现在没用,也是有好处的即使现在不使用复制,之后也有可能需要复制对复制表的插入由Zookeeper确认,跟踪最后100个插入块的校验和,以避免重复,表引擎为clickhouse提供副本功能,从而实现click,表引擎,与物化视图配合,实现数据从kafka自动写入clickhouse物化视图。,Kafka引擎,常见的使用场景: 从kafka订阅消息插入到clickhouse物化视图里,然后对视图做多维查询,注意事项:为了提升处理性能,已消费的消息以批量的方式进
10、行压缩max_insert_block_size (默认 1048576b)批量消息不能被完成,刷新周期为stream_flush_interval_ms (默认为7500ms),表引擎与物化视图配合,实现数据从kafka自动写入click,表引擎,让clickhouse具备跨服务器的能力(分布式),是一个逻辑表。,Distributed引擎,常见的使用场景: 和Replicated引擎配合使用实现分布式,高可用,注意事项:一般是把数据直接插入原表,然后从分布表查询数据可在插入前做负载均衡,将数据插入不同机器的原表,表引擎让clickhouse具备跨服务器的能力(分布式),是,4,Clickh
11、ouse在柚先森中的应用,4Clickhouse在柚先森中的应用,柚先森,柚先森用户中心的实时多维统计,为什么用clickhouse?因为:需要实时,多维,新增账户: ReplacingMergeTree引擎启动次数: MergeTree引擎,柚先森柚先森用户中心的实时多维统计为什么用clickhous,柚先森,柚先森她她圈的实时多维统计,ReplacingMergeTree引擎,指标: 1. 浏览量,活跃用户与用户中心流程基本一致 2. 新增帖子,新增回复,首推帖如下流程,柚先森柚先森她她圈的实时多维统计ReplacingMerge,柚先森,柚先森资讯的实时多维统计(TODO),好处?Kafka数据复用:spark处理后的数据,可以提供给其他程序使用补数据简单:可以使用新的group_id,重新消费Kafka里的数据,柚先森柚先森资讯的实时多维统计(TODO)好处?,Thank you,厦门美柚信息科技有限公司,Thank you厦门美柚信息科技有限公司,