【发布时间】:2019-09-15 20:33:25
【问题描述】:
我正在编写一个微服务,它需要存储和检索大量净值与时间的数据来绘制图表。
基本上我需要通过 cron 为每个用户的净资产存储大量数据。
用户可以投资的共同基金有 20K。目前,有 8000 万用户,其中 2000 万投资了多个共同基金。这些数字正在迅速增长。
共同基金的价值每天在数据库中更新。使用共同基金的最新价值,更新所有用户的净值。
现在我的挑战是创建可扩展的设计来存储 (user_id, networth, date) 以绘制用户第一次投资时的图表。
我的问题如下:
我应该使用什么数据库?
一旦选择了数据库,有哪些方法可以实现每天插入约 1 亿条记录的可伸缩性。
更新: 从用户进行第一次投资开始,就需要存储数据。为简单起见,您可以假设每个用户使用 5 年。
对任何数据库开放。更喜欢图形数据库。
谢谢。
【问题讨论】:
-
它看起来不像是非常庞大的数据集——这种元组的一个实例可以存储为 24 个字节(假设用户 id 很长),所以 100mm 只是 ~2.2Gb。您需要提供有关您的要求的更多详细信息。您期望写入此 100 毫米记录的时间范围是多少(一天中,1 小时窗口等)?这些记录是如何生成的——批量、滴答等?绘图将如何工作 - 它是交互式的,还是可以等待它?等等
-
时间范围不是问题。记录是批量生成的。是的,绘图需要是交互式的。
标签: database-design architecture scalability system-design