邢台营销型网站建设,成都海鸥手表网站,重庆网站制作哪家好,龙华附近网站建设公司1.任务编排介绍
数据库是企业IT系统里的重要基础设施#xff0c;里面存储了大量有价值的数据资产#xff0c;如#xff1a;交易数据、客户数据、订单数据#xff0c;等等。其实#xff0c;数据库在企业里一直扮演着一个数据生产者#xff08;Producer#xff09;的角色…
1.任务编排介绍
数据库是企业IT系统里的重要基础设施里面存储了大量有价值的数据资产如交易数据、客户数据、订单数据等等。其实数据库在企业里一直扮演着一个数据生产者Producer的角色日积月累这些数据会形成一个巨大的宝藏。但是随着数据库中数据量的增长和数据形态的多样化如何对数据进行存储、迁移和加工并挖掘出其中的价值是许多企业面临的难题。
为解决上述问题阿里云DMSData Management Service产品近期推出了一个新功能——任务编排。无论您的数据库部署在何处阿里云/本地IDC/其他云厂商等是何种类型OLTP交易型数据库/OLAP分析型数据库DMS任务编排都能够触达您的数据库让您轻松地对数据库中的数据进行流转、加工和变换。DMS任务编排提供的主要功能和特性包括
丰富的数据迁移能力可实现数据库与数据库之间如OLTP在线库与OLAP离线库、数据库与弹性存储之间如MySQL与OSS的数据自由流动丰富的数据加工手段单库SQL任务、跨库SQL任务、数据迁移任务、Spark任务、数据备份与恢复服务建设中不仅可以通过SQL语句对单个数据库或多个数据库里的数据进行加工还可编写Spark任务进行复杂的数据处理和AI分析任务流和定时调度通过可视化的方式将多个任务节点进行编排形成任务流灵活按需设置多种不同粒度间隔的定时调度按模板一键创建任务流为不同的场景如历史数据归档到OSS内置了任务流模板用户可一键生成模板任务流通过简单的配置即可应用于生产牢靠的数据安全保障依托DMS强大的数据安全能力任务编排会对用户权限进行严格检查仅限有权限的用户才能执行相应的任务。
了解了DMS任务编排的功能你一定开始好奇用DMS任务编排能做什么下图展示了DMS任务编排支持的四类主要场景
场景1数据归档
目前比较流行的有两类数据库传统单机版数据库如MySQL和云原生数据库如阿里云PolarDB和AnalyticDB for MySQL。前者的存储空间是有限的后者虽然可以对存储扩容但也要收取较高的费用。那么当数据库中的数据量持续增长时该如何降低存储成本呢许多用户希望能将数据库中的冷数据/历史数据转储到可靠又低价的存储上如阿里云对象存储OSS。现在通过DMS任务编排可轻松实现数据库数据周期归档如每日/每周到OSS的需求。同时DMS还有好地对接了阿里云数据湖分析产品DLA用户可在DMS里方便地访问DLA对归档到OSS上的数据进行即席查询和分析。
场景2数据集成
企业的数据可能分散在不同的数据源中如MySQL、SQL Server也可能分散在不同的地域例如北京、杭州、深圳。导致数据分散的原因有很多比如业务的垂直划分、微服务、应用的本地部署等等。数据的分散不可避免但同时许多企业又有数据集成的需求需要将各地的数据汇聚到一起进行全局分析如汇总和AI分析典型的场景就是OLTP交易库的数据同步至OLAP分析库做离线分析。通过DMS任务编排可以轻松实现这一需求。首先DMS打通了各种网络环境如阿里云VPC/经典网络本地IDC网络可连接至各个地域的数据源。其次DMS支持异构数据源间的数据集成如RDS MySQL到AnalyticDB。此外通过DMS任务编排还能满足各种集成方式的需求如单次全量集成、周期性增量集成。
场景3数据加工
做完数据集成之后用户通常还要对汇聚的原始数据进行加工、清洗和分析才能挖掘出其中的价值例如每日统计产品的用户数UV按周产生报表数据。DMS任务编排提供了任务流和定时调度能力通过任务流可以将复杂加工任务进行拆解和编排然后配置调度信息。DMS支持单次调度和周期调度如按日、周、月此外还支持多类型的加工任务用户可使用SQL进行数据加工也可编写Spark程序进行复杂的数据处理和AI分析。通过丰富的调度配置和任务类型DMS任务编排能满足各种简单/复杂场景的数据加工需求。
场景4定时操作
在日常数据库的使用中有许多DML/DDL/DCL操作需要定期执行如每周清理历史数据DELETE防止表过大、每日更新统计信息ANALYZE TABLE以获得更好的查询优化结果。有些数据库在内核层面已经提供了事件调度功能如MySQL Event但是使用特殊的语法创建Event和维护Event都有一定的成本。DMS任务编排的调度功能提供了可视化的方式轻松创建定时任务并且不依赖数据库引擎上的能力因此更加简易灵活适用范围更广。
2.任务编排实操 — DB数据周期归档
介绍完DMS任务编排的功能和使用场景下面将以数据归档场景为例介绍如何通过DMS任务编排和阿里云DLA服务将RDS MySQL数据周期地归档至OSS上。具体的实操步骤还可查阅DMS的使用文档。
2.1 背景和需求
用户的RDS MySQL业务库中某张表如交易记录、登录/操作日志的数据持续增长占用了大量的存储空间甚至影响到了数据库性能。同时这部分数据又是有价值的比如用于审计、报表和统计分析不能随意删除。为解决这个问题用户有三个核心的需求
• 降低MySQL业务库的存储压力;
• 对历史业务数据做增量归档
• 对归档数据做分区可按分区过滤进行高效查询。
为满足这三个需求我们选择了阿里云DLA服务因为其同时打通了OSS和RDS MySQL能够对上面的数据进行迁移和即席分析。但是DLA并不具备周期调度和增量数据迁移的能力DMS任务编排正好可以与DLA互补形成完整的解决方案满足用户需求。
在下面的实操中我们假设用户RDS MySQL中待归档的表为订单表orders其表结构如下created_date字段为订单创建日期
create table orders(order_id bigint,product_name varchar(32),price double,total_amount double,created_date date
);
2.2前置条件
1、已购买阿里云DLA服务且DLA服务的区域Region和待归档的RDS MySQL区域一致如都是华东1杭州
2、已开通阿里云OSS服务且服务的区域与DLA、RDS MySQL一致
3、已购买阿里云DMS服务
4、DLA实例已录入DMS中请参考DMS实例录入 各产品的购买要求和用途
产品购买产品的区域用途DMS无限制周期调度DLA与RDS MySQL同区域RDS MySQL数据迁移至OSS查询OSS上的归档数据OSS与RDS MySQL同区域存储RDS MySQL归档的数据
2.3 配置任务流
下面介绍如何在DMS中操作实现RDS MySQL数据周期归档主要包含5个步骤
步骤1创建DLA归档库
若要将数据归档至DLA上首先要在DLA中创建一个用于归档的schema用于存放归档表。在DMS首页的顶部菜单中找到SQLConsole单库查询并打开查询窗口然后输入如下SQL语句并执行
CREATE DATABASE demo_schema
WITH DBPROPERTIES (catalog oss,location oss://xxxxxx/dla_demo/
)
步骤2创建任务流
在DMS首页的顶部菜单中选择数据工厂 - 任务编排进入任务编排的首页。在首页点击“新建任务流”或者点击左侧tab进入开发空间也可以快速地找到新建任务流的入口。在新建任务流的窗口我们将任务流名称设为rds_data_to_oss。
步骤3配置任务节点
在任务流rds_data_to_oss中依次新建三个DLA-SQL类型的任务节点
创建RDS同步Schema在DLA中创建Scheme映射到RDS创建OSS备份表在DLA中建立OSS备份表用于存储历史数据备份数据实现RDS MySQL前一天数据的备份。
节点创建完以后可在节点间添加连线对节点的执行顺序进行编排产生完整任务流。 下面对每个节点的内容进行设置
节点1创建RDS同步Schema
要让DLA顺利访问RDS MySQL的数据需要在DLA中为RDS MySQL创建一个Schema取名: dla_mysql_rds。我们将以SQL的方式来创建Schema。首先点击第一个任务节点在右侧的内容设置Tab页中输入如下SQL语句其中部分参数需替换为RDS上的真实信息
CREATE SCHEMA IF NOT EXISTS dla_mysql_rds WITH DBPROPERTIES (CATALOG mysql, LOCATION jdbc:mysql://xxxxxx.rds.aliyuncs.com:3306/dmstest,USER dmstest,PASSWORD xxxxxxxxx,INSTANCE_ID xxxxxx);MSCK REPAIR DATABASE dla_mysql_rds;
此外为了让DLA顺利访问RDS MySQL还需要在RDS MySQL中添加DLA的白名单即将IP地址段100.104.0.0/16加入到RDS的白名单列表中。RDS白名单的配置方法可参考这个文档。
节点2创建OSS备份表
我们需要在DLA中创建OSS备份表oss_orders首先将节点的目标数据库设为demo_schema然后将节点内容设置为如下的SQL语句。oss_orders表的结构与RDS中的orders表完全一致不同的是oss_orders为分区表按照年/月/日y/m/d分区
CREATE EXTERNAL TABLE oss_orders (order_id bigint,product_name varchar(32),price double,total_amount double,created_date date)
PARTITIONED BY (y string, m string, d string)
STORED AS TEXTFILE
LOCATION oss://xxxxxx/dla_demo/;
其中LOCATION参数需要填写一个OSS路径即归档数据储存的OSS地址。
节点3数据备份
该数据备份实现了将RDS MySQL数据备份至OSS的功能。配置节点需要选择目标数据库为DLA的demo_schema设置时间变量并且编写备份SQL语句。
配置三个时间变量它们分别是 • year当前日期前一天的年份格式为yyyy • month当前日期前一天的月份格式为MM • day当前日期前一天的日格式为dd
注关于DMS任务编排中变量的配置和使用请参阅该文档。bizdate为DMS任务编排里的系统参数对应到任务运行时间的前一天其他自定义变量也会随着任务执行时间的变化而自动更新。设置数据备份SQL语句
/* 创建临时表 */
CREATE EXTERNAL TABLE oss_orders_tmp (order_id bigint,product_name varchar(32),price double,total_amount double,created_date date)
STORED AS TEXTFILE
LOCATION oss://xxxxxx/dla_demo/y${year}/m${month}/d${day}
TBLPROPERTIES(auto.create.location true);/* 备份日数据 */
insert into oss_orders_tmp
SELECT * FROM dla_mysql_rds.orders
where created_date ${bizdate};/* 更新备份表分区信息以及删除临时表 */
msck repair table oss_orders;
drop table oss_orders_tmp;
上面的SQL脚本本质上包括3个步骤来实现数据备份
DLA OSS中创建临时表临时表oss_orders_tmp映射位置为oss_orders所在OSS之下的年/月/日目录中临时表的数据会自动成为oss_orders一个分区备份日数据直接使用insert-select SQL语句从RDS MySQL中的orders表中读取数据对应到DLA中的dla_mysql_rds.orders写入OSS中的临时表更新分区信息以及删除临时表更新oss_orders元数据信息然后删除临时表oss_orders_tmp。
这里的巧妙之处在于合理地利用了DMS任务编排里变量的功能以及DLA OSS表的分区功能。临时表对应的OSS路径正好是全局备份表的一个分区路径。随着任务每日执行变量的值会自动更新由此产生新的OSS目录和分区RDS MySQL的增量数据也自动地归档至新分区下。例如RDS中created_date为2020-06-01的数据将归档至oss://xxxxxx/dla_demo/y2020/m06/d01的路径下。
2.4 配置任务流调度
最后再介绍一下如何对任务流的调度进行配置。点击任务流空白处调出右侧的调度配置页面。首先将该任务流的调度进行开启然后将运行时间设为RDS MySQL的业务低峰期如凌晨5点并将调度周期设为“日”。这样设置以后该任务流将在每天的5点钟定期执行无需人工干预。如果要查看任务流的执行历史可点击左侧的运维中心其中还会展示每一次执行的时间和日志。
3 快速任务流构建 — 任务流模板
为了节省用户手动创建和配置任务流的时间DMS任务编排还提供了多种模板。这些模板通常包含了内置好的任务节点和SQL内容它们从具体的场景出发经过悉心的设计来解决实际问题并且来源于DMS用户的真实案例例如第二节介绍的RDS数据周期归档OSS场景就来自于某知名跨国汽车厂商。
通过模板用户可一键创建任务流然后经过简单的配置如设置节点的目标数据库和SQL中的部分参数即可生成可运行的任务流。目前我们已经上线了多个任务流模板欢迎访问DMS任务编排的首页进行查看我们也将持续补充模板让任务编排的使用更加便捷。
4 总结
DMS是阿里云用户非常喜爱的一款数据库工具产品能帮助用户打通各种网络环境对数据库进行管理和操作。除了常规的数据库增删改查和DDL操作越来越多的用户需要对数据库中的数据进行归档、迁移、备份和加工。为了满足这些需求DMS推出了任务编排功能它打通了数据库与其他系统/存储之间的通道让数据库不再成为数据孤岛。此外DMS任务编排还提供了丰富的任务类型以及任务流和定时调度能力可以帮助用户轻松地对数据库中的数据进行清洗加工把数据转变成商业智能。
DMS任务编排虽然在公共云上发布不久但已经积累了来自各个行业的众多用户包括互联网、零售、支付、交通、汽车、美妆等等。如果您想了解更多DMS任务编排的详细功能欢迎登录DMS的控制台首页进行体验或者查看我们的产品文档。也欢迎您扫码加入DMS的钉钉用户服务群进行交流和咨询。 原文链接 本文为云栖社区原创内容未经允许不得转载。