mysql test 映射到实体_利用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数据根目录

93fad27b8645841c176163a5edb915e6.png

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

aeae37c8cfd26bd58266b5eccd2cbdc4.png

a3324cae8f2417621e88f2a5617481a3.png

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

7b01ce1a9314aa87645bbd89afa3fef2.png

4c3c38f38ad19b9364e0ffc2f21eb86b.png

如图,执行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'
)

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

创建oss schema

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

e6d7dfa995a9782988afac4a22b6d1c1.png

80f1139177a9a9c436ac072fea14b125.png

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

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

b668b87b797f02c7a9454bd4f455fb82.png

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

632acea440eb0a99f0ccb6b4900fdca5.png

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

08ee15e0b68d5f6a360ef09f2ccb9aea.png

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

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

837f8befd1135d630375a942038f0464.png

cb30b81fc2c12d64ec3369c3188124d4.png

小结

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

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值