开发者学堂课程【PolarDB-X开源分布式数据库进阶课程 :PolarDB-X 冷热数据归档(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1202/detail/18331
PolarDB-X 冷热数据归档
内容介绍:
一、PolarDB-X 简介
二、课程介绍
三、背景介绍
四、演示内容
五、演示
一、PolarDB-X 简介
首先这个是 PolarDB-X 整体的一个架构。
二、课程介绍
这是之前我们做开源训练营的一个前景回顾
这页 PPT 是我们这个新版本所提供的一些特景。
还有我们相关的一些课程资源
三.背景介绍
我们这次主要介绍的是冷热数据的归纳,主要是围绕云栖实验室做一些介绍,如果想了解细节的内容可以观看群里面,八月份有一次直播会讲一些更加技术的东西。
数据时效性:随着时间推移,业务数据的热度会有明显的降低
存储成本:一般而言,为了支持高速存取,数据库的存储成本相对于 OSS 等冷存储是比较高的
归档问题:通过 delete 语句删除大规模数据,会造成锁表、产生大量 binlog、磁盘空洞等问题,是一个较危险的操作
冷数据查询:冷数据的分析处理能带来很多商业上的 insight,帮助用户作出决定
言归正传,冷热数据归纳其实是处理一些冷热分离的场景,在有些业务里面他的数据随着时间的推移热度会明显的降低,被查询的概率会小很多,但是 zhe ye 数据也是要存在数据库里的,数据库为了支持高速存取,一般会用固定硬盘它的存储成本是很高的,但是这些数据被查询的概率又很低有一些用户就会做定期的归档他们通常会使用delete语句来删除了,已经过期的数据 Delete 会造成锁表通常结束还需要来处理磁盘的空洞这个过程危险,而且漫长通常要凌晨爬起来处理这个归档的问题,用 delete 语句把数据删除之后这些冷数据,数据库就无法访问了。如果你想继续访问还得把它从存储的地方导入数据库,然后进行查询。这些冷数据其实会有一些商业上的作用,他的分析处理会帮用户做出更好的角色。
·存储引擎
·CN直接读取冷数据表进行查询
·多种数据源
·多级裁剪,较强的 TP 能力
·不支持直接删改,只通过 ddl 修改数据
·列存结构,比 InnoDB 更强的 AP 能力
·底层基于 ORC 文件格式,完全兼容 MySQL 的类型系统
·任意时间点备份恢复
基于这样的痛点问题我们提供了一种冷数据表,要明确的是冷数据表,其实是和 InnoDB 并列的存储引擎。这一页PPT 大家要注意,如果考试的话题目题目都在这一页上。冷数据是可以实施多种数据源的,比如说我们在云上是用的oss,我们在实验室中开源的云起实验室中用的是 CN 的本地磁盘。如果在来源的批查地里面数据库还可以接 nfs,这个能力我们也来源出去了,包括也可以使用 s3 他并不限制使用哪种数据源,因为是冷数据,所以我们第3点不支持直接增删改他只能通过DDL修改数据,此外,我们数据表低层使用的 ORC 文件格式, 他是不能完全兼容 MySQI 的类型系统,因此我们对这个文件进行了模改,让他能够完全兼容 MySQI 的类型系统,当然这样的话那些开源的 orc 就无法访问了,我们生成了冷数据的 ORC 文件。
第四点我们的冷数据表是 cn 直接进行读取查询然后解析出来不会再介入 DN,所以它的性能是有保证的,为了能够有较强的 TP 能力,我们做了多层的裁剪,在实验中会显示 TP 能力,因为我们是基于 orc 的列存结构所以说他天然比 InnoDB 有更强的 AP 能力。最后一点作为一个数据库,他一定会有备份恢复的能力支持任意时间点的恢复。
在实验中我们会用到 Loading 模式和 TTI 模式的冷数据归档表,这两张都是在云起实验室中用到的,我们来解析一下,create table sbtest1……这一条会把这张表全量的复制,到当前库的 sbtest1,全量的复制到了一个冷数据表里,没有增量的能力,更方便我们对冷数据引擎直接测试性能,在云起实验中 TP 测试都是用的这种模式,实际上不是生产会用的模式,主要是用来测试的另外一种 TTL 模式,这张表要求 t_
必须是 TTL 的表,因为它有自动的冷数据过期能力,介入这样的表就会把过期的数据自动归档到 t_order_oss 中,这种表也称为归档表,它的性能可以用 sbtest1 验证,它TTL模式的表比 Loading 模式多了一个归档的增量这个过程是自动。