阿里云 AnalyticDB for PostgreSQL 为采用MPP架构的分布式集群数据库,完备支持SQL 2003,部分兼容Oracle语法,支持PL/SQL存储过程,触发器,支持标准数据库事务ACID。ADB PG通过行存储、列存储、多种分区表和索引等机制,可以支持海量数据的交付分析,也支持ETL批处理任务。
ADB PG 6.0 版本大幅提升并发事务处理能力,更好的满足实时数仓场景,同时通过事务锁等优化,完备支持HTAP业务。ADB PG 6.0的内核从PostgreSQL 8.2升级到9.4,更好的兼容PostgreSQL社区生态。阿里云 AnalyticDB for PostgreSQL 6.0 版本在 公测期间(2019/10/1-2019/21/31)任意用户可通过如下链接申请一个免费试用实例: https://page.aliyun.com/form/act242960298/index.htm
ADB for PG 6.0 重要特性:
PostgreSQL 内核升级
ADB for PG 6.0版本较之前 4.3 版本,PostgreSQL内核从 8.2版本升级到9.4版本,大量PostgreSQL新特性包括:
- JSONB类型:在既有JSON类型上,支持JSONB存储格式,实现高性能的JSON数据处理及更丰富的JSON函数。
- 数据类型:支持 UUID 数据类型,支持RANGE 数据类型
- GIN索引和SP-GiST索引:可以更高性能支持模糊匹配,以及中文检索。
- 细粒度权限控制:支持了 schema 级别,以及 column 列级别权限控制和授权。
- 高效Vacuum:Vacuum在做空间释放时,可以暂时跳过被加锁的页面,而稍后再次轮询访问对其Vacuum,从而整体减少被阻塞的状况。
- DBLink:支持跨库的查询访问。
- Recursive CTE:实现SQL的递归查询功能,用于处理逻辑上为层次化或树状结构的数据,方便对该类数据进行多级递归查询。
- PL/SQL 增强:支持RETURN QUERY EXECUTE语句,可以动态即刻执行SQL;支持 Anonymous blocks 匿名块定义。
HTAP (OLAP+OLTP)能力提升
通过引入全局死锁检查机制 (global deadlock detection),会动态的收集和分析锁的信息来检查和解除全局死锁。基于此,HEAP表的更新修改操作可以只借助细粒度行锁完成,支持大并发的更改删除查询,提高整个系统的并发度和吞吐量。同时还对事务锁进行了优化,减少了开始事务和结束事务时的锁竞争。ADB PG 6.0在既有高性能 OLAP分析基础上,也可以提供高吞吐交易事务处理。典型 OLTP 场景 TPC-C 达到 20w tpmc;Sysbench 支持 select 15w tps, insert 5w tps,update 2w tps。
OLAP 新功能特性
- 支持复制表(replicated table):针对数仓中的维度表,通过建立复制表(DISTRIBUTED REPLICATED clause),可以大量减少数据传输,提升查询效率。
- 支持zstandard压缩算法:ZSTD压缩算法,较之前 zlib 压缩算法,提升三倍的压缩和解压性能。
ADB PG 6.0 新特性技术解析系列
OLTP 高并发优化 https://yq.aliyun.com/articles/727114
Recursive CTE (Common Table Expressions) https://yq.aliyun.com/articles/722547
LATERAL语法 https://yq.aliyun.com/articles/721604
Range数据类型 https://yq.aliyun.com/articles/721599
JSONB 数据类型 https://yq.aliyun.com/articles/727341
Index Only Scan https://yq.aliyun.com/articles/720749