连载:阿里巴巴大数据实践—数据开发平台

本文涉及的产品
智能数据建设与治理Dataphin,200数据处理单元
可视分析地图(DataV-Atlas),3 个项目,100M 存储空间
数据可视化DataV,5个大屏 1个月
简介: 介绍MaxCompute和阿里巴巴内部基于MaxCompute的大数据开发套件,并对在数据开发过程中经常遇到的问题和相关解决方案进行介绍。

前言:
-更多关于数智化转型、数据中台内容请加入阿里云数据中台交流群—数智俱乐部 和关注官方微信公总号(文末扫描二维码或点此加入

-阿里云数据中台官网 https://dp.alibaba.com/index

数据只有被整合和计算,才能被用于洞察商业规律,挖掘潜在信息,从而实现大数据价值,达到赋能于商业和创造价值的目的。面对海量的数据和复杂的计算,阿里巴巴的数据计算层包括两大体系:数据存储及计算平台(离线计算平台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)。
image.png
图: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计算平台,从任务开发、调试、测试、发布、监控、报警到运维管理,形成了整套工具和产品,既提高了开发效率,又保证了数据质量,并且在确保数据产出时效的同时,能对数据进行有效管理。

数据研发人员完成需求了解和模型设计之后,进入开发环节,开发工作流如图所示。
image.png
图:开发工作流图

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

1.在云端(D2)

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

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

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

——用户使用IDE进行计算节点的创建,可以是SQL/MR任务,也可以是Shell任务或者数据同步任务等,用户需要编写节点代码、设置节点属性和通过输入输出关联节点间依赖。设置好这些后,可以通过试运行来测试计算逻辑是否正确、结果是否符合预期。

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

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

2.SQLSCAN

SQLSCAN将在任务开发中遇到的各种问题,如用户编写的SQL质量差、性能低、不遵守规范等,总结后形成规则,并通过系统及研发流程保障,事前解决故障隐患,避免事后处理。

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

image.png

图: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工作流程如下图所示。
image.png

图:DQC工作流程图

4.在彼岸

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

(1)新增业务需求

新增产品经理、运营、BI等的报表、应用或产品需求,需要开发新的ETL任务,此时应对上线前的ETL任务进行测试,确保目标数据符合业务预期,避免业务方根据错误数据做出决策。其主要对目标数据和源数据进行对比,包括数据量、主键、字段空值、字段枚举值、复杂逻辑(如UDF、多路分支)等的测试。

(2)数据迁移、重构和修改

由于数据仓库系统迁移、源系统业务变化、业务需求变更或重构等,需要对现有的代码逻辑进行修改,为保证数据质量需要对修改前后的数据进行对比,包括数据量差异、字段值差异对比等,保证逻辑变更正确。为了严格保证数据质量,对于优先级(优先级的定义见“数据质量”章节)大于某个阈值的任务,强制要求必须使用在彼岸进行回归测试,在彼岸回归测试通过之后,才允许进入发布流程。

在彼岸则是用于解决上述测试问题而开发的大数据系统的自动化测试平台,将通用的、重复性的操作沉淀在测试平台中,避免被“人肉”,提高测试效率。

在彼岸主要包含如下组件,除满足数据测试的数据对比组件之外,还有数据分布和数据脱敏组件。

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

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

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

使用在彼岸进行回归测试的流程如下图所示。
image.png
图:使用在彼岸进行回归测试流程图

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

本文节选自《大数据之路:阿里巴巴大数据实践》已受版权保护,未经授权不得转载


数据中台是企业数智化的新基建,阿里巴巴认为数据中台是集方法论、工具、组织于一体的,“快”、“准”、“全”、“统”、“通”的智能大数据体系。目前正通过阿里云数据中台解决方案对外输出,包括零售金融互联网政务等领域,其中核心产品有:

官方站点:
数据中台官网 https://dp.alibaba.com
数据中台钉钉群二维码2.jpg


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
4天前
|
数据采集 监控 数据管理
数据治理之道:大数据平台的搭建与数据质量管理
【10月更文挑战第26天】随着信息技术的发展,数据成为企业核心资源。本文探讨大数据平台的搭建与数据质量管理,包括选择合适架构、数据处理与分析能力、数据质量标准与监控机制、数据清洗与校验及元数据管理,为企业数据治理提供参考。
25 1
|
21天前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
67 1
|
1天前
|
消息中间件 分布式计算 大数据
数据为王:大数据处理与分析技术在企业决策中的力量
【10月更文挑战第29天】在信息爆炸的时代,大数据处理与分析技术为企业提供了前所未有的洞察力和决策支持。本文探讨了大数据技术在企业决策中的重要性和实际应用,包括数据的力量、实时分析、数据驱动的决策以及数据安全与隐私保护。通过这些技术,企业能够从海量数据中提取有价值的信息,预测市场趋势,优化业务流程,从而在竞争中占据优势。
19 1
|
3天前
|
边缘计算 人工智能 搜索推荐
大数据与零售业:精准营销的实践
【10月更文挑战第31天】在信息化社会,大数据技术正成为推动零售业革新的重要驱动力。本文探讨了大数据在零售业中的应用,包括客户细分、个性化推荐、动态定价、营销自动化、预测性分析、忠诚度管理和社交网络洞察等方面,通过实际案例展示了大数据如何帮助商家洞悉消费者行为,优化决策,实现精准营销。同时,文章也讨论了大数据面临的挑战和未来展望。
|
3天前
|
数据采集 分布式计算 大数据
数据治理之道:大数据平台的搭建与数据质量管理
【10月更文挑战第27天】在数字化时代,数据治理对于确保数据资产的保值增值至关重要。本文探讨了大数据平台的搭建和数据质量管理的重要性及实践方法。大数据平台应包括数据存储、处理、分析和展示等功能,常用工具如Hadoop、Apache Spark和Flink。数据质量管理则涉及数据的准确性、一致性和完整性,通过建立数据质量评估和监控体系,确保数据分析结果的可靠性。企业应设立数据治理委员会,投资相关工具和技术,提升数据治理的效率和效果。
18 2
|
5天前
|
存储 安全 大数据
大数据隐私保护:用户数据的安全之道
【10月更文挑战第31天】在大数据时代,数据的价值日益凸显,但用户隐私保护问题也愈发严峻。本文探讨了大数据隐私保护的重要性、面临的挑战及有效解决方案,旨在为企业和社会提供用户数据安全的指导。通过加强透明度、采用加密技术、实施数据最小化原则、加强访问控制、采用隐私保护技术和提升用户意识,共同推动大数据隐私保护的发展。
|
9天前
|
SQL 存储 大数据
大数据中数据提取
【10月更文挑战第19天】
25 2
|
18天前
|
机器学习/深度学习 监控 搜索推荐
电商平台如何精准抓住你的心?揭秘大数据背后的神秘推荐系统!
【10月更文挑战第12天】在信息爆炸时代,数据驱动决策成为企业优化决策的关键方法。本文以某大型电商平台的商品推荐系统为例,介绍其通过收集用户行为数据,经过预处理、特征工程、模型选择与训练、评估优化及部署监控等步骤,实现个性化商品推荐,提升用户体验和销售额的过程。
62 1
|
19天前
|
NoSQL 大数据 测试技术
想从事大数据方向职场小白看过来, 数据方面的一些英文解释
想从事大数据方向职场小白看过来, 数据方面的一些英文解释
31 0
|
25天前
|
存储 机器学习/深度学习 分布式计算
大数据技术——解锁数据的力量,引领未来趋势
【10月更文挑战第5天】大数据技术——解锁数据的力量,引领未来趋势