最近的版本还包括对支持新体系结构的逻辑表示和超级用户权限的改进。
最近发布的PostgreSQL 16之所以意义重大,原因有很多。它实现了更灵活的访问控制机制,这对涉及托管服务提供商(MSP)的部署具有直接影响。
EnterpriseDB(EDB)高级产品经理Adam Wright肯定道,版本16还支持热备用功能,当它作为逻辑复制的源时,它能够“允许新的体系结构”。EDB是PostgreSQL 16(一个开源关系数据库管理系统)最重要的代码贡献者之一。
然而,最重要的是,最新版本的PostgreSQL包含了分析功能,用于促进复杂的聚合和窗口查询。当与数据库分别用于管理地理空间数据和矢量数据的扩展相结合时,这种增强可能是事务数据库与分析相关性日益增强的最新指标。
“我认为你开始看到的是,对专业数据仓库的需求开始降低,”Wright反思道。“在数据仓库市场的极端,拥有专业系统是必要的。但这真的开始成为极端,在很多用例中,你可以只使用Postgres,而不需要专业系统。”
分析
尽管PostgreSQL在事务系统中被广泛使用,但它在版本16中实现了Wright所说的“任意值函数”,具有明确的分析含义。此函数是SQL:2023标准的一部分。“这个函数实际上主要用于分析数据库,”Wright透露。“复杂的聚合/窗口查询是一种可以用来做什么的副标题。”
这个特殊的函数允许管理员和开发人员跨表中的一组行进行计算。Wright解释道:“你可以比较一行与另一行的计算方式,并对这两行进行汇总。”。“因此,可以通过几行SQL轻松地获得一个运行总数。”这一功能对于比较零售中库存订购的产品类型等用例很有价值,尤其是在大表中表示的不同位置。
向量和地理空间数据
根据Wright的说法,在数据库级别管理此任务通常比在应用程序级别更高效。使用后一种方法,管理员或开发人员将不得不编写比其他方法更多的代码,以及编写多个函数。然后,他们必须将数据带回并进行比较,而不是从数据库服务器中过滤所有内容。然而,“如果我在数据库服务器上编写这个聚合查询,我会比较表中的不同行,”Wright提到。“一旦全部完成,我将只流式传输应用程序所需的记录。”
PostgreSQL扩展PostGIS使用户能够存储和查询地理空间数据。Wright引用了另一个用于管理矢量工作负载的扩展,包括存储矢量数据和支持矢量运算符。Wright评论道:“这只是Postgres中的另一个用例,你不需要去找专业数据库供应商,获得另一份合同和另一份支持,也不需要加入任何你可能需要的东西来实际支持这些工作负载。”
逻辑复制
尽管Wright提到的扩展不是PostgreSQL 16中发布的新功能的一部分,但它们证明了数据库日益增长的分析实用性,这与最近发布的聚合和窗口功能不谋而合。Wright表示,新版还包括对其逻辑复制功能的增强,其中最重要的是“您可以从备用服务器中进行逻辑表示”。有了这种范式,用户可以从Wright所说的热备用中进行逻辑表示,他将其描述为将PostgreSQL数据中的每一个更改物理复制到目标系统——通常是为了实现高可用性。
Wright观察到:“有了逻辑表示,你可能只想复制几个表、一个销售表、一份订单表,并将它们提供给这些不同的系统,而不是从数据库中获取所有更改。”。逻辑表示使用户能够指定要复制的表,当与从备用系统进行复制的能力相结合时,可以广泛扩展复制和体系结构方法的可能性。Wright说:“你可以级联多个复制和类似的事情。”。“你可以在一个系统中做任何事情,但也可以更容易地从Postgres中获取数据子集,进入只读系统……由于这些原生功能,将支持更多的体系结构。”
超级用户改进
PostgreSQL 16还增强了与超级用户相关的控制程度和范围,超级用户拥有相当多的数据和系统访问权限。Wright承认,在以前的版本中,超级用户几乎可以做任何事情,包括篡改底层的“作为Postgres运行的服务的操作系统”。“这对托管数据服务来说是个大问题。”因此,托管服务提供商(包括一些超规模提供商)会将数据库、用户和设置从原始集群“分叉”或复制到另一个集群。
根据Wright的说法,这个过程可能会导致“错误和安全问题”。因此,最新版本的PostgreSQL中更精细的超级用户控件使“你能够对权限进行细粒度管理,并委托DBA管理数据库所需的任务,但不会给他们一些东西,让他们脱离数据库,”Wright说。或者,您可以管理一个角色,但不一定要管理该角色的数据
数据库空间
PostgreSQL 16的新增内容在很大程度上表明了正在影响整个数据库空间的发展。传统上用于事务目的的系统正在承担更多的分析责任。PostgreSQL对用于编写聚合和窗口查询的聚合函数的原生支持,以及对与地理空间和矢量数据相关的工作负载的扩展,可能预示着未来事务数据库和分析数据库之间的传统区别不再那么明显。
最新内容
- 2 days 8 hours ago
- 2 days 10 hours ago
- 2 days 10 hours ago
- 5 days 2 hours ago
- 5 days 9 hours ago
- 5 days 10 hours ago
- 5 days 10 hours ago
- 5 days 10 hours ago
- 1 week 2 days ago
- 1 week 2 days ago