当前位置:首页 > 报告详情

2019年ClickHouse在头条内部技术演进.pdf

上传人: 云闲 编号:97464 2021-01-01 33页 1.53MB

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
ClickHouse是一种由Yandex开发并于2016年开源的分析型数据库引擎,以其查询性能优越而著称,主要特点包括列向存储、向量执行、本地附加存储、线性可扩展性和可靠性(通过分区和副本实现)、SQL接口以及快速的Data Skipping和资源垂直整合能力。尽管它在单表分析和colocate join场景中表现出色,但对于分布式join和事务支持较弱。 字节跳动(Bytedance)使用ClickHouse作为其大数据处理的核心技术,支持数千个节点的大型集群,处理的数据总量达到几十PB,日增数据约100TB,查询响应时间在毫秒到30秒之间。它服务于产品运营、分析师、开发人员以及广告类用户,通过SQL网关和自研BI系统与其他数据仓库(如HIVE)、Kafka和RDBMS(如MYSQL)集成。 在使用ClickHouse过程中,字节跳动面临了数据源到ClickHouse服务化的问题,如HDFS数据访问、数据导入过程中的Failover、数据就绪速度等。为了解决这些问题,他们增加了HDFS数据访问能力、维护外部事务以保证数据一致性、使用本地表INSERT以及数据构建与查询分离等策略。 针对动态Schema的需求,ClickHouse通过Map类型提供了解决方案,使得数据特征的键值访问能够自动改写,并且无需重构MAP列,简化了数据构建(ETL)逻辑。 在高可用性方面,字节跳动通过开发HaMergeTree解决了ZooKeeper在大型集群中的性能问题,将ZooKeeper的压力分散,并确保了数据和服务的高可用性。 此外,字节跳动还针对特定场景优化了内存使用,如通过Step-ed Aggregation减少内存使用,以及使用BloomFilter和BitMap index来优化Array类型的处理。 总体而言,ClickHouse在字节跳动内部被广泛应用于快速交互式分析,并且针对遇到的挑战进行了多方面的优化和改进。
"ClickHouse在头条如何提升性能?" "动态Schema如何简化数据处理?" "高可用性如何解决ZooKeeper问题?"
客服
商务合作
小程序
服务号
折叠