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