其他
干货 | 性能提升400%,ClickHouse在携程酒店数仓的实践
作者简介
小琴,携程高级数据经理,负责酒店BI、数仓工作,专注于大数据应用领域多年。
一、背景
二、技术预研与技术方案选型
图1
三、集成开发环境封装
cat filename.orc | clickhouse-client -- query="INSERTINTO some_table FORMAT ORC"
四、ClickHouse代码优化技巧
2)用in替代join提高执行速度
五、异常问题处理
Code: 252, e.displayText() = DB::Exception: Too many parts (301) . Merges are processing significantly slower than inserts.
Merge过程是异步的,插入速度过快会导致以上错误,一般建议速度100w/s。
Code: 241, e.displayText() = DB::Exception: Memory limit (for query) exceeded
在服务器内存充裕的情况下增加内存配额,一般通过max_memory_usage来实现;
在服务器内存不充裕的情况下,建议将超出部分内容分配到系统硬盘上,但会降低执行速度;一般通过max_bytes_before_external_group_by 、max_bytes_before_external_sort参数来实现。
六、服务器故障处理
七、小结
截止2020年上半年,携程酒店订单主题以及P1体系报表已经全部实现完毕,大部分性能提升在200%以上,整体性能提升平均在400%左右,基本解决大部分应用场景的问题,后期我们将整合更多主题入仓,充分发挥ClickHouse的性能优势,进一步提升效率。此外,我们也在研究Flink+ClickHouse技术,推进实时数仓建设。
【推荐阅读】
“携程技术”公众号后台回复“新书”,
可免费获得两本书的试读样章~
《携程架构实践》
京东
当当
《携程人工智能实践》
京东
当当
“携程技术”公众号
分享,交流,成长