| OLAP产品 | Kylin | Druid | Clickhouse | Impala+Kudu | Presto+HDFS | ElasticSearch+Hbase |
| 支持数据规模 | 百TB~数十PB(几十亿~百亿) | 百TB~PB | 百TB~PB(几亿~几十亿) | TB~PB | GB~数十PB | GB~TB |
| 查询性能 | 分析:亚秒级,支持高并发 明细:不支持 | 分析:亚秒级,支持高并发 明细:不支持 | 分析:单表亚秒级~2秒内 明细:单表亚秒级,Join在一些情况下性能不佳 | 分析:秒级~分钟级 明细:秒级 | 分析:秒级~分钟级 明细:秒级~分钟级 | 分析:不支持 明细:亚秒级,支持高并发 |
| 数据更新能力 | 微批量,定期预聚合hive数据 | 准实时 | 准实时,数据写入吞吐量能到200M/s | 支持快速随机update,实时性高, Kudu提供了更新数据和删除数据的能力 | 取决于存储引擎,HDFS基本是T+1 | 两份存储,一致性不好保证 |
| 灵活性 扩展性 | 业务变更需要重新开发和对历史数据计算 | 业务变更需要重新开发和对历史数据计算 | 业务变更只需重写sql,非常灵活 | 业务变更只需重写sql,非常灵活 | 业务变更只需重写sql,非常灵活 | 有一定开发工作量 |
| 特点 | 1. 适合高并发固定模式查询 如百度指数 2. 系统稳定性强 3. 精准去重场景优势很大 | 1. 流批一体 2. 插入效率高,更新不太好 3. 适合处理星型模型数据 | 1. 查询非常灵活,但不经常查,采用现算就比较节省资源,由于查询量少,即使每个查询消耗计算资源大整体来说也可以是划算的 2. 非常多列且 where 条件随意组合的用户标签筛选,复杂即席查询性能非常快 | 1. 增量实时写 Kudu ,全量离线写 HDFS 2. Kudu 只保留当天数据,前一天的写 HDFS 3. 使用 Kudu 解决 HDFS 小文件问题 | 1. 跨数据源的联邦查询 2. 支持多表 join ,支持复杂查询,应用范围更广 | 1. ElasticSearch存索引数据,Hbase存明细数据 |
| 不适用场景和缺点 | 1. 业务经常变化,需要重新刷新 Hive 任务,重新计算结果写入 Hbase 2. 几十个维度交叉度太深会导致预计算结果膨胀很大 3. 不支持明细查询 | 1. 超高基维度 2. 跨数据源 join 3. 跨天去重,业务方希望做到精确查询,无法做到 4. 无法查询明细 5. Sql 支持较差 | 1. 多表关联场景不适用 2. DB 数据频繁 update 的分析需求(如订单状态频繁变更) 3. 分析查询并发最好不超 100QPS | 1. 数据量较大,并发任务较多的时候,集群会很不稳定,需要有实时监测和人工干预,严重依赖集群资源 2. 并发能力较差 3. 多系统运维成本高 | 1. 多张大表关联操作容易 OOM 2. 并发造成性能下降非常明显 | 1. 没有 SQL 引擎 2. 不适合数据分析 3. 数据一致性问题 4. 级联查询支持不好 |



