我在金融科技公司工作,我们正在重新设计我们的数据系统。
我们有大约120 GB的压缩数据存储在文件系统中。这些数据涉及到大约80K不同的时间序列,每个时间序列有8K到500万行。估计行总数为80亿行。每一行应包含6个数值、时间和一个标识符。
我们想要运行的查询是:
每天我们更新大约10K的这些时间序列与8K至40K记录,涉及上个月的数据。这大约是8米行,大约需要4个小时。
我们正在寻找的东西,可以处理每日写负载不到3小时,同时保持快速查询性能。我们的查询涉及3K时态,它们在3M行周围扫描,并为每一行返回3.5K行。目前这种情况在1分钟内就会发生。
目前的系统并不复杂,所有数据都保存在一个文件服务器中,并且每天都与感兴趣方的本地计算机同步。该系统工作了一段时间,现在我们正在寻找更健壮和可伸缩的东西。
我们的困难需求是每天的摄入时间,但对于读取查询所需的时间,我们有一定的灵活性。
数据库能给我们提供性能和可伸缩性吗?如果是的话,你会选择什么?为什么?我们需要什么样的基础设施来支持这样一个系统?
发布于 2018-05-04 10:42:25
创建800万条新记录需要几秒钟,而不是几个小时。你只需要做散装,而不是缓慢的缓慢加载。(在每一行之后调用COMMIT
将是一个“坏主意”,因为它将限制您使用1行/5ms)。
同样的概念适用于数据的更新。(尽管如此。我希望有几分钟)。批量操作是关键。
根据我的经验,您主要关心的是磁盘I/O性能。您可以通过使用RAID系统来改进这一点。您可能会有一个额外的be或2,但您的性能,和冗余,应该大大改善目前的设置。
我会和甲骨文一起去。但是,这是因为当地资源(我)是这项技术的专家。(它还附带了一个很酷的基于web的应用程序开发框架)。
实际上,我建议你用你的实际数据来试一试,挑选出最适合你公司的。
https://dba.stackexchange.com/questions/205810
复制相似问题