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

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

使用场景:数据镜像保存,并在需要的时候取出数据
4353 次点击
所在节点    数据库
40 条回复
rekulas
2021-08-05 16:05:55 +08:00
@eric96 kv 写入是完全没有问题的(渣机都可以跑到 4w+),不过一般的 kv 库都存字符串不支持字段(需要序列化存储),要支持字段只能考虑楼上列的其他非 kv 数据库
dog82
2021-08-05 16:58:06 +08:00
你这种需求好像比较适合时序数据库
azkaban
2021-08-05 17:21:32 +08:00
aerospike
shot
2021-08-05 18:32:46 +08:00
> 目的:根据唯一主键从数据库中查询一行数据,要求 50TPS,延迟在 200ms

如果没有硬件资源限制的话,任何支持水平线性扩展的分布式数据库都能满足吧。
数据量再大,性能要求更高,加机器完事。

Cassandra 完美契合这一需求,参考 Discord 的经验:12 个节点,3 重复制,支撑日均过亿消息,写操作亚毫秒,读操作 5 毫秒。
https://blog.discord.com/how-discord-stores-billions-of-messages-7fa6ec7ee4c7

Discord 去年声称迁移到了性能更佳的 ScyllaDB,但是没有看到具体的性能指标。
https://www.scylladb.com/press-release/discord-chooses-scylla-core-storage-layer/
shot
2021-08-05 18:36:09 +08:00
@eric96

如果只评估传统的关系性数据库的话,那就尝试分区、分表、分库操作吧。

撑不住 20k tps 写入,可以考虑加一个消息队列做缓冲,批量处理批量写入。
在对读操作要求不高的场景下,问题应该不大。
Samuelcc
2021-08-05 18:38:32 +08:00
正是 hbase 发挥武艺的地方
Maxwe11
2021-08-05 19:40:28 +08:00
这需求简直就是按照 hbase 准备的。
sagaxu
2021-08-05 19:48:46 +08:00
mysql 也扛得住,主键改成: 日期+db 实例+序列号,假设 100 个实例,每天 100 张独立的表,每张表 3000 万压力不大。清理的时候直接 drop 对应日期的表。
ajaxfunction
2021-08-05 22:50:00 +08:00
真想看看这种大场面,
目前维护的数据库里最多的一张业务表也就几千万数据,一个普通索引就够了
limbo0
2021-08-05 23:14:13 +08:00
主键查询省事很多, 直接 hbase
shakoon
2021-08-06 10:25:00 +08:00
预算不说一下吗?费用充足 taradata,费用一般 greenplum,费用拮据 hbase
eric96
2021-08-06 10:56:18 +08:00
@shakoon 现在用的云服务,基本上每个月根据流量情况在 5000 刀-1W5 刀左右。想换掉的目的一个是想拜托对这个云厂商的依赖(其他云没有这个服务,也没有对应开源服务),另一个目的是能省钱最好,省不了钱也能接受
hjosama200
2021-08-06 17:09:19 +08:00
@ajaxfunction 真想看看这种大场面呢呜呜呜,这话说的,几千万还不满足吗 QAQ,这边孩子最多的用户表数据 500 不到,咱也想看看大场面呢 QAQ,4 年 java 后端,月薪 4k,美名其曰技术总监... 呜呜呜呜
hjosama200
2021-08-06 17:09:44 +08:00
救救孩子吧 QAQ
ajaxfunction
2021-08-06 18:00:12 +08:00
@hjosama200 你这也太惨了吧,是不是 to b 的啊,要不 500 个用户咋养活公司呢?
我 to c 随便一场活动 新用户就新增 2000+啊, 但留存不到 15%。
someonedeng
2021-08-06 23:31:45 +08:00
@hjosama200 该换工作了兄弟
aru
2021-08-07 08:30:47 +08:00
greenplum 绝对满足,多开点硬盘,多搞分区
makdon
2021-08-07 10:37:13 +08:00
@hjosama200 跑路吧孩子,这用户也太少了,每个用户得花多少钱才能养活这公司
flyingfz
2021-08-07 12:04:53 +08:00
https://www.taosdata.com/cn/documentation/evaluation#intro

可以看看 国产的 taos, 从文档来看 还是比较靠谱的 。
hjosama200
2021-08-09 09:28:58 +08:00
@ajaxfunction 辣鸡公司哪有 to b 那种大格局呀~ 显然是 to c 呀,用户上线率不到几十个,就是叫人充 vip 的辣鸡 app

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

https://tanronggui.xyz/t/793807

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

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

© 2021 V2EX