目前,我正在处理时间序列数据(滴答机),并以.h5和.parquet格式存储熊猫的数据。我的工作负载基本上是查询数据的列&编写新的数据列。
当文件增加和分散时,它开始失去控制,所以我正在考虑使用数据库。我看到了一些NoSQL数据库,比如Cassandra和HBase。
这些数据库通常强调它们是distributed或elastic数据库。,但我只有一台物理机器(3990x64核心线程机)。
所以我的问题基本上有两部分:
distributed数据库,性能如何?在我的工作负载方面,它们还会比mySQL这样的传统数据库更好吗?发布于 2021-02-01 01:33:08
不是的。
当没有必要时,您将花费大量的时间和精力试图找出如何使用“分布式”。
从数据库开始
CREATE TABLE stocks (
ticker_id MEDIUMINT UNSIGNED NOT NULL,
date DATE NOT NULL,
open, close, volume, etc
PRIMARY KEY(ticker_id, date),
INDEX(date)
) ENGINE=InnoDB;
CREATE TABLE tickers (
ticker_id MEDIUMINT UNSIGNED AUTO_INCREMENT NOT NULL,
ticker VARCHAR(33) CHARACTER SET ascii NOT NULL,
PRIMARY KEY(ticker_id),
INDEX(ticker)
) ENGINE=InnoDB;这对于单个服务器上的10亿行来说已经足够了,即使只有很少的核心。
在您有几百万行之后,请返回SELECTs。我们可以讨论下一个步骤,以使它运作良好。
发布于 2022-01-28 06:02:12
您应该了解使用分布式/弹性DB系统与(不太容易分布的) DB系统(如MySQL )的好处。从横向可伸缩性的角度来看,分布式系统是很好的;由于您需要存储越来越多的数据,您可以(经常)无缝地添加新节点并对数据进行分区。不同的数据库使用不同的策略,比如Cassandra在节点间使用一致的散列,而Couchbase则在节点间使用虚拟桶的概念。
如果您有使用单个机器的限制,则会抛出水平可伸缩性。通过虚拟化,您可以在沙箱中运行多个DB。虽然这些虚拟机可能看起来是独立的,但您的系统资源正被所有人使用。你的实际储藏室将保持不变。
有了这一点,我将向您提供一些面向列的DB建议,并避免使用NoSQL数据库(除非您专门寻找无模式支持,很少需要连接)。
https://stackoverflow.com/questions/65978102
复制相似问题