小红门网站建设,网站建设 ipv6,nginx apache wordpress,申请一家公司需要多少钱数据只有被整合和计算#xff0c;才能被用于洞察商业规律#xff0c;挖掘潜在信息#xff0c;从而实现大数据价值#xff0c;达到赋能于商业和创造价值的目的。面对海量的数据和复杂的计算#xff0c;阿里巴巴的数据计算层包括两大体系#xff1a;数据存储及计算平台才能被用于洞察商业规律挖掘潜在信息从而实现大数据价值达到赋能于商业和创造价值的目的。面对海量的数据和复杂的计算阿里巴巴的数据计算层包括两大体系数据存储及计算平台离线计算平台MaxCompute和实时计算平台StreamCompute、数据整合及管理体系OneData。
阿里数据研发岗位的工作大致可以概括为了解需求→模型设计→ETL开发→测试→发布上线→日常运维→任务下线。与传统的数据仓库开发ETL相比阿里数据研发有如下几个特点
业务变更频繁——业务发展非常快业务需求多且变更频繁需要快速交付——业务驱动需要快速给出结果频繁发布上线——迭代周期以天为单位每天需要发布数次运维任务多——在集团公共层平均每个开发人员负责上百多个任务系统环境复杂——阿里平台系统多为自研且为了保证业务的发展平台系统的迭代速度较快平台的稳定性压力较大。
通过统一的计算平台MaxCompute、统一的开发平台、统一的数据模型规范和统一的数据研发规范可以在一定程度上解决数据研发的痛点。
本文主要介绍MaxCompute和阿里巴巴内部基于MaxCompute的大数据开发套件并对在数据开发过程中经常遇到的问题和相关解决方案进行介绍。
1、统一计算平台
阿里离线数据仓库的存储和计算都是在阿里云大数据计算服务MaxCompute上完成的。
大数据计算服务MaxCompute是由阿里云自主研发的海量数据处理平台主要服务于海量数据的存储和计算提供完善的数据导入方案以及多种经典的分布式计算模型提供海量数据仓库的解决方案能够更快速地解决用户的海量数据计算问题有效降低企业成本并保障数据安全。
MaxCompute采用抽象的作业处理框架将不同场景的各种计算任务统一在同一个平台之上共享安全、存储、数据管理和资源调度为来自不同用户需求的各种数据处理任务提供统一的编程接口和界面。它提供数据上传/下载通道、SQL、MapReduce、机器学习算法、图编程模型和流式计算模型多种计算分析服务并且提供完善的安全解决方案。
1MaxCompute的体系架构
MaxCompute由四部分组成分别是客户端MaxCompute Client、接入层MaxCompute Front End、逻辑层MaxCompute Server及存储与计算层Apsara Core。 图MaxCompute体系架构图
2MaxCompute的特点
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中的数据。
VolumeMaxCompute以Volume的形式支持文件管理非二维表数据。
4安全性高
MaxCompute提供功能强大的安全服务为用户的数据安全提供保护。MaxCompute采用多租户数据安全体系实现用户认证、项目空间的用户与授权管理、跨项目空间的资源分享以及项目空间的数据保护。如支付宝数据符合银行监管的安全性要求支持各种授权鉴权审查和“最小访问权限”原则确保数据安全。
2、统一开发平台
阿里数据开发平台集成了多个子系统来解决实际生产中的各种痛点。围绕MaxCompute计算平台从任务开发、调试、测试、发布、监控、报警到运维管理形成了整套工具和产品既提高了开发效率又保证了数据质量并且在确保数据产出时效的同时能对数据进行有效管理。
数据研发人员完成需求了解和模型设计之后进入开发环节开发工作流如图所示。 图开发工作流图
对应于开发工作流的产品和工具如下图所示我们将对其功能进行简要介绍。
1在云端D2
D2是集成任务开发、调试及发布生产任务调度及大数据运维数据权限申请及管理等功能的一站式数据开发平台并能承担数据分析工作台的功能。 图对应于开发工作流的产品和工具
用户使用D2进行数据开发的基本流程如下
——用户使用IDE进行计算节点的创建可以是SQL/MR任务也可以是Shell任务或者数据同步任务等用户需要编写节点代码、设置节点属性和通过输入输出关联节点间依赖。设置好这些后可以通过试运行来测试计算逻辑是否正确、结果是否符合预期。
——用户点击提交节点进入开发环境中并成为某个工作流的其中一个节点。整个工作流可以被触发调度这种触发可以是人为的称之为“临时工作流”也可以是系统自动的称之为“日常工作流”。当某个节点满足所有触发条件后会被下发到调度系统的执行引擎Alisa中完成资源分配和执行的整个过程。
如果节点在开发环境中运行无误用户可以点击发布将该节点正式提交到生产环境中成为线上生产链路的一个环节。
2SQLSCAN
SQLSCAN将在任务开发中遇到的各种问题如用户编写的SQL质量差、性能低、不遵守规范等总结后形成规则并通过系统及研发流程保障事前解决故障隐患避免事后处理。
SQLSCAN与D2进行结合嵌入到开发流程中用户在提交代码时会触发SQLSCAN检查。SQLSCAN工作流程如下图所示。 图SQLSCAN工作流程图
用户在D2的IDE中编写代码。
——用户提交代码D2将代码、调度等信息传到SQLSCAN。
——SQLSCAN根据所配置的规则执行相应的规则校验。
——SQLSCAN将检查成功或者失败的信息传回D2。
——D2的IDE显示OK成功、WARNNING警告、FAILED失败禁止用户提交等消息。
SQLSCAN主要有如下三类规则校验
代码规范类规则如表命名规范、生命周期设置、表注释等。
代码质量类规则如调度参数使用检查、分母为0提醒、NULL值参与计算影响结果提醒、插入字段顺序错误等。
代码性能类规则如分区裁剪失效、扫描大表提醒、重复计算检测等。
SQLSCAN规则有强规则和弱规则两类。触发强规则后任务的提交会被阻断必须修复代码后才能再次提交而触发弱规则则只会显示违反规则的提示用户可以继续提交任务。
3DQC
DQCData 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等、去重数、长度值等。
数据脱敏将敏感数据模糊化。在数据安全的大前提下实现线上数据脱敏在保证数据安全的同时又保持数据形态的分布以便业务联调、数据调研和数据交换。
使用在彼岸进行回归测试的流程如下图所示。 图使用在彼岸进行回归测试流程图
注本书中出现的部分专有名词、专业术语、产品名称、软件项目名称、工具名称等是淘宝中国软件有限公司内部项目的惯用词语如与第三方名称雷同实属巧合。 原文链接 本文为阿里云原创内容未经允许不得转载。