万字长文详述ClickHouse的探索与实践
原文中文,约31400字,阅读约需75分钟。发表于: 。一、前言京喜达技术部在社区团购场景下采用JDQ+Flink+Elasticsearch架构来打造实时数据报表。随着业务的发展 Elasticsearch开始暴露出一些弊端,不适合大批量的数据查询,高频次深度分页导出导致ES宕机、不能精确去重统计,多个字段聚合计算时性能下降明显。所以引入ClickHouse来处理这些弊端。数据写入链路是业务数据(binlog)经过处理转换成固定格式的MQ消息,Fli...
文章介绍了京喜达技术部在社区团购场景下采用JDQ+Flink+Elasticsearch架构来打造实时数据报表,并引入ClickHouse来处理Elasticsearch的一些弊端。重点讲述了在使用ClickHouse过程中遇到的问题,包括表引擎选择、Flink如何写入到ClickHouse、查询ClickHouse为什么比查询ES慢、写入分布式表还是本地表、如何定位消耗CPU的SQL、如何优化慢SQL、如何抗住高并发等。最终选用了ReplacingMergeTree引擎,分布式表通过业务主键进行shard,同时使用业务单据创建时间按月/按天进行分区。同时介绍了Flink如何写入ClickHouse的策略。