我正试图找出数据库、python和大数据方面的最新进展。
我的起点是一个SQL服务器、多进程熊猫和dask。假设我需要维护一个有超过10亿行的数据库,我需要继续插入它,甚至执行多处理,比对它们进行内存复杂分析还要大。
一些缺点包括,SQL server在插入数据和提取数据方面非常缓慢。
插入100 k行需要1秒,读取1M头行需要5s+。速度是非常令人不满意的比达克与地板。但是,对于带地板的dask,我不能一直插入到这个“10亿行以上的数据库”中。还不支持多索引/无聚集索引,甚至使一些以前快速的sql联接更慢.
我环顾四周,发现了apache,吡咯烷酮。但我有点不确定这是否是正确的前进一步。有什么建议吗?谢谢!
发布于 2021-08-01 04:53:34
我处理过数以十亿计的记录中的表,这些记录非常具有事务性,而SQL Server处理得很好。不确定您的期望是什么,但是在大约5s中读取100万行(通过将其返回到客户端)是相当合理的,取决于数据的总大小,即使是块格式的数据(我也曾经使用过),对于同样数量的数据,以相同的方式使用也只会减少不到1秒的时间。我也可以这样说,在1秒内插入100,000行。
注意,用行数来度量性能时缺少列宽度的变量,以准确确定性能的合理性。因此,是的,我同意在5秒内返回单个TINYINT (1字节宽)列的100万行,这听起来不合适,但总列宽度为1,000字节的100万行是合理的。
在这种规模下,测量的性能现在成为硬件和体系结构设计的界限,主要是与数据库平台无关。如果您已经完美地架构了您的架构,那么您所看到的性能并不是SQL Server的限制,而是您试图在所提供的硬件上处理的数据量的实际情况。
长话短说,如今用来管理数据的工具并不是本质上不同的性能,而是你如何使用这些工具和你提供的硬件来支持它们。
https://dba.stackexchange.com/questions/297438
复制相似问题