无服务器数据库替代方案

什么是动态 PostgreSQL?

A scaling PostgreSQL elephant

动态 PostgreSQL 是一种解决方案,它解决了预配数据库和无服务器数据库带来的挑战,提供了一种优化的平衡。

动态 PostgreSQL 的核心是动态计算,这是一个 Timescale 功能,旨在根据您的负载需求,在预定义的最小/最大范围内即时扩展可用计算。再也不用为始终使用峰值容量而进行预配和付费了。

方法很简单:选择一个适合您需求的计算范围。您的数据库以基本容量运行,只有在必要时才会扩展到峰值。模式是:购买基本容量,租用峰值容量。这是一个实用且经济高效的策略,让您掌控一切。

Buy the base, rent the peak

为了实现这一点,我们对 PostgreSQL 基础设施的运行方式进行了创新,而不是修改 PostgreSQL 的内部机制。这个解决方案完全是 PostgreSQL,拥有 PostgreSQL 社区和生态系统的全部优势,以及 Timescale 数据库平台的成熟度。要详细了解此功能背后的思考过程,请查看我们的发布博文 介绍动态 PostgreSQL:我们如何改进数据库,让您高枕无忧

何时应该使用动态 PostgreSQL(以及为什么它比无服务器数据库更好)?

动态 PostgreSQL 是为连续生产工作负载而构建的。您的应用程序几乎总是处于运行状态,那么为什么您的数据库不能也这样呢?

我们通常观察到四种负载模式:均匀、可变、突发间歇。我们认为,动态 PostgreSQL 在为前三种负载模式提供服务方面比现有解决方案(如无服务器数据库)更胜一筹。

The different workloads supported by Timescale's dynamic infrastructure vs. serverless infrastructure

均匀工作负载正如其名,具有相当恒定的计算负载。但通常情况下,DBaaS 产品会以固定的 2 的幂次方 vCPU 和相应的内存大小分配计算资源:1、2、4、8、16、32 个 vCPU。除非您的均匀工作负载正好落在这些值之一上,否则您将为过度预配付费。(即使它正好落在这些值上,您真的敢让您的数据库在接近 100% 的 CPU 利用率下运行吗?)有了动态 PostgreSQL,您可以更轻松地选择一个计算范围,您的均匀使用量落在最小值和最大值之间。这样一来,您只需为实际使用的计算资源付费,并且可以确信,如果使用量发生变化,数据库可以进行扩展!

可变工作负载会经历某种类型的定期可变性或季节性,无论是以小时、天还是周为单位。例如,您的业务应用程序在正常工作时间内可能会有更高的需求,或者您的媒体、游戏或电子商务网站在晚上或周末可能会有更高的需求。动态 PostgreSQL 自然地支持这种使用量变化,而您需要考虑的关键因素是配置一个计算范围,该范围可以满足您的峰值使用量,同时在其余时间内节省成本。

突发工作负载是由于外部或内部需求变化而造成的不规则变化。在外部,虽然您的应用程序持续地看到稳定的负载,但偶尔可能会出现意想不到的流行。或者,在内部,数据库维护操作(如自动清理)可能在不同的时间间隔内启动。但是,有了动态 PostgreSQL,您仍然可以调整数据库的大小以处理这些需求,同时知道您通常比峰值支付的费用要少得多。

间歇性工作负载仅在更不频繁的情况下(可能是每隔几分钟或几小时)才会看到请求。在这种情况下,如果您想以经济高效的方式服务这些偶尔的请求(并且冷启动的性能下降是您的应用程序可以接受的权衡),那么无服务器数据库是一个不错的选择。我们尚未针对这些情况优化动态 PostgreSQL。

简而言之,动态 PostgreSQL 适用于大多数生产数据库工作负载。与静态 DBaaS 和无服务器替代方案相比,这些工作负载中的大多数将在性能相同的情况下实现显著的成本节省。

使用动态 PostgreSQL:示例

使用动态 PostgreSQL及其动态基础设施(动态计算动态存储),我们成功地将现有 DBaaS 和无服务器数据库模型的优势融合在一起,为管理您的生产数据库提供了一种更优越、更实用的解决方案。

这种创新将 DBaaS 平台的性能、成本可预测性和可靠性与无服务器数据库的灵活性、用户友好性相结合。

考虑以下情况:您选择了一个 4-8 个 CPU 的选项。在这种情况下,您可以保证 4 个 CPU 专用地为您服务,并获得 32 GB 的有效内存,确保始终如一的基线性能。当您的负载上升时,您的应用程序可以使用高达 8 个 CPU,根据需要进行计量和按小数 CPU 计费,并且永远不会超过 8 个 CPU,如果这是您设置的最大值。

动态 PostgreSQL的动态模型使您能够以经济高效且轻松的方式调整数据库的大小。您可以选择一个计算范围,您的标准需求适合最小值,并且可以根据需要扩展到最大值。这个最大值充当对超过您基本计算的任何使用量的自然限制,从而导致透明的成本上限。此外,扩展没有价格惩罚——无论您的基本计算还是超过基本计算的任何计量使用,我们都按 (小数) CPU 小时收取相同的费率。

如果您发现您的预配大小范围过低或过高,您可以轻松地调整计算范围,使其更适合您的应用程序的需求。

此外,动态 PostgreSQL利用了 Timescale 的基于使用量的存储,您只需为存储的数据量(以 GB 小时为单位)付费,而不是为预配的磁盘大小付费。这样就消除了对浪费在过度预配的磁盘上或磁盘空间不足的担忧。Timescale 的动态云基础设施可确保在需要时提供足够的存储容量,并且只对您使用的存储量计费。

在月底,您的账单非常简单,只包含两个指标:(1)您的计算成本,按您的每小时基本计算加上任何超过基本计算的小数 CPU 使用量计费,但不会超过您的峰值;(2)您的存储成本,按数据消耗量(以 GB 小时为单位)计费。使用动态 PostgreSQL,您无需费心处理新的指标或派生单位——一切都清晰易懂。

动态 PostgreSQL 定价

在 Timescale,我们提供五种不同的计算范围,适合您的工作负载大小。每个范围都配备了相应的有效内存分配,确保无论您的即时使用量如何,都能获得最佳性能。

 Dynamic PostgreSQL's pricing table

我们为动态 PostgreSQL制定的定价模式旨在从战略角度出发,以成本效益为目标。初步估计表明,潜在节省的潜力巨大:与 AWS RDS for PostgreSQL 相比,您可以节省 10-20%,与 Aurora Serverless(I/O 优化)相比,您可以节省 50-70% 的费用。

如何启用动态 PostgreSQL

要创建动态 PostgreSQL 服务,只需在登录 Timescale时选择 PostgreSQL 选项。

How to create a Dynamic PostgreSQL service

Timescale 现在提供两种专门的服务类型,旨在满足您数据库的独特需求。

  1. 时间序列:专为提高高需求工作负载的查询速度和可扩展性而设计,提供超表、列式压缩、连续聚合和分层存储等关键 Timescale 功能。非常适合托管传感器数据、能源指标、财务数据、事件和其他数据密集型工作负载。

  2. PostgreSQL:针对成本效益和用户友好性进行了优化,这些动态 PostgreSQL 服务非常适合您的仅限关系型数据库,例如业务记录。

设置您的动态 PostgreSQL 服务非常简单。只需选择“PostgreSQL”,选择您的区域,定义您的动态计算范围,并指定您的可用性和连接选项。就这样,您的动态 PostgreSQL 数据库已设置完毕,可以投入生产使用。

Creating a dynamic PostgreSQL serviceDynamic PostgreSQL—Creating a dynamic compute service

立即开始节省动态工作负载的成本。试用动态 PostgreSQL——30 天免费试用。