Serverless模式
AnalyticDB PostgreSQL版全新推出Serverless模式,利用云基础设施提供的资源池化和海量存储能力,结合传统MPP数据库技术、离在线一体化技术和Serverless技术,实现了计算存储分离、秒级扩缩容和多实例数据实时共享的特性。
简介
AnalyticDB PostgreSQL版基于云原生架构的Serverless模式完全解耦计算与存储,解决了计算存储必须等比例缩放的问题。赋能用户面向业务峰谷时对计算能力进行快速且独立的扩缩要求,同时保证存储持续按需付费。做到快速响应业务变化的同时,合理优化使用成本,进一步助力企业降本增效。
相比存储弹性模式,Serverless模式具有以下优点:
- 大幅度降低存储成本,实现按需使用。您的历史数据无需再迁移到其他存储介质上,让数据分析更简单、高效、低成本,一站式解决金融、互联网等行业快速增长的数据分析需求。 
- 对高吞吐写入场景和高性能跑批业务进行了设计优化,同时提供了弹性伸缩能力,适合业务数据量大、并具有典型的业务访问波峰波谷场景。 
- 在存储计算分离基础上,提供了数据共享功能,打破了物理机的边界,让云上的数据流动了起来。 一存多读的使用模式,打破了传统数仓之间数据访问需要先导入再访问的孤岛,简化操作,提高效率,降低成本。 
注意事项
支持创建AnalyticDB PostgreSQL版Serverless模式的地域及可用区如下:
- 中国: - 华北2(北京):华北2可用区H和华北2可用区I 
- 华东1(杭州):华东1可用区J 
- 华东2(上海):华东2可用区L和华东2可用区G 
- 华北3(张家口):华北3可用区C 
- 华南1(深圳):华南1可用区F 
- 华北5(呼和浩特):华北5可用区A和华北5可用区B 
 
- 亚太: - 新加坡:新加坡可用区C 
- 欧洲与美洲 - 美国(弗吉尼亚):美东1可用区A和美东1可用区B 
产品形态对比
Serverless模式作为一个新的形态,兼容存储弹性模式大部分功能,两种模式在产品功能方面的对比如下。
| 类别 | 功能 | 存储弹性模式 | Serverless模式 | 
| 实例管理 | 实例基本信息 | 支持 | 支持 | 
| 登录数据库(DMS) | 支持 | 支持 | |
| 创建实例 | 支持 | 支持 | |
| 释放实例 | 支持 | 支持 | |
| 重启实例 | 支持 | 支持 | |
| 实例升降配 | 支持 | 暂不支持 | |
| 扩缩Master节点 | 支持 | 支持 | |
| 扩容实例 | 支持 | 支持 | |
| 缩容实例 | 支持 | 支持 | |
| 小版本升级 | 支持 | 支持 | |
| 账号管理 | 创建账号 | 支持 | 支持 | 
| 重置密码 | 支持 | 支持 | |
| 数据库连接 | 连接基本信息 | 支持 | 支持 | 
| 申请外网地址 | 支持 | 支持 | |
| 监控与报警 | 监控 | 支持 | 支持 | 
| 报警规则 | 支持 | 支持 | |
| 数据安全 | 白名单 | 支持 | 支持 | 
| SQL审计 | 支持 | 支持 | |
| SSL | 支持 | 支持 | |
| 备份恢复 | 支持 | 支持 | |
| 配置 | 参数设置 | 支持 | 支持 | 
功能及约束
Serverless模式兼容存储弹性模式95%以上的功能,大多数情况下您可以按照原有语法使用本产品;JDBC接口、ODBC接口以及psql等工具在Serverless模式的使用方法与存储弹性模式一致。您在使用Serverless模式时需要注意部分功能方面的约束,具体信息如下。
- Serverless模式下,主键和索引功能处于公测阶段。如需创建索引,请联系技术支持开启索引功能。 
- 创建索引后会影响系统扩缩容的性能。扩缩容完成时间与索引的数据量成正比关系。 
- 索引空间存储会产生额外资费。当前公测阶段,该部分暂不收取费用。 
| 类别 | 功能 | 约束及说明 | 
| 基本功能 | ALTER TABLE | 
 | 
| 索引 | 支持 | |
| PRIMARY KEY | 支持 | |
| UNIQUE CONSTRAINT | 支持 | |
| INSERT ON CONFLICT(覆盖写) | 支持 | |
| UNLOG表 | 不支持 | |
| 触发器 | 暂不支持 | |
| HEAP表/AO/AOCS | 不支持 | |
| 自定义类型 | 暂不支持 | |
| 显式游标 | 支持 | |
| 计算引擎 | ORCA优化器 | 支持 | 
| Laser引擎 | 支持 | |
| 事务能力 | 子事务 | 支持 | 
| 事务隔离级别 | 支持RC和RR隔离级别 | |
| 高级功能 | 备份恢复 | 支持 | 
| 物化视图 | 支持 | |
| AUTO VACUUM | 支持 | |
| AUTO ANALYZE | 支持 | |
| 在线扩容 | 支持 | |
| 在线缩容 | 支持 | |
| GIS/GANOS | 不支持 | |
| 数据共享 | 支持 | 
数据迁移
您可以将现有数据迁移至Serverless模式中,AnalyticDB PostgreSQL版存储弹性模式和存储预留模式迁移至Serverless模式请参见AnalyticDB PostgreSQL版间的数据迁移。
更多数据迁移支持情况,请参见下表。
| 迁移类型 | 文档 | 是否支持 | 
| 数据写入 | 支持 | |
| 支持 | ||
| 支持 | ||
| 表级迁移 | 支持 | |
| 支持 | ||
| 支持 | ||
| 暂不支持。 您可以通过外表文件中转导入。 | ||
| 支持 | ||
| 支持 | ||
| 支持 | ||
| 仓级迁移 | 暂不支持。 您可以通过外表文件中转导入。 | |
| 暂不支持。 您可以通过外表文件中转导入。 | ||
| 暂不支持。 您可以通过外表文件中转导入。 | ||
| 暂不支持。 您可以通过外表文件中转导入。 | ||
| 暂不支持。 您可以通过外表文件中转导入。 | 
自动调度(邀测中)
云原生数据仓库 AnalyticDB PostgreSQL 版Serverless自动调度模式正在邀测中。如需使用,请您提交工单申请邀测资格。
AnalyticDB PostgreSQL版Serverless自动调度模式的实例会基于流量感知进行自动启停,若实例无流量则自动转入空闲状态,空闲状态下实例不会收取计算费用。
AnalyticDB PostgreSQL版Serverless自动调度模式支持您手动修改计算资源阈值和空闲释放等待时长,设置方法,请参见实例资源配置。
Serverless自动调度模式实例会根据ACU(Analytic Compute Unit,为Serverless自动调度模式实例的算力单元)进行计费,阿里云每小时会采集使用的ACU的数量,秒级计费,小时级出账。更多费用信息,请参见产品定价。
弹性扩缩容
Serverless模式支持分钟级别的在线弹性扩缩容。实验室测试扩缩容性能如下:
- 16个节点及以内的扩缩容耗时不超过60秒。 
- 16个节点以上的扩缩容耗时不超过5分钟。 
利用Serverless模式的分钟级别弹性扩缩容能力,您可以在预期的应用访问高峰期到来前(例如双十一购物节),临时将计算节点规模扩大,当应用访问高峰结束后再减少计算节点规模。AnalyticDB PostgreSQL版的计费模块会按照实际应用的时长和规格进行计费(以小时为单位)。通过这种方式可以达到性能和成本的平衡。
目前Serverless模式每个计算节点都拥有相对应的最高存储容量,如果您需要进行缩容操作,请务必保证总数据量不能超过缩容后节点规模的最高存储容量和。例如您的计算节点规格为2C8G,该节点对应的最高存储容量为960 GB,您需要缩容至4个计算节点,则您的总数据量不能超过3840 GB(960 GB*4)。
Serverless模式的不同规格节点对应的最高存储容量分别如下。
| 规格 | 最高存储容量 | 
| 2C8G | 960 GB | 
| 4C16G | 2200 GB | 
| 8C32G | 5400 GB | 
| 16C64G | 11800 GB | 
在扩缩容过程中,只有扩缩容前后会发生临时的闪断,其他时间段业务依然处于可读可写状态,保证了系统的持续可用性。
数据共享(Beta)
相比较传统数仓共享数据使用的数据导入导出方式,Serverless模式的数据共享具有如下优点:
- 存储成本:无需在多个AnalyticDB PostgreSQL版实例间复制或移动数据。分布式存储中仅存放一份数据,不占用额外存储空间,多个实例可在设定的共享范围内访问同一份数据。 
- 易用性:只需要简单的创建共享、授权和导入共享操作,即可在数据消费者实例上访问数据,无需处理表结构迁移,可以像访问本地数据一样访问共享数据。共享中增减共享对象和授权变化能自动同步到消费者实例。 
- 数据一致性:数据消费者实例对数据的访问性能接近于数据生产者实例,同时消费者实例可以读到生产者实例最新已提交的写入数据,保证事务的ACID能力。 
数据共享可以帮助您解决以下问题:
- 复杂组织权限隔离:例如公司总部和分部各有一个实例,总部实例的部分数据需要允许分部的实例进行访问。 
- 复杂业务资源隔离:例如ETL和AdHoc业务通过实例实现物理资源隔离,ETL结果通过数据共享给AdHoc的实例。 
- 跨业务协作:例如数据研发、销售、运营、财务在需要分析同一份数据时,该数据可以通过数据共享允许组织内不同业务组的访问。 
目前数据共享处于测试阶段,使用时存在以下约束:
- 数据共享仅支持普通表,不支持分区表、外表、View、Schema和函数的数据共享。 
- 数据共享仅支持Hash分布表,不支持复制表和随机表。 
- 数据共享不支持子事务。 
- 当源实例中有多个共享时,目标库只能订阅其中一个共享。 
- 共享的表无法进行DDL操作,如果需要进行DDL操作,需要取消该表的共享。