4.DataWorks 数据开发介绍及实践(二)|学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
全局流量管理 GTM,标准版 1个月
简介: 快速学习4.DataWorks 数据开发介绍及实践

开发者学堂课程【DataWorks一站式大数据开发治理平台精品课程:4.DataWorks 数据开发介绍及实践】与课程紧密联系,让用户快速学习知识

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


4.DataWorks 数据开发介绍及实践(二)

三、企业场景最佳实践

在进行实操之前分享两个最佳实践,便于理解整个 DataWorks 的开发理念。

1、场景一:分权管理与协同开发 阿里云主账号就是整个企业的it姓名身家,一般主账号会掌握在CEO或者CTO手里,那么其他人要怎么样才能合理的去登录阿里云去使用大数据产品?

13.pngDataWorks 内置的这样一套角色权限体系,分别包含空间、管理角色、开发角色、运维角色、部署角色,还有安全管理的角色,以及近期新增的模型设计师角色。作为企业的数据团队的负责人,一般就会给他授予空间管理员角色,对于开发人员和销售人员,可以给他们分配开发角色,对运维人员可以给他分配运维或者安全管理员角色,作为有开发角色的开发人员,他只需要负责写代码,构建开发流程,构建工作流以及配置依赖关系,进行代码的冒烟测试以及发布申请就可以。作为运营人员,他的主要职责还是更多偏向于资源的管理,比如配置数据源,或者将已经准确无误的代码执行发布上线。实现这样的分权管理其实非常简单,也不需要特别复杂的操作。在 DataWorks 空间的右上角,工作空间管理中就可以直接进入到全员管理,在决策完成分配后,就可以通过 DataWorks 标准开发模式,进行整个规范化的数据生产与开发。

2、场景二:构建离线数仓的 Key Point

(1)场景:通过一次配置,实现每天计算前一天业务系统产生的数据( T+1 )。在大数据行业的T+1的场景,实际上就是对前一天的数据进行计算,每一天都去算前一年的数据,那前一天就是今天的业务日期。

(2)前提:业务MySQL表中必须有时间戳字段。

(3)实现概述:通过数据集成任务配合 DataWorks 系统参数定时运行来实现。

(4)难点:对 DataWorks 系统参数概念的理解。 DataWorks 周期任务产生的每一个实例,每一个实例的背后都会隐藏着这么多的参数,那么在案例中重点关注三个bizdate 就可以,bizdate 指的就是业务日期,假如是2020年9月16号,今天记上的是昨天的数据,那昨天就是9月15号,所以 bizdate 就会解析为20200915,cyctime 今天运行的实例的定时时间,也就是 cyctime 20200916,并且可以精确到时分秒。举例,有一个定时任务,把它设置为每日的凌晨1点去运行,假如它在9月16号的实例准时运行的时间是1点,那当实例生成时,它的定时时间其实就已经明确,是202009160100,这是可以精确到时分秒的字符串。bizdate 参数解出就是它的业务日期就是16号的前一天,就是9月15号20200915, gmtdate 参数是指任务实际运行的日期,如果它准时运行在16号,那就是20200916,任务准时运行的时间是16号,假如因为某些原因 delate 到17号18号运行,那它的参数解析会是什么样的?假如delate到9月18号,bizdate 它还是不变,它的仍然是2020 9月15号cyctime它也不变,它仍然是202009160100,这两个参数是在实例生成的,那一瞬间就已经写死了,它不会再变。但是 gmtdate 参数是会变的,这时它就会变成20200918,其实非常的好理解,cyctime 和 bizdate 也可以做变形,比如 bizdate可以加n天减n天,cyctime 也可以变形为加减n个小时加减n天,或者只显示其中的年,只显示其中的月或者日,这都可以通过参数变现的形式灵活做到。再回到一开始的业务场景和目标,用户是想通过一次配置实现每一天计算前一天业务系统所产生的数据,image.png第一步是先把数据从业务系统同步上。可以创建同步任务,同步数据源就是mySQL,数据目标端就是 maxcompute 在数据源端的数据过滤参数就比较重要。假如这张 mySQL表,它的时间戳字段是 cyctime,那 cyctime 就可以写成bizdate。对于目标的 maxcompute 表,它的分句要写bizdate,整个同步任务配置出的含义就是每一天运行任务时都会取到 mySQL 时间戳等于那一天的数据记录值,并且把这些数据值写到当天 max compute 表的那一天的分区。  

15.png

再通过图片更直观的展示。假如同步任务配置好以后,8月2号执行,那时候解析到的日期就是2018年0801,对于 mySQL 源表,bizdate20180801就会对应到过滤条件,过滤条件就会把源表中的 cyctime 这列是0801的记录值给抽取出,写到maxcompute 表中的0801这天的分区,同样的2月3日执行bizdate解析为20180802,同样对于源表,0802的时间戳的记录值就会被抽取到,目标表的20180802分区中,那8月4号再执行任务,同样8月4号的记录制会被抽取到8月4号的目标表的分区中,以此类推每一天都这样执行,那每一天源表中产生的新的数据都会被抽取到当天的大数据引擎的分区中,同步任务可以这样做,计算任务也一样,当数据抽取完成后,用户会通过每一天的计算任务计算每一天抽取的数据,同样在SQL代码里也是可以去调用系统参数的。这段SQL想表达的是将 ods log info for d 以及 from info d 每一天的分区进行join,再写入到 dw user info d 每天的最新分区中,可以在代码中的参数是可以自定义参数名称,这个主要根据实际的场景定义的参数在代码里要显示成什么样的名称,接着在右边的调度属性配置中,可以对每个参数对它赋值。可以看到 dw time、log info d time、user info time,三个自定义参数都把它指向的系统参数,也就是$符号 bizdate 表示,这时通过冒烟测试或者提交到生产环境进行测试,补数据或者自动调度运行时,这三个参数就会被解析为当天所运行的业务日期,整一个离线数据的开发场景,就通过这样的简单的手段去实现。  


四、演示与实操

首先进入已经创建好的工作空间,第一步需要配置数据源,把oss和rds的数据同步到云上,首先配置 oos 的数据源,所有数据的信息在帮助 workshop 里都已经写明,用户可以直接复制粘贴使用,连通性完成就可以配置成功。第二个数据源,也就是rds 的数据源。把相关信息复制粘贴进来,测完连通性成功后,就可以完成配置。进入数据开发 studio。 新建业务流程,取个名字 dataworks workshop。 拖入虚拟节点,虚拟节点是整个工作流的起始节点,拖入oss的同步任务以及rds的同步任务,通过连线的方式把上下游依赖关系给配置起。 查看整个工作流的调度周期,因为这次的 workshop 比较简单,所以使用默认的调度周期就可以,因为这是最上面的一个任务,所以要使用工作空间跟节点,所以它依赖上游。 回到业务流程中,这时需要创建两张表承载从oos和rds分别同步上来的人物,可以把表结构和表名称负责的 studio 进行可视化的表创建,点击ddl模式,把创建表的ddl语句直接粘贴进来,这样就生成整个表结构,这张表比较简单,有字段以及分区,点击提交到开发环境和生产环境,那这张表就可以分别落到开发环境的 maxcompute 的项目和生产环境的项目中,第一张表就创建成功。接着创建第二张表,同样也是用一样的方法表明和低调语句分别复制到datastudio中,生成整张表的结构,点击提交的开发和生产环境,分别把表落到计算引擎中。 16.png配置每一个同步任务的云端和目的端的配置,对于OOS的任务,可以选择已经布置好的数据源,也就是 oss 的 workshop,把文本类型变分割符以及压缩格式相关参数,配置完成。 这时预览就能查看到当前oos发给的一些实例数据。再选择创建好的第一张表 ods raw_Jog d,在映射栏就会解析出源表和目的表的映射关系,同时用户可以对通道控制中进行并发数以及同步任务速度的最大数据进行限制,点击保存。

17.png用一样的方法,再把 rds 同步的任务进行云端和目的端的配置,选择rds一侧的表,再去设置 maxcompute 表的目的表,假如这是t+1的增量同步任务,那在 mySQL 源端就是刚才讲的那个 case 中的那个场景,在数据过滤地方就需要设置顾虑条件,也就是语言表的时间字段,等于 dataworks 的 bizdate 时间参数,这样运行任务,就可以做到增量同步 mysql 表中的新增的记录值数据。 点击数据预览就可以看到mysql 中的一些实例数据,同样在字段映射这一栏,用户也可以和诊断源表以及maxcompute 目的表的字段映射关系,通道控制可以根据实际环境去设置最大的并发数,同步的数据。 这样两个同步任务就已经配置完成,这时可以点击提交,以便于后面的任务发布。在数据同步之间就可以配置其他的计算任务,它在workshop中分别是把数据进行抽取清洗与转换。 当数据同步上台后,第一步会对两次抽取到的ods程序进行合并,也就是通过 ods log info d 进行合并,写入到跟任务统一的一张表中,进行进一步的处理,把第二次处理过的数据写入dw user info all d 的这张表中,最后会做汇总,把汇总后的数据写入到 rpt user. info_d,任务名称就是表名称,这也是比较提倡的研发规范,也就是一个任务产出一张表,一张表只有一个任务产出,同时任务名和表名是一致的。通过拖拉拽的形式简单的把任务依赖关系配置起来,这样整个工作流的依赖关系就可以完成。

19.png新建表,因为会有三个任务去处理数据,那这三个任务分别对应三张表,用同样的方式把创建表的ddl语句复制到 dataworks 中,进行可视化的创建。创建的第一张表分别把它提交到开发和生产环境,用同样的方式创建第二张表和第三张表,每一张表都要操作提交到开发和生产环境,便于后面验证结果。创建的是最后一张结果表,整个工作流以及表都已经创建完成,进行编辑代码,在编辑代码之前需要创建udf,因为代码里有一部分逻辑是通过udf完成的,首先需要在帮助文档去下载架包,通过把架包提交到引擎中的形式,再生成udf的形式完成udf的创建。可以先把架包上传为资源,上传完成后做提交,就是把架包递交到的引擎中,提交成功就可以创建函数。 基于架包创建函数,需要对类名资源列表描述以及格式参数说明返回值,做一些实例填写,以便于其他人使用时,能够很容易的去理解当前udf能解决什么样的问题。

20.pngUdf创建成功。对每一个计算任务编辑它的处理代码,还是从帮助文档里直接把代码复制粘贴进来,这是第一个处理任务。第二个处理任务也是同样的方法,先复制粘贴进来。 三个计算任务的代码编辑好,就可以对每一个任务执行提交,提交完成后,就需要进入每一个任务的开发界面,执行在开发方面的环境测试,可以通过日志查看冒烟测试是否成功,如果成功就开始下一个冒烟测试,而第二个任务已经执行成功,对第三个任务进行冒烟测试,第三个任务也执行成功。进行验证,在开发环境创建的每一张表中,结果都已经正确产出。可以看到在select时要注意,只写表名没有写项目名,这代表的是对当前空间对应的开发环境引擎中的表做查询。5个结果5张表它都是有数据的,说明代码已经产出数据,这时可以通知管理员和运维人员进行发布,发布后在运维中心的周期任务中看到这5个任务,选择其中一个展开6层。

22.png

再从最上面的一层开始对上面的所有材料进行补数据,选择的是9月8号业务日期,这次的补数据任务开始运行,可以展开它所有下游查看。 任务会从上到下逐个去运行任务,整个工作流完成,这时可以检验一下是否都已经产出,在 select from下面加项目名称,注意如果这时不是阿里云主账号,而是一个字账号,需要先到数据地图和安全卫士中申请权限,等主账号批准了才能查询数据。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 产品官网 https://www.aliyun.com/product/bigdata/ide 大数据&AI体验馆 https://workbench.data.aliyun.com/experience.htm#/ 帮助文档https://help.aliyun.com/zh/dataworks 课程目标  通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群  企业数据仓库开发人员  大数据平台开发人员  数据分析师  大数据运维人员  对于大数据平台、数据中台产品感兴趣的开发者
相关文章
|
1月前
|
SQL 分布式计算 DataWorks
活动实践 | DataWorks智能交互式数据开发与分析之旅
本指南介绍了如何使用阿里云平台进行大数据开发与分析。首先,在MaxCompute控制台创建项目并配置计算资源;接着,通过DataWorks控制台创建工作空间和独享资源组,并绑定工作空间。然后,创建个人开发环境,载入案例并新建Notebook实例。在Notebook中,通过SQL和Python Cell进行交互式开发和数据分析,体验智能助手Copilot的功能,如SQL改写、解释、生成注释及智能建表。最后,清理所有创建的资源,包括删除DataWorks资源、MaxCompute项目及网络配置,确保环境整洁。
|
1月前
|
分布式计算 DataWorks 大数据
🚀DataWorks 深度实践与评测:数据治理新时代的全景体验。
在数字化转型中,企业不仅需要技术创新,更需完善的**数据管理和开发治理工具**。DataWorks 作为阿里云推出的一站式智能大数据平台,整合了阿里巴巴15年的大数据经验,提供从数据接入、开发、治理到资产管理的全流程解决方案。它支持湖仓一体架构,内置AI助手提升开发效率,并适用于金融、零售等多行业。本文将深入探讨 DataWorks 的功能、应用场景及性能表现,通过用户画像分析实践展示其强大潜力...
189 8
🚀DataWorks 深度实践与评测:数据治理新时代的全景体验。
|
2月前
|
SQL 人工智能 自然语言处理
DataWorks年度发布:智能化湖仓一体数据开发与治理平台的演进
阿里云在过去15年中持续为268集团提供数据服务,积累了丰富的实践经验,并连续三年在IDC中国数据治理市场份额中排名第一。新一代智能数据开发平台DateWorks推出了全新的DateStudio IDE,支持湖仓一体化开发,新增Flink计算引擎和全面适配locs,优化工作流程系统和数据目录管理。同时,阿里云正式推出个人开发环境模式和个人Notebook,提升开发者体验和效率。此外,DateWorks Copilot通过自然语言生成SQL、代码补全等功能,显著提升了数据开发与分析的效率,已累计帮助开发者生成超过3200万行代码。
|
2月前
|
人工智能 Cloud Native 大数据
DataWorks深度技术解读:构建开放的云原生数据开发平台
Dateworks是一款阿里云推出的云原生数据处理产品,旨在解决数据治理和数仓管理中的挑战。它强调数据的准确性与一致性,确保商业决策的有效性。然而,严格的治理模式限制了开发者的灵活性,尤其是在面对多模态数据和AI应用时。为应对这些挑战,Dateworks进行了重大革新,包括云原生化、开放性增强及面向开发者的改进。通过Kubernetes作为资源底座,Dateworks实现了更灵活的任务调度和容器化支持,连接更多云产品,并提供开源Flowspec和Open API,提升用户体验。
|
2月前
|
SQL 分布式计算 DataWorks
DataWorks智能交互式数据开发与分析之旅
本次实验将带您进行DataWorks Notebook的快速入门,包含:Notebook新建、多引擎SQL开发与分析、Python开发、交互式分析等,同时,使用DataWorks Copilot体验智能数据开发,体验智能交互式数据探索之旅。
2625 11
|
2月前
|
DataWorks 数据挖掘 大数据
方案实践测评 | DataWorks集成Hologres构建一站式高性能的OLAP数据分析
DataWorks在任务开发便捷性、任务运行速度、产品使用门槛等方面都表现出色。在数据处理场景方面仍有改进和扩展的空间,通过引入更多的智能技术、扩展数据源支持、优化任务调度和可视化功能以及提升团队协作效率,DataWorks将能够为企业提供更全面、更高效的数据处理解决方案。
|
2月前
|
SQL 数据采集 DataWorks
DataWorks产品最佳实践测评:用户画像分析实践
DataWorks作为阿里云提供的一款大数据开发治理平台,以其强大的数据处理能力和便捷的操作界面,在数据处理领域扮演着重要角色。本文将基于个人体验,对DataWorks产品进行最佳实践测评,重点探讨用户画像分析实践,并提出优化建议。
96 11
|
2月前
|
SQL 数据采集 DataWorks
基于DataWorks的多场景实践及数据开发Data Studio最新体验测评
DataWorks是阿里云推出的一站式智能大数据开发治理平台,自2009年发布以来,历经多次迭代,成为企业数字化转型的重要工具。本文通过多个实践案例,如公共电影票房数据预处理,展示了DataWorks如何帮助企业高效处理大数据,涵盖数据集成、ETL开发、数据分析及治理等全流程。最新版DataWorks引入了智能助手Copilot,进一步提升了用户体验和工作效率。
|
2月前
|
数据采集 DataWorks 搜索推荐
DataWorks产品最佳实践测评:用户画像分析实践
DataWorks产品最佳实践测评:用户画像分析实践
142 3
|
3月前
|
SQL 人工智能 DataWorks
DataWorks:新一代 Data+AI 数据开发与数据治理平台演进
本文介绍了阿里云 DataWorks 在 DA 数智大会 2024 上的最新进展,包括新一代智能数据开发平台 DataWorks Data Studio、全新升级的 DataWorks Copilot 智能助手、数据资产治理、全面云原生转型以及更开放的开发者体验。这些更新旨在提升数据开发和治理的效率,助力企业实现数据价值最大化和智能化转型。

热门文章

最新文章