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

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

使用场景:数据镜像保存,并在需要的时候取出数据
5167 次点击
所在节点    数据库
40 条回复
F281M6Dh8DXpD1g2
2021 年 8 月 5 日
hbase 完事
zoharSoul
2021 年 8 月 5 日
我觉得 hbase 就很合适
saytesnake
2021 年 8 月 5 日
假设服务器配置不错的情况,hbase 集群完事 +1,写入很舒适。
E2gCaBAT5I87sw1M
2021 年 8 月 5 日
xe2vherd
2021 年 8 月 5 日
kv 存储吗,试试 tikv
sanestays
2021 年 8 月 5 日
doris clickhouse
learningman
2021 年 8 月 5 日
唯一主键找 kv 呗
defage
2021 年 8 月 5 日
hbase 吧,应该是最合适的了
rekulas
2021 年 8 月 5 日
纯 kv 数据库选择就多了 rocksdb 应该是入手最简单又能满足需求的
blackshow
2021 年 8 月 5 日
cassandra
dusu
2021 年 8 月 5 日
这个规模要并发、要简单 用 ssdb 多主就 ok 了,ssdb 的主从使用运维体验基本无敌,唯一就是注意业务上分 key 写节点,key 按日期前缀生成,直接扫前缀就能清理
wzw
2021 年 8 月 5 日
@dusu ssdb 更新很少了吧, 可以看看 pika 数据库试试
dusu
2021 年 8 月 5 日
@wzw (一年多前) pika 在生产环境下集群各种不稳定,也可能是我们 hold 不住,所以换回 ssdb 了,ssdb 虽然不更新但是够用,基本没蹦过
offswitch
2021 年 8 月 5 日
@dusu 试一下 kvrocks,这个更新挺勤的,而且目前已经支持集群了
eric96
2021 年 8 月 5 日
@zmxnv123
@learningman
@rekulas
@dusu
@wzw
@offswitch
数据虽然是用主键来查找的,但是数据列比较多,有 30+列,平均每一行的数据大小在 1.5KB 。
如果是这种情况下用 kv 存储是否可行,性能能否跟上。
因为除了 redis,没了解过其它 kv,希望各位能给些意见
Jface
2021 年 8 月 5 日
Hbase 吧 或者试试 TiDB?
huangzxx
2021 年 8 月 5 日
clickhouse
dog82
2021 年 8 月 5 日
传统数据库,做分区表,能撑住吗?
wellsc
2021 年 8 月 5 日
@sanestays 确定?
eric96
2021 年 8 月 5 日
@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