单个物理机上分布式数据库的性能?

问题描述

目前我正在处理时间序列数据(Tickers)并以 .h5.parquet 格式存储 Pandas 数据框。我的工作量基本上是查询数据列和写入新数据列。

文件增加和分散时它开始失控,所以我正在考虑使用数据库。我看到了一些 Nosql 数据库,如 Cassandra 和 HBase。

这些数据库通常强调它们是distributedelastic 数据库但我只有一台物理机器(一台 3990x 64 核线程撕裂器)

所以我的问题基本上分为两部分:

  1. 如果我在单个节点上运行这些 distributed 数据库性能如何?就我的工作负载而言,它们的性能仍会优于 MysqL 等传统数据库吗?

  2. 我可以使用虚拟化来构建集群吗?比如说,使用 ESXI 来虚拟化多个节点?它们会胜过单节点设置吗?

解决方法

没有

您将花费大量时间和精力试图弄清楚在没有必要时如何使用“分布式”。

从数据库开始

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;

即使只有很少的内核,这对于单个服务器上的十亿行数据来说已经足够了。

在您有几百万行后返回 SELECTs。我们可以讨论后续步骤以使其正常运行。