《2019年ClickHouse在头条内部技术演进.pdf》由会员分享,可在线阅读,更多相关《2019年ClickHouse在头条内部技术演进.pdf(33页珍藏版)》请在三个皮匠报告上搜索。
1、ClickHouse 在头条内部技术演化目录1.ClickHouse 简介 2.Bytedance 如何使用ClickHouse 3.问题与解决方案 4.Q&A1.Developed by Yandex,and open source since 2016 2.查询性能优越的分析型引擎 3.主要特点(not new)-Column oriented+vector execution -Local attached storage(not Hadoop ecosystem)-Linear scalable&Reliable(shard+replication)-SQL interface -Fa
2、stClickHouse 简介1.Data Skipping -分区以及分区剪枝-数据局部有序(LSM-like engine,zone map)2.资源的垂直整合-并发 MPP+SMP(plan level)-Tuned执行层实现(multi-variant agg implementation,SIMD)3.C+Template CodeClickHouse 简介-性能优越的因素1.适用场景-单表分析 或 colocate join case-distributed join 性能并不出色 2.不足 -no transaction -batch data ingest -weak upda
3、te/delete support -weak optimizer&query rewriteClickHouse 简介-适用场景与不足1.选择ClickHouse的原因 产品需求 -交互式分析能力(in seconds)-查询模式多变 -以大宽表为主 -数据量大 Open sourced MPP OLAP engine-(performance,feature,quality)Bytedance 如何使用ClickHouse1.几千个节点,最大集群1200个节点 2.数据总量 几十PB 3.日增数据 100TB 4.查询响应时间(mostly)ms-30s 5.覆盖下列用户-产品运营,分析师
4、-开发人员-少量广告类用户-openapiBytedance 如何使用ClickHouseBytedance 如何使用ClickHouse产品运营研发人员用户行为分析平台自研BI系统SQL 网关其他ClickHouse集群数据仓库(HIVE)Kafka RDBMS(MYSQL)数据ETL服务Mini batch Data-多种数据源(离线+实时+)-交互式分析-数据处理链路对业务方透明 满足数据中台对数据查询需求。Bytedance 如何使用ClickHouse问题与解决方案数据源-ClickHouse 服务化数据就绪?ETLCH NodeCH NodeCH NodeHDFS消息中间件其他服务
5、化与自动化中的问题 1.HDFS 数据访问 2.数据导入过程中Fail over 3.CH数据就绪速度(Part生成)1.增加 HDFS 数据访问能力(HDFS client porting from HAWQ)2.ETL服务维护外部事务保障数据一致性(fail over)3.INSERT INTO LOCAL TABLE 4.数据构建与查询分离(experimental feature)数据源-ClickHouse 服务化1.客户端上报字段多变(自定义参数)2.数据产品需要相对固定schema Engine fix this Gap by Map type 性能需求:访问MAP 键值需要与访
6、问POD 类型的列速度一致 实现方式:LOB?Two-implicit column?Other Map 数据类型-动态Schema 1.数据特征:#keys 总量可控,局部有限 2.局部(PART level)展平模型(自描述)Map 数据类型-动态Schema 1.MAP键访问自动改写 e.g.“select c_mapa from table”will be rewrote to“select c_map_a from table”2.MAP列访问(代价较大)e.g.select c_map from table 3.Merge阶段优化(无需重构MAP column)4.收益:-自动化接