网址:阿里DataWorkers网址:数据集成概述 - 大数据开发治理平台 DataWorks - 阿里云

目录

网址:阿里DataWorkers网址:数据集成概述 - 大数据开发治理平台 DataWorks - 阿里云

一、DataWorks 工作流程

1、数据集成

(1)数据同步过程中几个必要的东西

2、数据开发

(1)写sql,但又不止写sql

(2)调度配置

3、运维工作

(1)大体如下

(2)周期任务 实例DAG图(有向无环图)

(3)任务状态

(4)补数据

4、数据治理

(1)数据访问控制

(2)数据质量 单独拿出来说

5、数据地图

二、数据质量(重要)

1、情景:

2、主要的数据质量校验规则

(1)主键重复检测

(2)表数据量检测

(3)某些重要计算列检测

三、思考整理

1、ELASTICSearch

(1)是什么?

(2)适用场景

(3)特点

2、kudu

(1)是什么?

(2)架构

3、impala

(1)是什么?

(2)优缺点

4、kylin

(1)是什么?

(2)特点

(3)应用场景

5、Presto

(1)是什么?

(2)优缺点


一、DataWorks 工作流程

1、数据集成

也就是数据的同步,包括抽数、导数

在离线数仓中也叫 离线同步

(1)数据同步过程中几个必要的东西

1)数据源

包括从哪来到哪去,可以是数据库,也可以是别的,比如FTP、ES等

2)表

来源表  目标表

3)字段映射关系

4)同步方式/同步逻辑

mysql -》hive

全删全查--先清空hive表的某些分区,再插入

直接插入

hive--》mysql

全删全查

直接插入

主键冲突 update

hive --》 mysql  一般称为   回流

同步方法:1、直接对mysql业务库进行操作。优缺点:操作简单;但是风险较大

2、写到kafka,让java后端去消费

kafka,消息中间 件                                  hive  ->kafka ->mysql

                 中间多了一层,离线数仓称为生产者,java后端称为消费者

                 特点:较为安全,但是开发比较麻烦

3、api接口

产生统一的api接口,供java同事去调用,dataworkers有相应的功能,

api接口一般是一行数据,一个JSON

4、还是将数据写到mysql,但是是接口端的mysql

hive  ---》  mysql(接口库) --》接口  --》mysql业务库

     5)同步时间,多久同步一次

linux    crontab

2、数据开发

(1)写sql,但又不止写sql

(2)调度配置

时间配置:什么时候运行?多久运行一次?

生效时间范围:比如  2022-4-9  ~ 2022-4-10

SLA:设置任务的超时时间,比如设置一小时,也可以设置具体的时间,时效性

依赖设置:哪些任务跑完了,我才可以跑

重跑设置:是否出错,自动重跑?重跑几次?是否可以手动重跑?

其它:代码提醒,比如写一个表 dwd_order_   ,可以提醒补全(主要依靠元数据)

血缘关系,一大段sql,平台可以将其中所有表的依赖解析出来

版本,谁编辑过,编辑了几次,为什么编辑,可以回滚?

代码搜索:

3、运维工作

(1)大体如下

(2)周期任务 实例DAG图(有向无环图)

(3)任务状态

启动  、停止  、暂停(冻结)、  解冻

(4)补数据

作用  1:例如hive加了个字段,那我可能要基于业务去重跑某个时间段的数据

2:做测试用,重跑某一天的某个分区的数据

3:调度任务失败后,重跑

4、数据治理

(1)数据访问控制

例如分析师想要看某个做好的ADS表,他申请,你审批

(2)数据质量 单独拿出来说

5、数据地图

包含了表,字段,分区,数据量,上下游依赖等等信息(从元数据搞来)

二、数据质量(重要)

1、情景:

比如有些任务我们跑成功了,但是数据不对,下游分析师或者业务发现,告知我们。

例如,有一个app弹窗,里面放的是优惠券的链接,里面的数据是自己做的,原本按照业务要求只需要发一万张,但是却发了十万人,这就会造成资损。

2、主要的数据质量校验规则

(1)主键重复检测

having  count(distinct id) > 1

(2)表数据量检测

数据量多也不行,少也不行,没有更不行

没有数据:是否为空? count(1)  是否大于 0  ?

多也不行,少也不行:表数据量波动阈值,假如每天的数据量大约是1万条左右,我们设置阈值为50%,当突然有一天数据量达到 2万条,就会警告等。

N天平均值波动,方差波动,周期波动

(3)某些重要计算列检测

比如一个存放百分比的列,里面值都为小于1大于0的小数,我们可以置该列最大值为1,出现大于1 的报错

三、思考整理

1、ELASTICSearch

(1)是什么?

Elasticsearch,基于Lucene,隐藏复杂性,提供简单易用的RestfulAPI接口、JavaAPI接口(还有其他语言的API接口)。

Elasticsearch是一个实时分布式搜索和分析引擎。它用于全文搜索、结构化搜索、分析。

(2)适用场景

1)维基百科,类似百度百科,牙膏,牙膏的维基百科,全文检索,高亮,搜索推荐。

2)The Guardian(国外新闻网站),类似搜狐新闻,用户行为日志(点击,浏览,收藏,评论)+ 社交网络数据(对某某新闻的相关看法),数据分析,给到每篇新闻文章的作者,让他知道他的文章的公众反馈(好,坏,热门,垃圾,鄙视,崇拜)。

3)Stack Overflow(国外的程序异常讨论论坛),IT问题,程序的报错,提交上去,有人会跟你讨论和回答,全文检索,搜索相关问题和答案,程序报错了,就会将报错信息粘贴到里面去,搜索有没有对应的答案。

4)GitHub(开源代码管理),搜索上千亿行代码。

5)国内:站内搜索(电商,招聘,门户,等等),IT系统搜索(OA,CRM,ERP,等等),数据分析(ES热门的一个使用场景)。

(3)特点

1)可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司;也可以运行在单机上,服务小公司

2)Elasticsearch不是什么新技术,主要是将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的ES;lucene(全文检索),商用的数据分析软件(也是有的),分布式数据库(mycat)

3)对用户而言,是开箱即用的,非常简单,作为中小型的应用,直接3分钟部署一下ES,就可以作为生产环境的系统来使用了,数据量不大,操作不是太复杂

4)数据库的功能面对很多领域是不够用的(事务,还有各种联机事务型的操作);特殊的功能,比如全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理;Elasticsearch作为传统数据库的一个补充,提供了数据库所不能提供的很多功能

2、kudu

(1)是什么?

Kudu 是一个针对 Apache Hadoop 平台而开发的列式存储管理器。

(2)架构

Kudu也采用了Master-Slave形式的中心节点架构,管理节点被称作Kudu Master,数据节点被称作Tablet Server(可对比理解HBase中的RegionServer角色)。一个表的数据,被分割成1个或多个Tablet,Tablet被部署在Tablet Server来提供数据读写服务。

Kudu Master在Kudu集群中,发挥如下的一些作用:

1. 用来存放一些表的Schema信息,且负责处理建表等请求。

2. 跟踪管理集群中的所有的Tablet Server,并且在Tablet Server异常之后协调数据的重部署。

3. 存放Tablet到Tablet Server的部署信息。

Tablet与HBase中的Region大致相似,但存在如下一些明显的区别点:

Tablet包含两种分区策略,一种是基于Hash Partition方式,在这种分区方式下用户数据可较均匀的分布在各个Tablet中,但原来的数据排序特点已被打乱。另外一种是基于Range Partition方式,数据将按照用户数据指定的有序的Primary Key Columns的组合String的顺序进行分区。而HBase中仅仅提供了一种按用户数据RowKey的Range Partition方式。

3、impala

(1)是什么?

Cloudera公司推出,提供对HDFS、Hbase数据的高性能、低延迟的交互式SQL查询功能。

基于Hive,使用内存计算,兼顾数据仓库、具有实时、批处理、多并发等优点。

是CDH平台首选的PB级大数据实时查询分析引擎。

(2)优缺点

优点:

1.基于内存运算,不需要把中间结果写入磁盘,省掉了大量的I/O开销。

2.无需转换为Mapreduce,直接访问存储在HDFS,HBase中的数据进行作业调度,速度快。

3.使用了支持Data locality的I/O调度机制,尽可能地将数据和计算分配在

同一台机器上进行,减少了网络开销。

4.支持各种文件格式,如TEXTFILE 、SEQUENCEFILE 、RCFile、Parquet。

5.可以访问hive的metastore,对hive数据直接做数据分析。

缺点:

1.对内存的依赖大,且完全依赖于hive。

2.实践中,分区超过1万,性能严重下降。

3.只能读取文本文件,而不能直接读取自定义二进制文件。

4.每当新的记录/文件被添加到HDFS中的数据目录时,该表需要被刷新。

4、kylin

(1)是什么?

Apache Kylin 是一个开源的分布式存储引擎,最初由 eBay 开发贡献至开源 社区。它提供 Hadoop 之上的 SQL 查询接口及多维分析(OLAP)能力以支持大规 模数据,能够处理 TB 乃至 PB 级别的分析任务,能够在亚秒级查询巨大的 Hive 表,并支持高并发。

(2)特点

  • 数据源和模型:主要支持Hive、Kafka
  • 构建引擎:早期支持MapReduce计算引擎,新版本支持Spark、Flink计算引擎。除了全量构建外,基于时间的分区特性,支持增量构建。
  • 存储引擎:构建好的Cube以Key-Value形式存储在HBase中,通过优化Rowkey加速查询。每一种维度的排列组合计算结果被保存为一个物化视图,叫做Cuboid.
  • 优化算法:Cube本身是空间换时间,也会根据算法,剪枝优化掉一些多余的Cuboid,需求平衡。
  • 访问接口:支持标准SQL接口,可以对接Zeppelin、Tableau等BI工具。SQL通过查询引擎,可以被路由到对应的Cuboid上。

(3)应用场景

  • 特点:Kylin在亚秒级内返回海量数据的查询结果。
  • 巨大的数据量,单个数据源表千亿行数据级别,且单个数据源达到百TB级别。
  • 巨大的查询压力(查询的高并发)
  • 查询的快速响应
  • 下游较灵活的查询方式,需支持带有复杂条件的SQL查询。
  • Kylin的核心思想是预计算,将数据按照指定的维度和指标,预先计算出所有可能的查询结果,利用空间换时间来加速查询速度。

5、Presto

(1)是什么?

Presto是一款Facebook开源的MPP架构的OLAP查询引擎,可针对不同数据源执行大容量数据集的一款分布式SQL执行引擎。

比如说,你想对存储在不同数据源中的数据,如HDFS、Mysql、HBase等通过一个SQL做查询分析,那么只需要把每一个数据源当成是Presto的Connector,对应实现Presto SPI暴露出的Connector API就可以了。

(2)优缺点

优点:

基于内存运算,减少了硬盘IO,计算更快
能够连接多个数据源,跨数据源连表查,比如从Hive查询大量网站访问记录,然后从Mysql中匹配出设备信息。
缺点:

Presto能处理PB级别的海量数据分析,但Presto并不是把PB即数据都放在内存中计算。而是根据场景,如Count,AVG等聚合运算,是边堵数据边计算,再清理内存,再读数据再计算,这种内存耗的并不高。但是连表查,就可能产生大量的临时数据,因此速度会变慢。

基于阿里云官网文档-大数据开发治理平台 DataWorks研读+数据质量扩展+相应的大数据组件知识扩展相关推荐

  1. 阿里云-数据仓库-全链路大数据开发治理平台-DataWorks的数字世界

    一.前言 上文我讲到 阿里云-数据仓库-数据分析开发神器-ODPS ,今天我带领大家一起走进神器的成长环境及它的数据世界. 二. DataWorks是什么 DataWorks基于MaxCompute. ...

  2. 大数据开发治理平台 DataWorks

    序言 学习下阿里DataWorks的设计理念以及要做的事情cuiyaonan2000@163.com 参考文档: https://www.aliyun.com/product/bigdata/ide ...

  3. 阿里:DataWorks一站式大数据开发治理平台

    官网: 大数据开发治理平台 DataWorks - 帮助中心 - 阿里云

  4. 阿里云官网各种产品都有什么用

    阿里云官网主要产品分为6大分类:云计算基础.安全.大数据.人工智能.企业应用.物联网, 云计算基础(Cloud Essentials): 云基础产品体系完整度全球领先,基础产品及功能持续投入建设,源源 ...

  5. 必看!必看!必看!解决登录阿里云官网显示:您的登录IP不在管理员配置的登录掩码范围内相关问题

    关注重工黑大帅,学习不迷路 有的朋友在租了阿里云的服务器ESC,在进行一系列的操作以后再次登录阿里云官网会显示如下界面: 在网上搜索了很多文章,发现最后还是不能成功登录,就在脑袋昏昏沉沉.苦于无奈的时 ...

  6. 阿里云官网全新版本抢先看

    在1024程序员节到来之际,阿里云官网进行了一次全面的改版,推出了更具数字化.科技感的首页.作为抢先邀测用户,可以说本次阿里云官网改版的动作幅度是非常大的,整个官网从风格到细节都进行全方位的优化. 接 ...

  7. vue实现仿阿里云官网的ace-view-fullColumn模块

    ace-view-fullColumn 案例:阿里云官网(https://www.aliyun.com)下方的"全面.专业.智能的解决方案"模块 自己实现出来的效果: 2021.1 ...

  8. 阿里云官网网址URL链接后面的spm是什么参数?有什么作用?

    细心的用户会发现,我们在访问阿里云官网各个页面的时候,阿里云官网网址URL后面总是会多出一串spm开头的字母和数字,那么,阿里云URL网址链接后面的spm是什么参数?spm有什么作用? 阿里云URL链 ...

  9. AFNetworking官网文档及翻译

    AFNetworking2.4.1解析 1.官网文档外加点中文注释 AFNetworking官网(点击进入) AFNetworking翻译注释 Architecture(结构) NSURLConnec ...

最新文章

  1. Beaglebone Black教程BeagleBone Black安装最新系统映像
  2. AMD真龙一族网络社区成立
  3. 关于大数据的完整讲解
  4. 沉痛哀悼!现代无线网络之父 Norman Abramson 辞世,享年 88 岁
  5. 从架构特点到功能缺陷,重新认识分析型分布式数据库
  6. 1.8 Arrays工具类
  7. QT、QTE、qtopia区别
  8. Ubuntu的网络设置
  9. Firewalld,iptables概述(netfilter和Firewalld,iptables三者之间的关系,四表五链,Firewalld防火墙的配置方发,SNAT,DNAT了解)
  10. ArrayList 练习
  11. 查看IIS进程所对应的应用程序池名称
  12. Salesforce正面叫板微软Office:5.82亿美元收购Quip
  13. (standard input): No keywords in input file
  14. solaris查看服务器信息,Solaris下如何显示服务器虚拟内存统计信息
  15. 初步了解java虚拟机
  16. IDEA画Use Case(用例图)
  17. ​​insecure-configuration --复现
  18. 【ESP 保姆级教程】疯狂传感器篇 —— 案例:ESP8266 + MQ3酒精传感器 + webserver(局域网内曲线变化图)+ 自定义飞书告警
  19. 【工作记录】springboot项目通过qq邮箱发送邮件
  20. APP开发的上线流程

热门文章

  1. CVX配合MATLAB的使用心得
  2. .NET Core之 ABP从入门到精通
  3. MuleSoft 4 各种组件的使用
  4. openCV学习笔记1——图片的读取,显示,保存;视频的读取,显示和保存
  5. 华为鸿蒙概念机990,华为屏下摄像头概念新机:麒麟990+双模5G,还有望搭载鸿蒙OS系统...
  6. python海龟画小猪佩奇_python海龟作图20秒完成小猪佩奇,附源码!
  7. 500个常见的计算机英文文献词汇,按字母顺序排列,并附上音标和中文解释:
  8. php输出表格内容,php表格输出
  9. 基于matlab的COST231-hata信道模型性能仿真
  10. 这70个Java必背英语单词不会_英语不好没关系,背过这70个单词学java足够了!