PostgreSQL 上的 100 TB 数据库,无需分片

voi*_*ard 10 postgresql database

在 PostgreSQL 上设置一个 100 TB 的数据库(实际上大约 90 TB)而不在多个节点之间进行数据分片是否现实?是否有任何关于类似设置的成功案例/示例?

pfo*_*pfo 9

需要吸收的每秒 50K 写入通常不仅仅是一个挑战。即使在具有非常简单插入的综合基准测试中,PostgreSQL 的限制也往往会达到大约 10 K/s 的最大值——而且就数据库大小而言,你甚至没有这么大的野兽。

此外,该单个 PostgreSQL 节点的 I/O 系统也会很有趣,即使使用 RAID 10 并假设 50K 插入将仅等于 50K IOPS(这可能是错误的,但这取决于您的数据库方案和索引),您将需要大约一百个磁盘与一个非常好的阵列配对,这样您就不必购买数百个磁盘来及时为这些写入提供服务。

如果分片很容易,并且您预计会有如此巨大的写入负载,那么请进行分片。写入可能很难扩展。

  • 为了补充这些评论,我认为考虑到使用大量插入获取大量数据所需的预算,我很想使用付费 SQL 引擎,这将占整体预算的一小部分,而您会有更好的支持。 (2认同)