由于工作需要,作者需要指导大学生开发一系列大数据应用。作者将这一过程记录下来,就形成了这个“基于阿里云大数据平台开发大数据应用”的系列文章。这篇文章是本系列文章的第一篇,主要介绍为什么选定阿里云MaxCompute平台作为项目开发的基础平台。
当前,基于大数据开发新型的数据仓库系统已经是一个主流开发需求。从我们的需求出发,选择MaxCompute的理由可以总结为:高性能带来的高性价比,整个运行和生产环节的稳定性,数据共享和安全的平衡,应用开发的复杂度,基于阿里云大数据平台构建应用的方便。
具体来说,我们通过调研发现,阿里云大数据计算服务MaxCompute 是一种快速、完全托管的 TB/PB 级数据仓库解决方案 。MaxCompute 向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全 。同时,大数据开发套件和 MaxCompute关系紧密,大数据开发套件为 MaxCompute 提供了一站式的数据同步,任务开发,数据工作流开发,数据管理和数据运维等功能。
其次,MaxCompute 主要服务于批量结构化数据的存储和计算,可以提供海量数据仓库的解决方案以及针对大数据的分析建模服务 。随着数据收集手段的不断丰富及完善,越来越多的行业数据被积累下来 。数据规模已经增长到了传统软件行业无法承载的海量数据级别 。在分析海量数据场景下,由于单台服务器的处理能力限制,数据分析者通常采用分布式计算模式 。但分布式的计算模型对数据分析人员提出了较高的要求,且不易维护 。使用分布式模型,数据分析人员不仅需要了解业务需求,同时还需要熟悉底层计算模型。 MaxCompute 为用户了提供一种便捷的分析处理海量数据的手段 。开发者可以不必关心分布式计算细节,从而达到分析大数据的目的 。
再次,与其他大数据平台相比,MaxCompute在多方面具有重大突破:提供了非结构化的处理,在云上开始使用开放的对象存储、开放的表格存储,在数据分析方面进行了CPU和GPU统一的架构。具体来说,在云上,现在存储非结构化数据情况越来越多,比如存储视频、音频、图像,存储文本、标签等。很多需要在这个过程中能够进行进一步的计算,比如希望存储的文本文件能够在MaxCompute上直接对其进行计算,从而完成非结构化数据到结构化数据的转换。MaxCompute 提供了外部表的方式,可以将非结构化信息映射成一个外部表来进行表式的处理。
数据安全是大数据应用的一个必备需求。MaxCompute应对多个项目要安全共享数据的天然诉求,开发了一整套更细粒度的授权体系。基于项目的方式,让更多的安全得到控制的一个非常重要的原则是最小化原则:仅仅授权给最小需要数据的人,在企业里做到权责分离。通过不同的授权方式,MaxCompute让不同的部门得到合理的授权,确保数据安全的权限下发到最小的部门。
从上面的分析大家可以看出,作为云服务,MaxCompute具有显著的优点:开通即用,非常便利;在云上,借助于大规模的规模效应带来的高性能、低成本;数据安全、可靠;支持多种分布式计算模型,计算架构发展到今天,没有一种架构能够满足所有的场景,MaxCompute可以做离线计算、批量计算,学习能力强;兼容生态开放,提供了众多接口和生态的工具。
所以,基于阿里云MaxCompute,可以构建完整的大数据应用架构,包括数据采集、数据集成、数据开发、数据运维、数据应用的工具。数据来源是基于阿里云的ECS、RDS、OSS,通过阿里云提供的数据管理功能同步上来做数据仓库,进一步来做开发。MaxCompute处于阿里云整个计算平台的核心位置。MaxCompute与阿里云的其他组件想配合,可以实现推荐、报表分析、个性化展现等功能。
基于以上分析,我们发现阿里云大数据平台是目前国内云平台上的大数据系统的领先解决方案。所以,我们最终选定阿里云大数据平台作为我们项目的底层平台。