PolarDB PG 版冷热数据分层功能介绍

本文涉及的产品
对象存储 OSS,20GB 3个月
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
对象存储 OSS,内容安全 1000次 1年
简介: 本文介绍了云原生数据库PolarDB PG版的冷热数据分层存储功能,涵盖其原理、特性及最佳实践。冷热分层存储通过将冷数据归档至OSS(对象存储服务),实现低成本高效存储,同时保持SQL操作透明性和性能优化。支持多种分层模式,如表与索引分层、大字段独立归档等,并提供压缩和缓存机制以提升访问速度。此外,还介绍了如何通过DDL语句轻松转存数据至OSS,以及一系列最佳实践,包括自动冷热分层、无锁表转存和一键转存等功能。

PolarDB PG 版冷热数据分层功能介绍

 

内容介绍:

一、冷热分层存储原理及特性

二、冷热分层存储支持模式的几种模式

三、冷存数据访问及数据压缩率

四、如何将数据转存OSS

五、分层存储最佳实践

 

本次分享的主题是在云原生数据库PolarDB PG上自研实现的冷热数据分层存储功能,由刘建伟分享。

 

一、冷热分层存储原理及特性

1.冷热分层的原理

左边是冷热分层的架构图。上面是PolarDB PG异写构图的架构。中间是共享存储也就是云盘,下面是OSS。数据从云盘写入OSS需要经过一层压缩。同时从OSS读出到共享存储有一个解压缩过程。冷热分层的功能可以用两句话概括。第一是PolarDB可以将OSS对象存储。直接作为一种存储介质。存储价格十分低廉。第二是可以与块存储联合使用。根据不同维度自动将冷热数据分层存储。既保持增删改查的SQL透明性。同时通过多级缓存保障性能的最少衰减。

图片2.png

2.分层存储的特性

(1)第一个特性是易用性比较好。

客户通常认为数据存入OSS之后没办法修改。只能读不能写。但在PolarDB 机上实现的冷热分层存储。没有OSS限制。也就是数据写入OSS之后表可以增删改查,索引是完全透明的。也支持join的联合操作查询。同时分层存储的索引透明。基表数据存储在OSS中。可以在此基础上建立索引。同时索引可以建在云盘上。也可以直接建在OSS上。

(2)第二个特性是灵活度比较高。

PolarDB PG实现的分层存储支持多种OSS分层的策略。最直接的是将OSS基表和索引分开,将基表归档。然后是将分区表归档。这是使用最常见的场景。将历史分区存入OSS进行归档。然后热分区依旧保留在云盘中。

(3)第三种是按大字段进行独立归档。

这是PolarDB PG独有的一个特性。比如有时候一张表里有JSON或者TEXT或者其他符合类型的字段。它比较占用空间。但它的访问量也比较低。访问频度频率比较低。可以将大字段独立的存储在OSS上。其他字段依旧保留在云盘中。第三个特性是性能上采用了三层缓存的设计。首先针对逻辑对象,一些特殊的对象有一层缓存。其次是页面的共享缓存。也就是我们的shared buffer。第三层是文件的缓存。也就是利用云盘实现对OSS的一层物化缓存。在做增删改读时。可以合并一些IO。减少对OSS的访问次数。就可以将OSS的读写延迟影响降到最低。

(4)第四个特性是覆盖的场景比较广泛。

除了通用的场景之外,在时空、时序数据的归档上都可以。例如时空轨迹,随着时间的增长轨迹,历史轨迹可以写入OSS。以及高精地图不更新的部分们也可以放到OSS。时序数据,历史分区也可以直接放到OSS进行归档,可以大幅降低成本。

(5)第五个特性是安全可靠。

由于实现的冷存是SQL透明的。增删改都可以操作。所以在数据的高可用上跟云盘对齐。它是利用copy online机制实现OSS的数据快照。如果有误删或者误改操作。也可以基于OSS快照快速恢复。同时冗余也降到最低。

图片3.png

 

二、冷热分层存储支持模式的几种模式

1.首先最普通的是数据冷归档模式。

就是无脑的将表索引以及物化视图等任何数据都扔到OSS中。

2.第二种是表与索引分层。

就是将基表的数据存储在OSS中。但是索引建立在云盘上。这样做点查或者索引扫描时能确保性能。

3.第三种是表内的大字段分层。

就是将某一个字段独立写入OSS,其他字段依旧存储在云盘。第四种是比较典型的分区表的分层,可以将过期的历史分区转存到OSS。热分区依旧存储在云盘上。如果查询和写入只达到热分区上。性能完全没有影响。

图片4.png

 

三、冷存数据访问加速及数据压缩率

由于OSS的访问延迟比较高。为了降低OSS延迟对数据的访问影响,做一层物化缓存。描述OSS物化缓存的一些机制。在默认情况下。会在云盘上开1GB的物化缓存,确保基础的数据写入的IO合并。如果对表的访问性能要求变高。可以通过Polar_smgrcache_size参数来调高缓存。访问性能也能得到加速。

图片5.png

接下来介绍数据压缩率。PolarDB分层存储将数据写入OSS。不是直接写进去,是会通过一层压缩。可以进一步降低在OSS上的存储空间。对于压缩率不同的类型表现不一样。像序列化的int类型,压缩效果最好。它的压缩率可以达到10%以内。也就是1GB的数据压完后不到100兆。其他通用类的integer、Double、text、timestamp数据的压缩率在十几%到三十几%。最多的是通用类型的多字段组合。压缩效果会有所降低。但也能达到30%到40%的压缩率。也就是1GB数据压完之后存到OSS上只有300到400兆。最后是空间几何类型的数据压缩。点类型压缩表现效果比较好。压缩率能达到20%到30%。对于线面数据。压缩效果稍微弱一些。只能达到60%到70%。这是数据在OSS上存储过程中的压缩率。

图片6.png

 

四、如何将数据转存OSS

只需要通过简单的DDL就可以将数据库中现有的数据存入OSS。首先将一张表或者是索引转存OSS。可以使用ALTER TABLE SET TABLESPACE OSS、ALTER INDEX SET TABLESPACE OSS、ALTER Materialized SET TABLESPACE OSS 将他们写入OSS。对于大字段独立转存OSS开发了一种新的DDL语句。就是alter table set,直接alter column时。设置storage type为OSS。在写入OSS数据时。如果大字段有数据写入,是直接写入到OSS。然后访问和增删改都是完全透明的。第三个是针对分区表的子分区转存。子分区跟普通的表是一样的。所以操作语句也是一样的。通过ALTER TABLE SET TABLESPACE OSS语句就可以实现。

图片7.png

 

五、冷数据分层存储最佳实践

第一个实践是分区表按时间线自动做冷热分层。分区表如果是按时间序列进行分区。那随着时间的推移。一段时间之前的数据就归为历史数据。历史分区就要自动的转存OSS。对于这种场景,在PolarDB PG里面可以通过pg_corn插件来配合实现按时间线自动冷存的功能。

第二个实践是大字段直接通过DDL语句将storage type设为OSS。

第三个实践是关于转冷存时锁表的问题。在执行表转OSS时,普通的操作会长时间锁住表,直到最后转完才会释放锁。PolarDB 有pg_repack插件。在此基础上实现不锁表直接可以转冷存的功能。

第四个实践是如何实现一键转冷存。当将表还有索引或者是分区表的很多个分区以及分区表上多个索引转存。如果一次一次做DDL操作会比较麻烦,所以提供一键转冷存的函数。就是可以直接调函数,将表以及表上的索引或者是分区表以及底下所有的分区表索引一次性转存到OSS中。

图片8.png

第五个实践是关于统计。怎么统计存储在OSS上数据的大小。提供一系列的统计函数。和5Pg的统计函数不一样。5Pg的函数只能统计在云盘上的存储空间。OSS部分需要通过独立的额外的函数进行统计。接下来是将冷存数据进行预热。通过polal_osfs_prewarm函数将冷存表进行预热。访问时就可以达到比较好的效果。最后是提高读写性能。如果想临时提高对一张表的访问性能。可以临时把polal_smgr_canche值在控制台上调大。当想降回来时再把它调小。期间调大调小是不需要重启数据库非常方便。

图片9.png

接下来打开官网的文档,最佳实践里面涉及很多函数可以直接到官网的自研内核能力,底下的冷数据分层存储最佳实践。里面提供辅助操作的具体函数。比如统计冷数据有专门的函数来进行统计。

图片10.png

 

以上为分享全部内容。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2天前
|
Cloud Native 关系型数据库 分布式数据库
让PolarDB更了解您--PolarDB云原生数据库核心功能体验馆
让PolarDB更了解您——PolarDB云原生数据库核心功能体验馆,由阿里云数据库产品事业部负责人宋震分享。内容涵盖PolarDB技术布局、开源进展及体验馆三大部分。技术布局包括云计算加速数据库演进、数据处理需求带来的变革、软硬协同优化等;开源部分介绍了兼容MySQL和PostgreSQL的两款产品;体验馆则通过实际操作让用户直观感受Serverless、无感切换、SQL2Map等功能。
|
2月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
2月前
|
人工智能 关系型数据库 分布式数据库
拥抱Data+AI|“全球第一”雅迪如何实现智能营销?DMS+PolarDB注入数据新活力
针对雅迪“云销通App”的需求与痛点,本文将介绍阿里云瑶池数据库DMS+PolarDB for AI提供的一站式Data+AI解决方案,助力销售人员高效用数,全面提升销售管理效率。
|
3月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云瑶池在2024云栖大会上重磅发布由Data+AI驱动的多模数据管理平台DMS:OneMeta+OneOps,通过统一、开放、多模的元数据服务实现跨环境、跨引擎、跨实例的统一治理,可支持高达40+种数据源,实现自建、他云数据源的无缝对接,助力业务决策效率提升10倍。
|
4月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云数据库重磅升级!元数据服务OneMeta + OneOps统一管理多模态数据
|
4月前
|
关系型数据库 MySQL 分布式数据库
PolarDB开源社区动态:最新版本功能亮点与更新解读
【9月更文挑战第6天】随着云计算技术的发展,分布式数据库系统成为企业数据处理的核心。阿里云的云原生数据库PolarDB自开源以来备受关注,近日发布的最新版本在内核稳定性、性能、分布式CDC架构及基于时间点的恢复等方面均有显著提升,并新增了MySQL一键导入功能。本文将解读这些新特性并提供示例代码,帮助企业更好地利用PolarDB处理实时数据同步和离线分析任务,提升数据安全性。未来,PolarDB将继续创新,为企业提供更高效的数据处理服务。
278 4
|
3月前
|
关系型数据库 MySQL 分布式数据库
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶,邀请好友完成更有机会获得​小米Watch S3、小米体重称​等诸多好礼!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
|
1天前
|
关系型数据库 Serverless 分布式数据库
瑶池数据库微课堂 | PolarDB Serverless弹性&价格力观测
瑶池数据库微课堂介绍阿里云PolarDB Serverless的弹性与性价比优势。通过瑶池解决方案体验馆,用户可免费实操,直观感受Serverless的秒级弹性及超高性价比。内容涵盖Serverless概念、操作步骤、压测演示及性能曲线分析,展示PolarDB在不同负载下的自动扩展能力。适合希望了解云数据库弹性和成本效益的技术人员。
|
1天前
|
关系型数据库 OLAP 分布式数据库
瑶池数据库微课堂|PolarDB/RDS+ADB Zero-ETL:一种免费、易用、高效的数据同步方式
瑶池数据库微课堂介绍阿里云PolarDB/RDS与ADB的Zero-ETL功能,实现免费、易用、高效的数据同步。内容涵盖OLTP与OLAP的区别、传统ETL存在的问题及Zero-ETL的优势(零成本、高效同步),并演示了从RDS MySQL到AnalyticDB MySQL的具体操作步骤。未来将优化和迭代此功能,提供更好的用户体验。
|
6天前
|
关系型数据库 分布式数据库 数据库
1月17日|阿里云云谷园区,PolarDB V2.0技术沙龙,畅聊国产数据库
为了助力国产化项目顺利推进,阿里云邀请企业开发者和数据库负责人到云谷园区,与PolarDB V2.0技术专家面对面交流。扫描海报二维码报名,我们将根据信息为您申请入园。欢迎参与,共同探讨PolarDB的最新技术和应用!