每天十亿级数据更新,秒出查询结果,ClickHouse 在携程酒店的应用
摘要
1)携程酒店每天有上千表,累计十多亿数据更新,如何保证数据更新过程中生产应用高可用;
2)每天有将近百万次数据查询请求,用户可以从粗粒度国家省份城市汇总不断下钻到酒店,房型粒度的数据,我们往往无法对海量的明细数据做进一步层次的预聚合,大量的关键业务数据都是好几亿数据关联权限,关联基础信息,根据用户场景获取不同维度的汇总数据;
3)为了让用户无论在app端还是pc端查询数据提供秒出的效果,我们需要不断的探索,研究找到最合适的技术框架。
对此,我们尝试过关系型数据库,但千万级表关联数据库基本上不太可能做到秒出,考虑过Sharding,但数据量大,各种成本都很高。热数据存储到ElasticSearch,但无法跨索引关联,导致不得不做宽表,因为权限,酒店信息会变,所以每次要刷全量数据,不适用于大表更新,维护成本也很高。Redis键值对存储无法做到实时汇总,也测试过Presto,GreenPlum,kylin,真正让我们停下来深入研究,不断的扩展使用场景的是ClickHouse。
欢迎在评论区写下你对这篇文章的看法。