关于javascript:连载阿里巴巴大数据实践数据开发平台

33次阅读

共计 4667 个字符,预计需要花费 12 分钟才能阅读完成。

数据只有被整合和计算,能力被用于洞察商业法则,开掘潜在信息,从而实现大数据价值,达到赋能于商业和发明价值的目标。面对海量的数据和简单的计算,阿里巴巴的数据计算层包含两大体系: 数据存储及计算平台(离线计算平台 MaxCompute 和实时计算平台 StreamCompute)、数据整合及管理体系(OneData)

阿里数据研发岗位的工作大抵能够概括为: 理解需要→模型设计→ETL 开发→测试→公布上线→日常运维→工作下线 。与传统的数据仓库开发(ETL)相比,阿里数据研发有如下几个特点:

  • 业务变更频繁——业务倒退十分快,业务需要多且变更频繁;
  • 须要疾速交付——业务驱动,须要疾速给出后果;
  • 频繁公布上线——迭代周期以天为单位,每天须要公布数次;
  • 运维工作多——在团体公共层均匀每个开发人员负责上百多个工作;
  • 零碎环境简单——阿里平台零碎多为自研,且为了保障业务的倒退,平台零碎的迭代速度较快,平台的稳定性压力较大。

通过对立的计算平台(MaxCompute)、对立的开发平台、对立的数据模型标准和对立的数据研发标准,能够在肯定水平上解决数据研发的痛点。

本文次要介绍 MaxCompute 和阿里巴巴外部基于 MaxCompute 的大数据开发套件,并对在数据开发过程中常常遇到的问题和相干解决方案进行介绍。

1、对立计算平台

阿里离线数据仓库的存储和计算都是在阿里云大数据计算服务 MaxCompute 上实现的。

大数据计算服务 MaxCompute 是由阿里云自主研发的海量数据处理平台,次要服务于海量数据的存储和计算,提供欠缺的数据导入计划,以及多种经典的分布式计算模型,提供海量数据仓库的解决方案,可能更疾速地解决用户的海量数据计算问题,无效升高企业老本,并保障数据安全。

MaxCompute 采纳形象的作业处理框架,将不同场景的各种计算工作对立在同一个平台之上,共享平安、存储、数据管理和资源调度,为来自不同用户需要的各种数据处理工作提供对立的编程接口和界面。它提供数据上传 / 下载通道、SQL、MapReduce、机器学习算法、图编程模型和流式计算模型多种计算剖析服务,并且提供欠缺的平安解决方案。

1.MaxCompute 的体系架构

MaxCompute 由四局部组成,别离是客户端(MaxCompute Client)、接入层(MaxCompute Front End)、逻辑层(MaxCompute Server)及存储与计算层(Apsara Core)。

图:MaxCompute 体系架构图

2.MaxCompute 的特点

(1)计算性能高且更加普惠

2016 年 11 月 10 日,Sort Benchmark 在官方网站颁布了 2016 年排序比赛 CloudSort 我的项目的最终问题。阿里云以 $1.44/TB 的问题取得 Indy(专用目标排序)和 Daytona(通用目标排序)两个子项的世界冠军,突破了 AWS 在 2014 年放弃的纪录 $4.51/TB。这意味着阿里云将世界顶级的计算能力,变成普惠科技的云产品。CloudSort 又被称为“云计算效率之争”,这我的项目赛比拼的是实现 100TB 数据排序谁的破费更少,也是 Sort Benchmark 的各项较量当中最具现实意义的我的项目之一。

(2)集群规模大且稳定性高

MaxCompute 平台共有几万台机器、存储近 1000PB,撑持着阿里巴巴的很多业务零碎,包含数据仓库、BI 剖析和决策反对、信用评估和无担保贷款风险管制、广告业务、每天几十亿流量的搜寻和举荐相关性剖析等,零碎运行十分稳固。同时,MaxCompute 能保证数据的正确性,如对数据的准确性要求十分高的蚂蚁金服小额贷款业务,就运行于 MaxCompute 平台之上。

(3)性能组件十分弱小

MaxCompute SQL:规范 SQL 的语法,提供各类操作和函数来解决数据。

MaxCompute MapReduce:提供 Java MapReduce 编程模型,通过接口编写 MR 程序处理 MaxCompute 中的数据。还提供基于 MapReduce 的扩大模型 MR2,在该模型下,一个 Map 函数后能够接入间断多个 Reduce 函数,执行效率比一般的 MapReduce 模型高。

MaxCompute Graph:面向迭代的图计算解决框架,典型利用有 PageRank、单源最短距离算法、K- 均值聚类算法。

Spark:应用 Spark 接口编程解决存储在 MaxCompute 中的数据。

RMaxCompute:应用 R 解决 MaxCompute 中的数据。

Volume:MaxCompute 以 Volume 的模式反对文件,治理非二维表数据。

(4)安全性高

MaxCompute 提供功能强大的平安服务,为用户的数据安全提供爱护。MaxCompute 采纳多租户数据安全体系,实现用户认证、我的项目空间的用户与受权治理、跨我的项目空间的资源分享,以及我的项目空间的数据保护。如支付宝数据,合乎银行监管的安全性要求,反对各种受权鉴权审查和“最小拜访权限”准则,确保数据安全。

2、对立开发平台

阿里数据开发平台集成了多个子系统来解决理论生产中的各种痛点。围绕 MaxCompute 计算平台,从工作开发、调试、测试、公布、监控、报警到运维治理,造成了整套工具和产品,既进步了开发效率,又保障了数据品质,并且在确保数据产出时效的同时,能对数据进行无效治理。

数据研发人员实现需要理解和模型设计之后,进入开发环节,开发工作流如图所示。

图:开发工作流图

对应于开发工作流的产品和工具如下图所示,咱们将对其性能进行简要介绍。

1.在云端(D2)

D2 是集成工作开发、调试及公布,生产任务调度及大数据运维,数据权限申请及治理等性能的一站式数据开发平台,并能承当数据分析工作台的性能。


图:对应于开发工作流的产品和工具

用户应用 D2 进行数据开发的根本流程如下:

——用户应用 IDE 进行计算节点的创立,能够是 SQL/MR 工作,也能够是 Shell 工作或者数据同步工作等,用户须要编写节点代码、设置节点属性和通过输入输出关联节点间依赖。设置好这些后,能够通过试运行来测试计算逻辑是否正确、后果是否合乎预期。

——用户点击提交,节点进入开发环境中,并成为某个工作流的其中一个节点。整个工作流能够被触发调度,这种触发能够是人为的(称之为“长期工作流”),也能够是零碎主动的(称之为“日常工作流”)。当某个节点满足所有触发条件后,会被下发到调度零碎的执行引擎 Alisa 中,实现资源分配和执行的整个过程。

如果节点在开发环境中运行无误,用户能够点击公布,将该节点正式提交到生产环境中,成为线上生产链路的一个环节。

2.SQLSCAN

SQLSCAN 将在工作开发中遇到的各种问题,如用户编写的 SQL 品质差、性能低、不恪守标准等,总结后造成规定,并通过零碎及研发流程保障,事先解决故障隐患,防止预先解决。

SQLSCAN 与 D2 进行联合,嵌入到开发流程中,用户在提交代码时会触发 SQLSCAN 查看。SQLSCAN 工作流程如下图所示。

图:SQLSCAN 工作流程图

用户在 D2 的 IDE 中编写代码。

——用户提交代码,D2 将代码、调度等信息传到 SQLSCAN。

——SQLSCAN 依据所配置的规定执行相应的规定校验。

——SQLSCAN 将查看胜利或者失败的信息传回 D2。

——D2 的 IDE 显示 OK(胜利)、WARNNING(正告)、FAILED(失败,禁止用户提交)等音讯。

SQLSCAN 次要有如下三类规定校验:

代码标准类规定,如表命名标准、生命周期设置、表正文等。

代码品质类规定,如调度参数应用查看、分母为 0 揭示、NULL 值参加计算影响后果揭示、插入字段程序谬误等。

代码性能类规定,如分区裁剪生效、扫描大表揭示、反复计算检测等。

SQLSCAN 规定有强规定和弱规定两类。触发强规定后,工作的提交会被阻断,必须修复代码后能力再次提交;而触发弱规定,则只会显示违反规定的提醒,用户能够持续提交工作。

3.DQC

DQC(Data Quality Center,数据品质核心)次要关注数据品质,通过配置数据品质校验规定,主动在数据处理工作过程中进行数据品质方面的监控。

DQC 次要有数据监控和数据荡涤两大性能。数据监控,顾名思义,能监控数据品质并报警,其自身不对数据产出进行解决,须要报警接管人判断并决定如何解决;而数据荡涤则是将不合乎既定规定的数据荡涤掉,以保障最终数据产出不含“脏数据”,数据荡涤不会触发报警。

DQC 数据监控规定有强规定和弱规定之分,强规定会阻断工作的执行(将工作置为失败状态,其上游工作将不会被执行);而弱规定只告警而不会阻断工作的执行。常见的 DQC 监控规定有:主键监控、表数据量及稳定监控、重要字段的非空监控、重要枚举字段的离散值监控、指标值稳定监控、业务规定监控等。

阿里数据仓库的数据荡涤采纳非侵入式的荡涤策略,在数据同步过程中不进行数据荡涤,防止影响数据同步的效率,其过程在数据进入 ODS 层之后执行。对于须要荡涤的表,首先在 DQC 配置荡涤规定;对于离线工作,每隔固定的工夫距离,数据入仓之后,启动荡涤工作,调用 DQC 配置的荡涤规定,将合乎荡涤规定的数据荡涤掉,并保留至 DIRTY 表归档。如果荡涤掉的数据量大于预设的阈值,则阻断工作的执行;否则不会阻断。

DQC 工作流程如下图所示。

图:DQC 工作流程图

4.在此岸

数据测试的典型测试方法是功能测试,次要验证指标数据是否合乎预期。其次要有如下场景:

(1)新增业务需要

新增产品经理、经营、BI 等的报表、利用或产品需要,须要开发新的 ETL 工作,此时应答上线前的 ETL 工作进行测试,确保指标数据合乎业务预期,防止业务方依据谬误数据做出决策。其次要对指标数据和源数据进行比照,包含数据量、主键、字段空值、字段枚举值、简单逻辑(如 UDF、多路分支)等的测试。

(2)数据迁徙、重构和批改

因为数据仓库零碎迁徙、源零碎业务变动、业务需要变更或重构等,须要对现有的代码逻辑进行批改,为保证数据品质须要对批改前后的数据进行比照,包含数据量差别、字段值差别比照等,保障逻辑变更正确。为了严格保证数据品质,对于优先级(优先级的定义见“数据品质”章节)大于某个阈值的工作,强制要求必须应用在此岸进行回归测试,在此岸回归测试通过之后,才容许进入公布流程。

在此岸则是用于解决上述测试问题而开发的大数据系统的自动化测试平台,将通用的、重复性的操作积淀在测试平台中,防止被“人肉”,进步测试效率。

在此岸次要蕴含如下组件,除满足数据测试的数据比照组件之外,还有数据分布和数据脱敏组件。

数据比照:反对不同集群、异构数据库的表做数据比照。表级比照规定次要包含数据量和全文比照;字段级比照规定次要包含字段的统计值(如 SUM、AVG、MAX、MIN 等)、枚举值、空值、去重数、长度值等。

数据分布:提取表和字段的一些特征值,并将这些特征值与预期值进行比对。表级数据特征提取次要包含数据量、主键等;字段级数据特征提取次要包含字段枚举值散布、空值散布、统计值(如 SUM、AVG、MAX、MIN 等)、去重数、长度值等。

数据脱敏:将敏感数据模糊化。在数据安全的大前提下,实现线上数据脱敏,在保障数据安全的同时又保持数据状态的散布,以便业务联调、数据调研和数据交换。

应用在此岸进行回归测试的流程如下图所示。

图:应用在此岸进行回归测试流程图

注:本书中呈现的局部专有名词、专业术语、产品名称、软件项目名称、工具名称等,是淘宝(中国)软件有限公司外部我的项目的习用词语,如与第三方名称雷同,实属偶合。

原文链接
本文为阿里云原创内容,未经容许不得转载。

正文完
 0