数据库选型——要求根据主键查询,数据量在 150 亿左右

2021-08-05 11:40:56 +08:00
 eric96
目的:根据唯一主键从数据库中查询一行数据,要求 50TPS,延迟在 200ms
数据库现状:每天新增数据 10 亿行,保留 15 天数据,即数据库基本上稳定在 150 亿行数据(后续会增长到每天新增 30 亿行,即 450 亿行数据)
对数据库的要求:写入 TPS 至少为 2W,并且可以扩展。读取要求不高,并且为简单的查询场景,只使用唯一主键进行查询,没有其它需要

使用场景:数据镜像保存,并在需要的时候取出数据
4292 次点击
所在节点    数据库
40 条回复
liprais
2021-08-05 11:48:46 +08:00
hbase 完事
zoharSoul
2021-08-05 11:49:24 +08:00
我觉得 hbase 就很合适
saytesnake
2021-08-05 11:55:25 +08:00
假设服务器配置不错的情况,hbase 集群完事 +1,写入很舒适。
winnie2012
2021-08-05 11:56:15 +08:00
zmxnv123
2021-08-05 12:42:05 +08:00
kv 存储吗,试试 tikv
sanestays
2021-08-05 12:54:27 +08:00
doris clickhouse
learningman
2021-08-05 12:56:07 +08:00
唯一主键找 kv 呗
defage
2021-08-05 12:58:49 +08:00
hbase 吧,应该是最合适的了
rekulas
2021-08-05 13:02:51 +08:00
纯 kv 数据库选择就多了 rocksdb 应该是入手最简单又能满足需求的
blackshow
2021-08-05 13:12:45 +08:00
cassandra
dusu
2021-08-05 13:17:53 +08:00
这个规模要并发、要简单 用 ssdb 多主就 ok 了,ssdb 的主从使用运维体验基本无敌,唯一就是注意业务上分 key 写节点,key 按日期前缀生成,直接扫前缀就能清理
wzw
2021-08-05 13:30:44 +08:00
@dusu ssdb 更新很少了吧, 可以看看 pika 数据库试试
dusu
2021-08-05 13:34:34 +08:00
@wzw (一年多前) pika 在生产环境下集群各种不稳定,也可能是我们 hold 不住,所以换回 ssdb 了,ssdb 虽然不更新但是够用,基本没蹦过
offswitch
2021-08-05 14:06:29 +08:00
@dusu 试一下 kvrocks,这个更新挺勤的,而且目前已经支持集群了
eric96
2021-08-05 14:19:41 +08:00
@zmxnv123
@learningman
@rekulas
@dusu
@wzw
@offswitch
数据虽然是用主键来查找的,但是数据列比较多,有 30+列,平均每一行的数据大小在 1.5KB 。
如果是这种情况下用 kv 存储是否可行,性能能否跟上。
因为除了 redis,没了解过其它 kv,希望各位能给些意见
Jface
2021-08-05 14:19:47 +08:00
Hbase 吧 或者试试 TiDB?
huangzxx
2021-08-05 14:25:08 +08:00
clickhouse
dog82
2021-08-05 15:10:03 +08:00
传统数据库,做分区表,能撑住吗?
wellsc
2021-08-05 15:14:20 +08:00
@sanestays 确定?
eric96
2021-08-05 15:17:37 +08:00
@dog82 我设想了一下,估计是撑不住的。
因为需要类似 ttl 的实现,所以如果使用时间作为分区键的构成之一,会导致写入的热区(所以基本上是撑不住 2WTPS 的写入),并且由于查询的时候,只有主键没有时间信息会导致查询上的性能问题(当然也可以修改目前主键的构成,加上时间信息,后续查询的时候解析出时间信息)。所以即使修改主键的构成,但是依旧无法解决写入的问题
如果不使用时间信息去做分区,将无法删除旧数据,会导致数据一直膨胀,而且传统的数据库删除数据并不会释放磁盘空间,只有删除库或分区才会释放空间

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/793807

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX