利用DLA一键建仓功能一次性归档RDS/MySQL全量数据

简介: 利用现有的阿里云DLA一键建仓功能,对RDS/MySQL数据进行一次性全量数据归档。

背景

目前DLA的一键建仓可以非常方便的进行RDS数据归档任务,只需要简单配置一下,就可以每天同步
最新的归档数据到oss上,进而做一些DLA分析查询等。

但是最近有的用户提出,只需要归档一次,下次不再归档,或者下次归档的目录数据不覆盖之前的。
这样可以保留每次归档的数据snapshot镜像。这种场景在一些审计校对的业务中,确实会比较实用。
本文就针对这个场景,说明如何使用DLA的一键建仓任务,来做各个历史数据镜像的功能。整个过程主要
分以下几步:

  • 一键建仓schema的创建与运行
  • 创建oss schema,创建对应的外表映射
  • 删除原来的一键建仓schema

实战例子

下文演示例子:
某公司在阿里云RDS上,有一个finance库,这个库中各种表专门记录了公司内部所有财务收支记录。会计部门每个月初,需要对上个月的所有财务收支情况进行审计汇总。审计报告由高层管理人员审核。
简单的来讲,用户需要对RDS的数据做周期的一次性归档镜像快照,不互相覆盖,长期有效的存储着这个finance 库历史数据快照,并提供一下低频分析查询的功能操作。如:

  • 2月1号,备份finance库目录为 oss://test/finance/20200201/,子目录有table1、table2、table3....
  • 3月1号,备份finance库目录为 oss://test/finance/20200301/,子目录有table1、table2、table3....
  • 4月1号,备份finance库目录为 oss://test/finance/20200401/,子目录有table1、table2、table3....
  • 5月1号,......

创建一键建仓任务运行,并获取建表语句

创建一键建仓finance20200401任务,选择 20200401目录为schema数据根目录

20200403151926

立即运行finance20200401建仓任务,等待任务完成

20200403152003
20200403152055

schema管理列表,进入finance20200401 复制建表语句

20200403152626
20200403152739
如图,执行show create table users; 得到如下

CREATE EXTERNAL TABLE `finance20200401`.`users` (
    `id` string COMMENT '',
    `username` string COMMENT '',
    `cardnum` string COMMENT '',
    `gmt_create` timestamp COMMENT ''
)
COMMENT ''
STORED AS `PARQUET`
LOCATION  'oss://oss-tiansihz-for-xxxxx-test/20200401/6/users'
TBLPROPERTIES (
    'auto.create.location' = 'true'
)
AI 代码解读

这里注意,看到“users”数据目录这次放在了“oss://oss-tiansihz-for-xxxxx-test/20200401/6/”目录下,
于是我们需要创建一个oss schema映射到这个目录下,如下

创建oss schema

创建一个oss schema "20200401_snapshot",并映射到指定目录下

20200403152917
20200403153129
如图,核心确保这个schema映射到了“oss://oss-tiansihz-for-xxxxx-test/20200401/6/”目录下,创建执行即可

schema管理找到20200401_snapshot,点击“查询数据”进入sql控制台

20200403153319

20200401_snapshot在sql控制台把之前复制的users建表语句粘贴进来,并在location路径最后加上“/”结尾

20200403153630

执行之后,得到了对应的users表,就可以正常查询了。
20200403153710

删除一键建仓任务schema “finance20200401”

此时,就可以吧一键建仓的finance20200401删除了,我们后续要查询的归档数据就用20200401_snapshot 这个schema就可以了。
20200403155209
20200403155239

小结

这里本质上是利用“一键建仓”的schema “finance20200401”完成“一次归档”RDS数据到oss上,然后立即删除这个一键建仓任务schema,防止后续每天都调度。归档过来的数据,使用oss schema 创建的外表来查询即可。整个过程还是比较简单的,方案供参考。
当然为了一次建仓归档调度,还有别的方案。比如在DLA创建一个mysql表 usersA,再创建一个oss表usersB, 两个结构相同,然后DLA发起一个insert into B select from A sql就可以了。这里不展开,有需要的可以咨询“DLA答疑”客服。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
10379
分享
相关文章
MySQL底层概述—4.InnoDB数据文件
本文介绍了InnoDB表空间文件结构及其组成部分,包括表空间、段、区、页和行。表空间是最高逻辑层,包含多个段;段由若干个区组成,每个区包含64个连续的页,页用于存储多条行记录。文章还详细解析了Page结构,分为通用部分(文件头与文件尾)、数据记录部分和页目录部分。此外,文中探讨了行记录格式,包括四种行格式(Redundant、Compact、Dynamic和Compressed),重点介绍了Compact行记录格式及其溢出机制。最后,文章解释了不同行格式的特点及应用场景,帮助理解InnoDB存储引擎的工作原理。
MySQL底层概述—4.InnoDB数据文件
MySQL和SQLSugar百万条数据查询分页优化
在面对百万条数据的查询时,优化MySQL和SQLSugar的分页性能是非常重要的。通过合理使用索引、调整查询语句、使用缓存以及采用高效的分页策略,可以显著提高查询效率。本文介绍的技巧和方法,可以为开发人员在数据处理和查询优化中提供有效的指导,提升系统的性能和用户体验。掌握这些技巧后,您可以在处理海量数据时更加游刃有余。
43 9
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
19 2
MySQL进阶突击系列(09)数据磁盘存储模型 | 一行数据怎么存?
文中详细介绍了MySQL数据库中一行数据在磁盘上的存储机制,包括表空间、段、区、页和行的具体结构,以及如何设计和优化行数据存储以提高性能。
【YashanDB 知识库】MySQL 迁移至崖山 char 类型数据自动补空格问题
问题分类】功能使用 【关键字】char,char(1) 【问题描述】MySQL 迁移至崖山环境,字段类型源端和目标端都为 char(2),但应用存储的数据为'0'、'1',此时崖山查询该表字段时会自动补充空格 【问题原因分析】mysql 有 sql_mode 控制,检查是否启用了 PAD_CHAR_TO_FULL_LENGTH SQL 模式。如果启用了这个模式,MySQL 才会保留 CHAR 类型字段的尾随空格,默认没有启动。 #查看sql_mode mysql> SHOW VARIABLES LIKE 'sql_mode'; 【解决/规避方法】与应用确认存储的数据,正确定义数据
ADBPG(AnalyticDB for PostgreSQL)是阿里云提供的一种云原生的大数据分析型数据库
ADBPG(AnalyticDB for PostgreSQL)是阿里云提供的一种云原生的大数据分析型数据库
1404 1
玩转阿里云RDS PostgreSQL数据库通过pg_jieba插件进行分词
在当今社交媒体的时代,人们通过各种平台分享自己的生活、观点和情感。然而,对于平台管理员和品牌经营者来说,了解用户的情感和意见变得至关重要。为了帮助他们更好地了解用户的情感倾向,我们可以使用PostgreSQL中的pg_jieba插件对这些发帖进行分词和情感分析,来构建一个社交媒体情感分析系统,系统将根据用户的发帖内容,自动判断其情感倾向是积极、消极还是中性,并将结果存储在数据库中。
玩转阿里云RDS PostgreSQL数据库通过pg_jieba插件进行分词
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等