1.6 云计算中数据技术的演进
数据技术的演进史实际上就是数据量的变化史。在进入互联网时代后,海量数据带来的容量问题和成本问题成为阻碍数据技术发展的核心难题。例如,数据保存在存储介质上,一般通过磁盘阵列或者多副本的方式进行冗余存储。在做后续数据分析的时候,还需要把这些数据进行抽取、清理并复制到HDFS等分布式存储上。在通常情况下,HDFS需要做“三副本”,因此一份数据就会占用大量的存储空间,这要求数据存储系统具备很强的扩容能力,并且足够简便,保证在不停机的情况下完成扩容。本地机房虽然可以通过增加磁盘柜的方式来提高容量,但往往有较长的采购周期,容量问题无法得到完美解决。另外,海量数据也意味着高昂的成本,对于使用大数据的企业来说,成本控制也非常重要。
如今炙手可热的云计算恰恰可以完美解决本地机房扩容和成本的局限性问题。云计算巨大的规模效应让用户无须单独采购存储设备,能够以低廉的价格保存数据,即便面对海量存储需求,云计算服务遍布全球的数据中心也能确保随时提供足够的可用资源。
云计算的历史最早要追溯到2006年。当时,Amazon已经是著名的在线零售商,为了支持交易高峰期的资源需求,不得不购买大量的服务器。而在非交易高峰时间段,这些服务器会长时间闲置,造成很大的浪费。为了合理利用空闲服务器,Amazon率先推出存储服务S3和弹性计算服务EC2,云计算正式走上了历史舞台。云计算的核心在于其庞大的规模效应,众多用户共享大量硬件和软件服务,由云计算厂商统一运作物理机房。用户可以根据自己的实际情况按需申请或释放计算资源,节省成本,无须像维护本地机房那样购买、安装或运维服务器和其他硬件设备,在成本降低的情况下还可以获得更好的稳定性。
在云计算发展早期,各云厂商的数据服务还没有完全成型,用户主要利用虚拟机和存储自行搭建大数据平台,这在很长的时间里是行之有效的方案。但数据技术的发展日新月异,各种开源产品不断涌现,很少有人能成为每个技术领域的专家,这也意味着自行搭建一个高可用、高效率且紧跟技术前沿的大数据平台是一件非常具有挑战性的工作。有些行业(如金融数据和医疗信息等)还有自己的安全标准和保密性需求,而数据分析往往需要多数据源的相互参考,这也催生出新的安全问题。如何保证运维中数据的安全合规问题亟待解决。在这种情况下,云原生数据服务不断成熟并越来越受到用户的青睐。Amazon基于S3、AWS Glue、EMR和RedShift,阿里云基于OSS、Dataworks和MaxCompute,Azure基于数据湖存储、数据工厂和Synapse Analytics等,均构建起云原生的大数据生态,支持数据引入、数据存储、数据治理和商业智能。用户不仅可以在云原生数据仓库内访问数据湖里的数据,还可以在保证数据安全的情况下与其他异构数据库一起进行联合查询。云计算让正在高速发展的数据湖和数据仓库进一步融合,用户无须在项目之初就进行技术路线的选择,只需要根据业务发展情况,随时随地利用云原生技术丰富自己的技术栈。
2008年10月27日,在洛杉矶举行的开发者大会PDC2008上,时任微软首席架构师的Ray Ozzie宣布推出服务全球的云计算平台Azure。发展至今,Azure已经涵盖全球61个区域,提供近200项服务,图1-3所示为当前Azure上的数据服务生态体系。
本书将以Azure为例,展现如何通过云原生服务将数据存储、数据引入、批量数据处理、实时数据处理、数据仓库、数据可视化和机器学习等核心要素综合起来,构建一个高效的数据服务平台。
由于后续章节要基于Azure服务进行讲解,请读者确保已有可用的Azure资源,或者通过https://azure.microsoft.com/en-us/free/获得账号。
图1-3 当前Azure上的数据服务生态体系