ClickHouse的应用场景 和使用约束
clickhouse可实现秒级即席查询,可以辅助实时决策。主要用于以下场景。
1.用户行为分析:在采集用户行为日志之后,进行 PV、UV、留存、转化漏斗等操作,例如头条、快手、喜马拉雅等。
2.用户画像圈选:每个公司都拥有大量的用户和用户画像标签,如何快速从用户画像标签里圈选出某几类标签的人群,例如阿里、头条、喜马拉雅等。借助位图可快速计算出用户基数。
3.机器日志监控 &查询:每台机器都产生大量日志,如何快速监控、查询机器日志,以确保整体服务没有问题。基本上所有的互联网公司都在这样使用 ClickHouse 的。
4.IOT 场景:一些钢铁厂用 ClickHouse 采集、监控、分析内部 IOT 数据。
5.政府大数据:ClickHouse 赋能政府合作伙伴,针对政府大量结构化和非结构化数据,进行大量数据质量整理和搜索。
6.网管监控:针对一些特殊 APP、特殊网站的日志,快速分析和快速报警。
任何技术没有银弹,以下13条是最佳使用约束
1.绝大多数请求都是用于读访问的
2.数据需要以大批量(大于1000行)进行更新,而不是单行更新;或者根本没有更新操作
3.数据只是添加到数据库,极少没有必要修改
4.读取数据时,会从数据库中提取出大量的行,但只用到一小部分列
5.表很“宽”,即表中包含大量的列
6.并发查询频率相对较低(通常每台服务器每秒查询数百次或更少)
7.对于简单查询,允许大约50毫秒的延迟
8.列的值是比较小的数值和短字符串(例如,每个URL只有60个字节)
9.在处理单个查询时需要高吞吐量(每台服务器每秒高达数十亿行)
10.不需要事务
11.数据一致性要求较低
12.每次查询中只会查询一个大表。除了一个大表,其余都是小表
13.查询结果显著小于数据源。即数据有过滤或聚合。返回结果不超过单个服务器内存大小