开发者学堂课程【PolarDB-X开源分布式数据库进阶课程 :PolarDB-X 冷热数据归档(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1202/detail/18331
PolarDB-X 冷热数据归档
四、演示内容
首先点击创建资源,创建成功回到试验手册,首先第一步切换,第二步启动 docer 回车,切入到空白账号进入目录。
创建成功后查看信息,然后执行第六步安装,开始部署集群,星星四分钟的等待集群的创建成功然后就可以退出查看。
现在开始连接集群和数据源查看端口或者 dbs 集群地址,第三步查看密码,第四步连接数据库,连接成功。第五步创建冷数据源,查看冷数据源是否创建成功。安装,新开一个终端验证是否安装成功。
成功后找到对应的弹性 ip,并使用端口进行连接。安装成功后连接数据库。主机ip地址使用刚才连接串中的ip。主机端口、用户名、密码如图。
建库模式设置提交,接下来第六步进行冷数据的测试。导入配置然后四张表的大小设置成10万并发设置成1。导入成功回到命令行,创建冷数据表并进行数据归档。
回车,归档表全部生成好,点击切换库,全部切回 coad 发现有四张表全部都是十万行。现在都是冷数据表。第六步对冷数据进行压制,按照配置四张表,单表大小为十万并发数设置为4,进行一分钟负载类型设置为 readlonly,提交。
开始压测,qbs400到500之间,延迟大概在200毫秒,这是最后的一个统计结果。
可以看到冷数据压测的结果 qbs 有500,第七步验证 AP 查询能力,首先对冷热数据进行验证查询,收集。先收集热数据,再切换到冷数据库进行收集。这样一个 AP 查询的执行计划。查出来的语法可以看到是对的两张冷数据查询和扫描表的操作。接下来进行冷热数据关联查询,看一下执行计划主要的不同点在于2这张表是热数据表,执行后得到完全一样的结果。
最后演示一下TTL的自动归档,首先创建一张 TTL orger 的表,它的语意是从六月一号开始每隔一个月建一张表,两个月后过期,我们会预先分配五个月,建表然后往里面倒数据,一共是1408行数据,查看一下这张表的时间,从现在的时间来看,应该会有这些表需要过期,在运维窗口。第四步进行数据的绑定,T_order 这张表会往它逐渐过期,它的意思是我们按照月份排序,统计出来五六七月各有120条,如果想过期,预期会把这个部分数据过期到 oss 中,手动过期发现五月份的已经不在原表。接下来使用手动触发的方式模拟冷数据自动过期,首先修改运维窗口,自动过期都是用定时任务的形式来决定,先看 T_order 表的自动过期任务,默认一点钟开始,它的 id 是后面要用到的,可以手动触发过期。可以看到是过期的九月八月七月一号的数据,之前六月七月八月都被过期都 T_order,他现在最老的表是11.1号到12.1号过期。
五、演示
刚才的演示主要是三个部分,第一个是归档表的 TP 查询能力。
此外它有 AP 查询的能力,这张图是 TB100的测试结果,是比 innoDB 的测试结果性能还要更好,由于实验室配置有限,我们并没有真正跑 TBche 的实验,自己有兴趣可以去直接导入。
第三个部分是演示的 TTL 冷热分离的能力,会自动把过期数据迁移到os
我们简单介绍一下原理,数据的迁移流程大概是第一步从 DN 抽取过期的数据,第二步将过期的数据传到 CN 节点并往 CN 的本地磁盘写入 orc 文件,第三步将写好的文件从本地磁盘装载到 CN 中,然后上传给 OSS,第五步用 CN 上的数据和 Oss 做校验,这样就是一个完整迁移流程,是有原则性保证,任何一步出错,比如说第五步发现校验校验不一致它会整个回滚,保证不会残留。
另外这一步的校验,可以保证数据的一致性,第三这个迁移过程中不管是 CN 还是 DN 当机都不会做到断点续传。第四由于迁徙过程有比较强的性能要求,对 DN 和 CN 的压力比较大,所以这个过程会在第二步构建的时候进行限速。第五步这个迁移过程可以做到多个并行,可以进行加速。主要演示了 DN 往 oss 迁移的过程,实际上冷数据也可以往osdb 做迁移,如果想有更强的写入能力。
多级裁剪
·列裁剪
·分区裁剪
·统计信息裁剪 MinMax、Bloom Filter
刚才的 TP 查询能够做到比较高的 qbs,主要是有一些这样的裁剪能力,比如说你要访问只需要从 oss 拉取一个列裁剪。另外在 CN 上做了分辨后只需要一个裁剪,不需要所有的 orc 文件。第三 orc 文件本来是有 MinMax、Bloom Filter 这样的信息,直接进行裁剪。