云原生数据仓库AnalyticDB PostgreSQL版经过多次产品迭代升级,当前主流产品形态为存储弹性模式。你在购买存储弹性模式时,除选择规格外,还需指定存储空间。当实例空间不足时,不仅可通过扩展节点方式扩容,也可通过增大存储空间的方式扩容。
为了减少实例配置选型的复杂度,存储弹性模式的实例仅需选择以下几个参数即可完成实例创建。
实例资源模式
- 引擎版本
云原生数据仓库AnalyticDB PostgreSQL版提供了如下引擎版本:
- 6.0标准版:标准引擎,基于原生Greenplum内核深度定制开发,适用于通用业务场景。
- 6.0向量增强版:在标准引擎基础上,增强支持非结构化向量数据的检索和分析能力,适用于以图搜图,声纹识别,语义文本检索,电商商品图片分析等业务场景。
- 规格节点
云原生数据仓库AnalyticDB PostgreSQL版采用MPP并行架构,在节点角色上区分为Master节点和Segment节点,其中Master节点是实例的入口,负责SQL请求、路由分发和结果集处理,Segment节点为计算节点,负责SQL处理和数据存储,每个Segment节点会处理并存储表一个分片的数据,即MPP架构下的一个数据分区。
在创建或升级实例规格时,需要选择实例的Master节点数量、Segment节点规格、Segment节点数量(实例节点数量)和存储类型。
- Master节点数量:默认为1个Master节点,也可以选择多个Master节点。多节点Master可承载更多系统访问,创建完毕后,注意请使用集群地址。节点数量取值范围为1~16个。
- Segment节点规格:
- 单节点2核16 GB内存,适用于较低并发场景。
- 单节点4核32 GB内存,推荐规格,适用于中并发通用场景。
- 单节点8核64 GB内存,适用于高并发执行场景。
- 单节点16核128 GB内存,适用于超高并发执行场景。
- Segment节点数量:采用MPP架构,数据处理能力随实例节点数量增加而线性增长,保证数据量增加而响应RT时间不变。可以参照原始数据量及应用场景,选择适合的实例节点数。
- 存储类型:
- ESSD或SSD:可以提供更好的I/O能力,带来更高的分析性能,适用于性能优先类场景;SSD存储单节点1核或ESSD存储单节点2核,只适合32节点内实例的低并发执行场景。
节点(分区)存储类型 节点核数 内存 有效存储空间 推荐场景 ESSD 2 16 GB 50 GB到1 TB 低并发场景,支持节点4~128个。 ESSD 4 32 GB 50 GB到2 TB 高并发场景,支持节点4~128个。 - HDD或高效云盘:可以提供更大、更实惠的空间,满足更高的存储需求,适用于数据存储优先类场景;HDD存储单节点2核或高效云盘存储单节点2核,只适合8节点内实例的低并发执行场景。
节点(分区)存储类型 节点核数 内存 有效存储空间 推荐场景 大容量高效云盘 2 16 GB 50 GB到3 TB 低并发场景,支持节点4~128个。 大容量高效云盘 4 32 GB 50 GB到4 TB 中并发场景,支持节点4~128个。 核数:内存:存储
推荐配比为1:8:80
,为了保障实例的整体性能,建议Segment数据存储量/内存≤20,以保证较高的缓存命中率。
- ESSD或SSD:可以提供更好的I/O能力,带来更高的分析性能,适用于性能优先类场景;SSD存储单节点1核或ESSD存储单节点2核,只适合32节点内实例的低并发执行场景。
- 数据加密:
- 有数据安全合规要求的场景,请选择数据加密选型,默认不加密。仅在创建实例时可以开启云盘加密,创建实例后无法开启;创建实例时,存储磁盘类型需选择为ESSD云盘或高效云盘;云盘加密功能开启后无法关闭;开启云盘加密后,实例生成的快照以及通过这些快照创建的云盘版实例将自动延续加密属性。
- 请注意,加密将影响存储的I/O性能,进而影响整个实例的响应时间和处理能力。
实例配置选型
如果有5 TB的原始数据,针对高性能分析场景,并有100并发以上的查询,建议采用SSD存储类型,单节点4核32 GB内存的实例规格,考虑到一定的存储安全水位80%,每个节点存储空间为200 GB,总共32个节点实例。云原生数据仓库AnalyticDB PostgreSQL版默认采用主备高可用架构,数据双副本。
行存储与列存储
云原生数据仓库AnalyticDB PostgreSQL版在表数据存储格式上支持行存储和列存储,二者在不同使用场景下各有优劣势,直接关系到实例的性能和存储空间。用户在创建表时,支持指定数据存储格式,即支持按行组织存储,也支持按列组织存储。
- 如果OLTP的需求偏多,有较多数据更新操作或有实时写入的业务场景 (INSERT/UPDATE/DELETE ),可以考虑行存。 如果用户有OLTP和OLAP的混合需求,可以采用分区表,例如按时间维度的需求分区,分区数目建议不超过200个,否则会影响查询的SQL优化性能。近期的数据明细查询较多的话,可以考虑使用行存。对于1TB 原始数据,入库后采用行存储,大小一般还是在1TB左右,考虑到索引、日志、以及在计算过程中会产生临时文件等,建议按2TB的用户数据空间来规划集群实例规格。若对查询性能要求较高,可以增加实例节点数,从而增加相应的CPU、内存等资源,提升查询性能。
- 如果OLAP的需求偏多,有批处理ETL场景,其数据一般较少被更新(UPDATE/DELETE),数据为批量入库,同时查询以少量列的全表数据聚合关联为主,需要经常对数据进行统计时,建议采用列存储;需要比较高的压缩比时,也可以选择列存。列存储支持较高的数据压缩率,可以达到2-5倍的压缩比,即对于1TB原始数据,入库后若采用了列存储压缩设置,数据在0.5TB以内,那么可以按 1TB的用户数据存储空间来规划集群实例规格。
- 云原生数据仓库PostgreSQL版也支持OSS外部表的扩展,可通过gzip实现外部存储上的数据压缩,将不需要参与实时计算的数据存储到数据库外部以进一步节省存储成本。