5.DataWorks 批量生成同步任务|学习笔记

简介: 快速学习5.DataWorks 批量生成同步任务

开发者学堂课程【DataWorks一站式大数据开发治理平台精品课程:5.DataWorks 批量生成同步任务】与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/81/detail/1242


5.DataWorks 批量生成同步任务


内容介绍

一、添加数据源

二、整库迁移

三、批量上云

四、分库分表,多库多表

内容简介:

1、整库迁移、批量上云、分库分表,三个主题适用场景是批量生成同步任务,假设数据库内有100张表,原本可能需要配置100次数据同步任务,但通过整库迁移或批量上云可以一次性完成了。

2、整库迁移:支持 MySQL、PostgreSQL、SQL ServerDRDSPolarDB、 AnalyticDB for PostgreSQL、HybridDB for MySQLAnalyticDB for MySQL 3.0、Oracle和DM数据源

3、批量上云:目前仅支持MySQL、SQLserver、Oracle数据源。

一、添加数据源

1、新增数据源

2、批量新增数据源

3、克隆数据源

(1)到数据集成界面,数据数据源界面,可以选择添加单个的数据源,也可以批量添加数据源,选择添加单个的数据源,选择 mysql 数据库,选择的是阿里云实例模式,workshop 里面有一个对用户开放的数据源,可以选择数据源,这边已经将数据源添加好,可以看添加好的界面,lzz_domo 是开始添加好的数据源,这边建议开发环境和生产环境都要添加数据源,否则看不到整库迁移的路口。

image.png(2)将信息添加完之后,直接点击测试连通性,测试连通性通过之后,在配置整库迁移和批量上云,才能选择到相应的数据源。


二、整库迁移

1、高级配置:支持表名、列名称、列类型的映射转换。

  1. 注意:

整库迁移会自动创建 MaxCompute 表,分区字段为pt ,类型为字符串 String ,格式为yyyymmdd

(1)做一个相应的 demo,在添加的数据源后面可以看到整库迁移的路口,一般它是在开发环境后面,将 mysql 数据同步到odps _first,下面是添加数据源相应的表,它只是展示其中一部分。

(2)这里有一个高级配置按钮,高级配置按钮一般都是表明转换规则,字段名和字段类型,高级配置相对于批量上云比较简单,批量上云内部的类型比较多,比整库迁移多,配置的转换规则,可以根据的业务的需求对表进行规则转换。像这个例子一般就是在后面加标记,或者将字段类型转换成为其它的字段类型,支持的类型,可以在界面查看。

image.png

(3)创建生产表,如果勾选了,提交任务时它会同时创建生产环境的odps _first的表,选择同步方式,每日增量分为每日增量和每日全量,重跑属性默认是运行成功或者失败皆可重跑。增量配置模式有两种,根据增量字段自动生成。显示指定的增量抽取条件,根据增量字段自动生成。

image.png

(4)可以在数据字段这里选择的数据库里代表时间的字段,比如输入 time,表里的时间列,在后面可以查看抽取的var条件,后台会自动转化成一个对时间过滤的sql,这都是 where 条件,where 后面的那那一部分sql,这里的sql就是过滤每日增量的数据sql语句,在提交任务之后,可以在数据开发的数据集成任务里面看到过滤条件,就会转换成这样的SQL。

image.png

(5)同步并发配置,这边建议用分批上传的逻辑,分批上传的好处是避免对数据库的负载过大影响正常的业务能力,可以按照时间间隔把表拆分为几批运行,如果有主、备库,建议同步任务全部同步备库数据。

并发数设置,每张表都会有1个数据库连接,上限速度为1MB/s,如果同时运行100张表的同步任务,就会有100个数据库进行连接。

注意:选择的表数,和分批上传的表不要超过24小时。

如果每小时同步一张表,分批上传,就在0点,它会有一张表就在整库迁移这里对应一个数据集成任务。如果上面选的是25张表,这里选的是一小时同步一张表,那就超过了一天的时间,这可能就会出错,建议不要超过一天的时间。对应的后台调度是怎么样的?如果分批上传一个小时同步三张表,它的定时时间是0点,是以0点开始的,0点时间一到,它就会有三个同步任务同时运行,在1点也有三个任务同时运行。

(6)资源组对应的是数据集成资源组,如果添加了独享数据集成资源组,这里也可以做相应的选择。增量配置模式里面的显示指定的增量抽取条件,可以用ID大于0或者大于1这样设置sql,sql语句不要填where的关键字,选择where后面的。批量上传就是上面选的所有的表创建的同步任务,它都会在零点到30分,它的定时时间会设置在0点和0.3随机生成,如果选择的表比较多,那么运行的同步任务就会比较多,可能会出现等待资源的情况,这边建议用分批上传。

(7)每日全量,顾名思义就是每天跑全部的数据,对应相应的时间段来写过滤条件,最好是用创建时间和修改时间,选择一个表,提交成功后,出错了,因为这里输入的time没有,可以选择自己有的。

3、提交任务后:可以在数据开---业务流程一找到整库迁移的业务流程,命名格式( clone_ database>数据源名称>odps_ first )节点名称(数据源名_ to_ odps_ first_源端表名)

三、批量上云

表名转关规则也支持正则转换:比如(.+ )匹配所有表头,以ods_$1表示给表头加上前缀ods_。

1、新建一个批量上云的任务。在数据源添加成功了之后,就可以自动扫描到添加成功的数据源,添加的是要接接lzzdemo的mysql数据源,同步的目标端是odps测试的数据源,默认的数据源是PT, PT分区的命名规则一般是pt,后面查数据库,odps表都会用pt去查,这里用pt可能会报找不到分区。

2、表明转换规则,跟整库迁移差不多,表名转换规则,比如一个正则表达式的,在表名前面都加一个ods的前缀,字段名转换规则,pv_test。字段类型的转换规则,将in型转换为string。新增字段规则,新增一个hello字段,它的类型是string类型。再加一个目标表赋值,hello赋值你好。数据过滤规则,数据过滤规则,这里有一个例子就是修改事件大于biztate,可以根据自己的业务时间填写sql,在开发的数据过滤里面可以看到数字,写pv,因为没有时间段,所以就写一个字段,目标表名转换规则,这里有一个查看内容变量。可以使用的内置变量有:

${db. .type, ,src};来源类型

${db. type, dest}:去向类型

${db. .name, .src}:来源数据源名称

${db. .name, .dest}:去向数据源名称

${db, .table, ,name, ,src}: 来源表名称

${db. .table, .name, .src. _transed}:来源表名转换后名称,如果没有“表名转换规则",此值等于${db. .table, .name, .src}

配置的来源类型,就是从 mysql 到odps,它的来源类型就叫mysql,也有可能就别人就用 oracle,它的来源类型就是 oracle,可以在这里加一个来源类型,也可以加去向类型,数据源名称加的是 lzzdemo,如果加了这个,后面的的目标表名就会有lzzdemo。最后一个是来源表名转换后名称如果没有加表名转换规则,它默认的就是来源表名,加了之后,它就会有以ods为前缀的,再加一个去向。也可以转化为脚本,但是它是不可逆的,就不转换了。执行规则,起名字,命名为 lzz _test0007,一共有15个表。

image.png

3、选择一个表,自动提交,这个没有整库迁移那么复杂。前置ods_user_action_mysqllzz_demo,来源,数据源名,上面创建的。

image.png

4、执行成功了就可以到数据开发区,一个是数据源名,一个是数据源类型,一个是上面转换规则表名,这样的一个效果也达到了。提交,后数据开发里面就能找到相应的任务。需要注意分区名字的问题。还有odps的数据类型,1.0和2.0,可能在这里有些mysql数分库分表就是在界面,可以选择多个表和多个数据源,像这张图里面添加数据源,可以直接添加,也可以选择若干个表若干个数据源。

image.png

五、常见问题

1、Odps的数据类型问题:

Odps数据类型有1.0的数据类型: https://help.aliyun.com/document _detail/159542.html

2.0数据类型: https://help.aliyun.com/document _detail/1 59541.html关于数据类型这块,有些1.0的数据类型会报类型不匹配,建议直接到数据集成界面配置。

2、以前建表很多用户用dt最为分区名称但是整库迁移、批量上云默认是以pt作为分区名称,所以可能有部分用户会将分区名称搞错。数据类型不匹配,解决方法是直接到数据开发界面配置,不要用整库迁移或者批量上云的入口。据,它是1.0的,可能不支持,汇报数据类型有问题。

5、在这里可以看到创建批量上云的任务,可以查看相应的日志。表名转关规则也支持正则转换:比如(. + )匹配所有表头,以ods_ $1表示给表头加上前缀ods_。

image.png

6、配置完之后,可以查看效果,ddl语句,hello,odps加了一个前缀。同步配置也可以看到。


四、分库分表,多库多表

配置分库分表任务前提条件:

1、源端的表结构要相同。表列都要相同,因为在字段映射,它只会拉取第一张表的列名数据类型,后面如果跟它不一样,它一定会报错。

2、不同的数据库密码要相同。就是密码要完全相同,否则它就会出现连接不上的问题。

3、多个库要添加多个数据源。

相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
相关文章
|
11月前
|
DataWorks
DataWorks任务如何现在执行最长时间?
设置任务执行最长时间
253 28
|
9月前
|
DataWorks 关系型数据库 Serverless
DataWorks数据集成同步至Hologres能力介绍
本文由DataWorks PD王喆分享,介绍DataWorks数据集成同步至Hologres的能力。DataWorks提供低成本、高效率的全场景数据同步方案,支持离线与实时同步。通过Serverless资源组,实现灵活付费与动态扩缩容,提升隔离性和安全性。文章还详细演示了MySQL和ClickHouse整库同步至Hologres的过程。
|
11月前
|
DataWorks 关系型数据库 Serverless
DataWorks数据集成同步至Hologres能力介绍
本次分享的主题是DataWorks数据集成同步至Hologres能力,由计算平台的产品经理喆别(王喆)分享。介绍DataWorks将数据集成并同步到Hologres的能力。DataWorks数据集成是一款低成本、高效率、全场景覆盖的产品。当我们面向数据库级别,向Hologres进行同步时,能够实现简单且快速的同步设置。目前仅需配置一个任务,就能迅速地将一个数据库实例内的所有库表一并传输到Hologres中。
272 12
|
11月前
|
SQL 分布式计算 DataWorks
如何让DataWorks调度依赖一个非DataWorks的任务结点,如数据上传任务?
如何让DataWorks调度依赖一个非DataWorks的任务结点,如数据上传任务?创建一个表的空分区,然后通过DataWorks去检查这个分区。
215 7
|
SQL 机器学习/深度学习 分布式计算
dataworks节点任务
在DataWorks中,你可以通过拖拽节点以及连线来构建复杂的工作流,这样可以方便地管理多个任务之间的依赖关系。此外,DataWorks还提供了调度功能,使得这些任务可以在设定的时间自动执行。这对于构建自动化、定时的数据处理管道非常有用。
308 5
|
DataWorks 安全 定位技术
DataWorks产品使用合集之怎么指定任务的执行时间
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
分布式计算 运维 DataWorks
DataWorks产品使用合集之如何实现任务的批量导入和导出
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
SQL DataWorks 安全
DataWorks产品使用合集之怎么跨项目移动sql任务
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
11月前
|
DataWorks 监控 数据建模
DataWorks产品体验评测
DataWorks产品体验评测
|
11月前
|
分布式计算 DataWorks 搜索推荐
DataWorks 产品评测与最佳实践探索!
DataWorks 是阿里巴巴推出的一站式智能大数据开发治理平台,内置15年实践经验,集成多种大数据与AI服务。本文通过实际使用角度,探讨其优势、潜力及改进建议。评测涵盖用户画像分析、数据治理、功能表现等方面,适合数字化转型企业参考。
277 1