开发者学堂课程【企业运维训练营之大数据 EMR 原理与实践:视频-《 EMR 数据开发》】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1242/detail/18468
视频-《EMR 数据开发》
内容介绍:
一、复习
二、概览
三、什么是全链路数据湖开发治理
四、DataWorks on EMR 产品能力
五、DataWorks on EMR 产品优势
六、DataWorks on EMR 产品 Demo
七、课程内容回顾
一、复习
回顾上一次的学习内容,首先介绍了 emr 管控平台的相关知识,在平台上怎么对开源组件进行管理和使用,以及emr 平台本身的监控和告警能力。第四、第五部分分别对组件和任务的异常介绍了一些排查经验和最佳实践,其中还举了一些案例。最后是 emr 集群弹性伸缩特性,也进行了一些实操演示。
二、概览
1、emr 数据开发会分三部分讲解,第一部分是 emr 数据湖开发治理的基本概念,第二部分是推荐的 DataWorks on EMR 产品形态具有哪些开发以及治理的能力,第三部分会讲 DataWorks on EMR 产品优势。目的跟主题内容相呼应,想让学员了解数据开发治理的整个流程以及产品的方案架构,进而去了解产品的能力,熟悉这个产品带给大家的所有的功能的模块,去知晓产品的优势,在知晓产品优势的基础上能更好地服务于大数据的开发和运维相关的工作。
2、主要是四个章节,前三个章节是知识点的讲解,第四个章节会做一个 DataWorks on EMR 产品的 Demo 演示,主要是操作步骤会做 DataWorks 绑定 EMR 引擎,然后在 DataWorks 上创建工作流、工作节点、做数据同步和 sql 的一些查询等等。
三、什么是全链路数据湖开发治理
1、数据湖开发治理过程
一般会按照数据入库与清洗,到数据存储与管理,再到数据分析与训练,最后是数据服务与应用,用这四大步骤描述一个数据湖或者数仓开发治理的过程。最开始数据可能来源于多种多样,比如说常见的关系型的数据库 MySQL、Oracle,或者是来自于 NoSQL,像 MangoDB 这些 Readies 等等 ,以及最常见的日志文件,他是非结构化或半结构化的文件类型,或者是来自卡副卡消息队列,以及还会出现传统的数据仓库等等。举 MySQL 的例子,业务数据可能需要通过一些工具存储到数据湖里,要介绍的DataWorks 里面就有像 DataX 数据同步的能力,把 MySQL 这种数据库表的数据写入到底层的数据湖存储中。存储到数据湖之中以后,再根据自己实际的业务需求选择想要使用到的分析场景,最常见的像 head SQL 查询,或者是进行一些 Spark 的代码解析,甚至是更高级的学习和算法 Tensor flow 的数据挖掘,经过这些引擎的分析之后,他将服务于一些实际的业务,比如想要对他进行 BA 报表,创造一些可视化的大屏,或者是用数据科学去挖掘一些业务里的数据能提供到实际业务生产中进行指导,相对应的也会有很多这一类的产品提供,像 QuickBI(BI工具)、DataV(大屏工具)、elastic(搜索引擎)、ClickHouse(高性能的查询引擎)。
2、DataWorks on EMR 全链路数据湖开发治理方案架构
整个架构分为四个层次,去解决在整个数据开发过程中的一些问题。最底层是数据湖存储层,会推荐阿里云对象存储 OSS,或者是 OSS-HDFS 新的产品形态,这是底层的存储。在往上需要有对数据湖管理和优化的能力,这个层面推荐 DLF 数据湖构建这个工具,它的主要职能是进行元数据管理、权限管理、湖管理,同时还要依赖于 Jindo,主要是借助 FSx 这个能力,原先叫做 JindoFSx 的 cash 模式,进行湖缓存加速。在此之上,支持了主流的三种数据库格式,分别是 DELTA LAKE、hudi 和ICEBERG。
在往上就到了计算层,也就是 emr 能力,所有的主流引擎都是有的,不再一一列举。最上层是开发层,也是本课程主讲的内容(DataWorks),他有很多的功能模块。在整个架构中,把这些产品进行了深度的继承,目的是让大家更方便的、一站式的做数据湖的开发治理工作。
3、DataWorks on EMR 全链路数据湖开发治理方案优势
它的主打优势会概括为三个方面,降本、增效、可靠。
(1)降本
降本方面一个是计算成本,计算成本运用了云原生的弹性能力,减少用户对于资源的占用,可以理解为 ecs 购买的时长会更短,怎样做削峰填谷的配置达到最小化的资源占用,还提升自己的ROI,或者是可以选择一些高性价比的机型,或者是抢占型的机型,来减少成本。存储上本身借助于 OSS 能力实现了存算分离,把数据存在湖里,计算是依托于 emr 进行自己的计算能力。同时 OSS 有一些像按需归档、按量付费,并且有一些高压缩比等等特性,可以节省存储的成本。硬件成本可以采用各种高性价比的机型提升套路产出比 ROI。平台研发成本可以结合后面的增效来讲,作为 DataWorks on EMR 的用户,可以不用关心平台计算集群怎样搭建、怎样运维,更多的可以关注自己本身业务的开发,这里跟增效相关联。
(2)增效
增效会围绕开发和运维讲解,运维在emr 管控台上提供了很丰富的能力,像一键创建集群、分钟级的扩缩容、全托管 OSS 存储,OSS 几乎可以认为是免运维的一项能力,节省用户的运维成本。另外,提供了各种智能化的监控、健康检查,像 EMR Doctor 等等帮助大家降低集群的风险。开发上依赖于一站式全托管的数据平台 DataWorks,可以提高开发和作业运维的效率。同时,整个 emr 都是基于开源的各种组件,兼容所有的开源数据格式,提升大家数据的产出效率。DataWorks 开箱即用,只要购买就可以立即使用,不需要部署等操作。在阿里内部不仅是开发人员,还有运维人员都在使用,所以它的使用门槛技术并不高,易用,也提升了大家开发的效率。
(3)可靠
DataWorks 在十几年的阿里使用的历程里经历了数十年的双11的考验,支持 PB 级别的数据同步,和每天千万级别的任务调度。安全上 DataWorks 提供了表和字段级别的权限申请和审批,达到了企业级的数据安全保障。
四、DataWorks on EMR 产品能力
第二章节具体去讲 DataWorks on EMR 有哪些的产品能力,会分DataWorks能力,和 emr 的能力,以及 DLF 和OSS这四个产品来分别来阐述它们有哪些核心能力。
1、全链路数据湖开发治理 DataWorks 能力
用上图来讲解 DataWorks 能力的概览,主要分为建模、全域的数据集成、高效的数据开发 data studio,和主动的数据治理,还有大家关心的数据安全和快速分析,电子表格、数据探查这部分的能力。也考虑到可能需要从自建的进行搬迁,或者是其他的云厂商来换到阿里云的产品,阿里云提供了一个便捷的迁移助手,帮助大家做数据以及所有任务的迁移工作,这个能力概括为期待能力。在最新发布的 DataWorks on EMR 2.0里,DataWorks 已经全面支持了 EMR 引擎的功能。
2、DataWorks 产品核心能力
期待能力会主讲三大核心能力,第一个是数据集成,第二个是数据开发和调度,第三个是数据治理。首推的是 DataWorks 数据集成,
大家可能还听到过 DataX,他是开源的数据集成里面的核心组件。现在不仅仅有 DataX,在内部还有实时同步的能力,还有另外一个能力叫 StreamX,DataX 加 StreamX 一共支持了50多种的丰富的异构数据源,这是离线和实时同步两种,支持入湖、入仓。支持的数据类型有非常多,主要分为四大类,第一类是关系型数据库,第二类是大数据存储,第三类是像文本类型或对象存储类型的非结构化存储,第四类是消息类的数据源,主要是支持这四大类的数据之间的读写交换。
3、DataWorks 数据集成
(1)核心能力可以概括为六点,第一点是 DataX 和StreamX 全面覆盖了离线和实时同步。另外,借助于阿里云网络的相关产品,可以支持多种的数据的网络打通方案,不管数据是想通过公网进行传输,还是目前在 IDC 或者是在 ECS VPC 内自建的一些数据源,都可以通过成熟的网络解决方案,加上网络产品进行网络的打通和安全的保障。
(2)安全控制方面在 DataWorks 集成里面会对开发和生产环境进行双环境的配置,并且双环境的配置是隔离的,对每一个数据源都有权限的安全控制,需要对数据源权限进行分享后才能进行开放。另外,我们支持用户购买自己独享的资源组,保障了资源组的高可用和安全性。数据源的类型刚才也说到了,我们离线支持50+,实施目前支持10+种,他们可以在这10+种之间任意的组合,类型就不重复去说了。(3)解决方案,比如说有过开发经验的同学可能知道,像一种实时全增量同步这个场景,他可能就需要多个类型的这种节点,甚至是复杂的配置才能去完成,经过长期的探索呢,根据用户的使用情况,总结了一些成熟的、比较通用的解决方案,能帮助大家通过向导的方式去一步步的完成这种复杂的全增量场景的一些配置,把它叫做同步解决方案,勾选一个方案,只要按照向导一步步去做,整个流程就会很顺畅的配置完成。
(4)最后一点就是比较基础的运维监控,都具备所有的必要的电话、短信、钉钉、邮件告警渠道。
4、DataWorks 数据开发调度
(1)第二部分是 DataWorks 数据开发调度,这个地方有的时候叫 DataStudio,或者就是叫数据开发它的模块。界面如下图所示:
可以看到他是一个很丰富的叫做节点类型的,他整个支持了可视化的DH 图的业务流程编排。从上至下可以看到,所有的节点之间,进行关系的串联和依赖的配置,目前 DataStudio 已经适配了 emr 的三种集群,有 DataLake 集群、自定义集群、ClickHouse集群,还有其他的像传统的数仓,还有 Data service 以及 olive 等等其他类型,目前已经支持了三种,这是比较重要的知识点。对于离线和实时的数据开发都支持到了,功能特性上支持可视化的 dh 图,可以拖拽进行编排,每天可以支持千万级别的任务示例,支持的周期有从分钟到小时、天、周,甚至是月,这些不同的周期节点之间也能混合着编排。还有一些高级的能力,像整个业务流程,可以去设置全局的参数变量,同时节点之间可以支持上下文的一个传参,比如说这个节点的输出可以传递到下个节点,作为一个输入。
上图是现在支持到的 EMR 和可以 cos 集群的节点,应该有九种类型,有作业开发经验的同学有时候还会需要对流程做一些辅助,或者是一些逻辑判断的这种需求,在基于这种需求,也设计了像 do-while 循环的依赖、for-each 依赖或者是 If else 这样的分支判断的控制节点也是支持的,这方面也是产品的亮点。
(2)
针对 EMR 是深度适配的,像 EMR 可能平时会遇到一些像可视化建表,要上传一些架包,或者是拍的脚本等等,管这个叫可视化的资源管理,上传提交以及在 emr 中会有很多场景需要去写一些自定义函数 UDF,这个都支持了一些可视化的、界面化的操作。另外,还有智能的 SQL 编辑器,这块是DataWorks 独创的,也获得了相关的一些国家专利,它可以提供语法的高亮、关键词的补全,对于表和字段可以悬停,进行一些信息的提示,对于函数也是如此。这个使用体验很像一些付费版的 id,像 Italy share idea 或者是 Cancel equiplis 这样的高级的体验都能在云上的 DataWorks 这个产品里体验到。