1. 产品简介
云原生数据仓库AnalyticDB PostgreSQL版(ADB PG)是阿里云自研高性能、海量扩展数据仓库服务,兼容部分Oracle/Teradata语法生态,应用于阿里巴巴集团内部电商、物流、文娱、广告等业务部门,服务于阿里云的金融、政企、互联网等各行业用户,支持快速构建新一代云化数据仓库服务。
• PB级数据实时响应能:MPP水平扩展架构,PB级数据查询秒级响应;向量化计算,及列存储智能索引,领先传统数据库引擎性能3x;新一代SQL优化器,实现复杂分析语句免调优。
• 稳定可靠、简化运维:飞天平台基于阿里多年大规模集群系统构筑经验打造,智能硬件管理,故障监控诊断自恢复,支持MPP数据库实现复杂集群系统高可靠,自运维。
• SQL兼容性:可支持SQL 2003,部分兼容Oracle语法,支持PL/SQL存储过程,OLAP窗口函数,视图等,完备功能和生态,实现应用快速适配、或迁移。
• 数据多模分析:通过PostGIS插件支持地理信息数据分析;内置100+机器学习算法库,实现数据智能探索;高性能向量检索算法,支持视频/图像检索以图搜图。
2. 发展历程
• 2017年,ADB PG(原HDB)诞生,内核PG 8.2。
• 2018年,ORCA优化器稀疏和聚簇索引,支持JSON数据类型OSS外表。
• 2019年,内核升级PG9.4,向量执行引擎1.0多MASTER,RBO优化器增强,支持高维向量检索,通过信通院&信创认证。
• 2020年,云原生升级,备份恢复能力增强包含物理备份和表逻辑备份,外表联邦分析,多维排序,向量执行引擎,通过TPC-H评测获得全球第一。
• 2021年,副本多活、分层存储、计算存储分离、HTAP增强、行列混存。
3. 产品定位
ADB PG兼容业内主流数仓架构方案,支持ETL离线处理,支持在线交互分析。通过高性能计算引擎及实时同步方案,支持在线数据随机探索,实时同步分析。
如图
• RDS MySQL可以通过DTS入库。
• 流式计算Kafka/Flink可以通过Copy/Insert方式入库。
• 批量加载可以通过第三方工具Kettle/DSG。
• OSS/MaxCompute可以通过Dataworks数据集成或者外表的方式导入。
• 数据开发作业调度支持DMS、Dataworks、Dataphin。
• 功能完备:基于PostgreSQL内核,SQL高度兼容Teradata/Oracle。
• 生态完备:与阿里云数仓开发平台Dataworks,数据中台Dataphin,数据同步工具DTS等无缝集成;支持业内主流第三方工具。
4. 产品特点和优势
• 性能强劲:TPC-H评测全球第一,超过90%的读写性能水平扩展比。
• 弹性:支持水平扩容,分布式弹性架构,PB级数据存储与分析。
• 遵循PG/GP:业界最主流数仓协议,兼容主流ETL/BI/可视化等生态工具。
• 简单易用:经历大规模验证,对标传统商业数仓的企业级特性。
5. 核心功能
1) PL/pgSQL过程语言
自定义函数&存储过程如下:
CREATE [OR REPLACE] {FUNCTION | STORED PROCEDURE} name ([[argmode] [argname] argtype [ { DEFAULT|=} default_expr][,...]]) [RETURNS rettype |RETURNS TABLE ( column_name column_type [, ...]) ] LANGUAGE langname WINDow IMMUTABLE | STABLE |VOLATILE | [NOT] LEAKPROOF | CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT [EXTERNAL] SECURITY INVOKER | [EXTERNAL] SECURITY DEFINER | EXECUTE ON { ANY | MASTER | ALL SEGMENTS } | COST execution_cost SET configuration_parameter { TO value |= value| FROM CURRENT } As definition As'obj file,Link symbol'... [WITH({DESCRIBE = describe_function }[, ...])}
2) CBO优化器
新一代cascade框架的SQL优化器,面向全并行执行架构,代价优化CBO和规则优化RBO相结合,实现复杂SQL免调优。
• Top-Down路径搜索框架,搜索和路径选择更全面精准,避免出现局部查询路径最优解。
• 子查询自动改写为分布式JOIN,实现并行计算,规避手工改写调优。
• SQL优化阶段定义动态分区裁剪,即支持确定性过滤条件,也支持参数化的过滤条件,减少I/O。
3) 资源负载管理
支持自定义执行队列,根据用户角色,其执行任务进入对应资源管控队列。任务队列支持设定:
• 并行执行任务数;
• CPU优先级;
• 内存资源上限。
示例
如下图,用户可以自定义三个执行队列。
• ETL队列:赋予资源获取最低优先级。
• BI报表队列:赋予资源获取最高优先级。
• 数据探索队列:赋予资源获取中间优先级。
4) 备份恢复方式丰富
AnalyticDB PostgreSQL版支持如下备份特点:
• PITR备份恢复
• RPO<10min
• 支持差异化全量备份
• 支持增量备份
• 支持分布式一致性恢复
• 支持表级逻辑备份
5) 支持丰富生态
ADB PG支持主流工具,包括阿里云提供的DataWorks、DTS、DMS、数据集成、Quickbi、DataV等工具以及第三方Kettle、DSG等工具。
6. 产品选型
ADB PG产品系列有两种:预留模式和弹性模式。
1) 预留模式
• 特点:兼容Greenplum/PostgreSQL。支持2c、4c和8c规格,不同规格之间支持在线升降配、秒级切换,不影响业务运行,适合数据实时写入(DTS),高并发、实时分析场景。
• 性价比:百万TPS实时写入,上百QPS查询。
• 可用性:支持单副本和双副本模式,数据保存在云盘,可用性99.9%。
2) 弹性模式
• 特点:采用云原生架构,存储和计算完全分离,支持更大存储量,存储成本低,支持秒级扩缩容。适合批量导入、低并发,复杂ETL分析场景。
• 性价比:百万TPS批量导入,几十QPS复杂分析查询。
• 可用性:所有数据保存在OSS上,计算双副本,可用性99.9%。