业务背景
需要找到一个适合存储我们全息档案的容器 要求如下:
1 )能存储的数据量是 10 亿级
2) 能支持精确和模糊检索
3) 能支持按天进行大量数据更新 (千万级)
4) 能支持大数据量排序
容器特征对比
业务场景契合度分析
druid-
1)只能够处理TB级别数据
2)时序化数据,所有行记录中必须有日期指标
3)OLAP并发有限,不适合OLTP查询
4)目前不支持JOIN操作,不支持数据更新
5)分页支持的不够完善
doris-
1)由百度17年开源出来,用于百度统计的业务
2)市面相关资料不多 只有一些大厂在使用
3)官方建议搭建集群使用 学习和运维成本高 风险大
clickhouse-
1)单机性能足够强劲部署运维成本低
2) 架构在超深度聚合查询时 速度极快 比较适合当下业务场景
3)根据用户查询习惯使用物化视图技术可以进一步提升查询体验
4) Qps 1000能够满足当下业务场景
5) 适合大批量插入
es-
1)适合精准和模糊匹配全文检索速度快
2)做深度聚合时表现不佳
Mongodb-
1)集群架构下,需要手动配置前置查询路由+配置服务+分片的的分配和复制
2)全文检索是字段个数有限制
3)字段需要手动创建索引
TiDB-
1) 适合作大数量的存储和查询反而不适合数据量小的场景
2) 稳定性不好需要保证server节点的高可用 节点一旦出问题恢复要按照严格的顺序 运维存在风险
3)对硬盘要求很高,没上SSD硬盘的不建议使用
4)不支持分区,删除数据麻烦
5)插入数据太大会报错
6)内存使用过多会导致TIDB当机
结论
以clickhouse容器为主,辅以es实现全文匹配的功能,开发和运维成本低,风险小。Tidb如果忽略掉可用性和分区容错性这块也可以作为一个备选项。