2020亚马逊云计算的轨迹线
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

数据湖火了,那数据仓库怎么办?

作者 | 冯垚

未来,人类将面临着三大问题:

生物本身就是算法,生命是不断处理数据的过程;

意识与智能的分离;

拥有大数据积累的外部环境将比我们自己更了解自己;

这是《未来简史》中提出的三个革命性观点。一本书短短百页,让我们看到了世界颠覆性的变化,从计算机,到互联网,再到大数据、人工智能,所有的变化都在以一种肉眼可观却又无法捕捉的状态悄然发生着,而推动变化发生的背后,则是数据价值的提升。

如果把数据比喻成”油田”,要想充分挖掘其价值,首先需要将数据进行“开采/储存”即数据的收集储存,其次进行“精炼”即数据的挖掘和分析,最终实现数据创造更多价值。以如今常见的电商为例:电商企业通过收集用户的相关数据,再利用数据分析技术,对用户的偏好进行分析,而后进行相关商品推荐,从而提高用户的购买效率;此外电商企业还可建立预测模型,针对特定人群进行预测,在不同阶段适时调整销售方式,提高用户对产品的满意度,从而提高销售额。

原先,企业通常依靠昂贵且私有的本地数据仓库解决方案来存储和分析数据,由于模型范式的要求,底层数据无法做到多样变化,导致企业业务不能随意变迁。同时随着互联网/移动互联网的爆发,数据量从TB到PB到EB级,数据类型更是涵盖结构化数据、非结构化数据、半结构化数据,并且用户对地域性、及时性的要求愈发苛刻,使得传统的数据仓库方案需要更新。

如今,有了云端,高弹性和可扩展的计算与存储,使得数据的储存与分析更容易解决,可以说云端数据解决方案已经成为大势所趋。一方面,分布式架构与开源体系,可以适应当下快速的数据变化。另一方面可集成更多新技术服务,比如与机器学习结合,实现更多预测性分析。而分布式储存、多种文件格式、多种引擎和元数据服务,这也逐渐形成了数据湖的基础。

1 AWS数据湖的技术革新之路

数据湖的概念最早在2006年提出,其主要概念是将数据湖定义为一个中心数据存储的容器。数据可以很轻松进入数据湖,它可以存储结构化、非结构化和半结构化的数据,并支持数据量的快速缩放,灵活地适应上层数据应用的变化,最终实现海量数据的存储和查询分析。

而真正将数据湖概念推而广之的便是AWS(Amazon Web Services)。AWS很早便开始推动有关数据湖的技术演进,2009年AWS推出了Amazon Elastic MapReduce(EMR)数据湖架构,以跨EC2实例集群自动配置HDFS;2012年又继续推出了云端MPP架构的数据仓库云服务Amazon Redshift;随后AWS逐渐将数据湖核心转向Amazon S3。

随着大数据技术的发展,计算能力成为关键,实现计算和存储的分离,所带来的弹性扩展和成本优势逐渐显现。而云服务天生具有存储和计算分离的特性,AWS的云优势慢慢凸显。最终AWS数据湖将大数据和云计算结合在一起,形成了一个存储和多个引擎/服务的经典数据湖搭配。这里,我们将结合AWS整体的分析服务来向开发者们解释,AWS是如何帮助开发者/企业构建数据湖环境,进而高效使用数据的。

• 快捷的数据查询引擎

在AWS上,Amazon S3对象存储服务由于其高可用性、高持久性、可扩展性和数据格式兼容性等特点,成为了建设数据湖的首选。而AWS还提供了交互式查询方式可以直接查询S3中的数据,Amazon Athena便是一种交互式查询服务。

它可以使用标准SQL分析Amazon S3中的数据,Athena简单易用,只需指向开发者存储在S3中的数据,定义架构即可开始查询,它无需执行复杂的ETL作业来为数据分析做准备,开发者可以轻松实现分析大规模数据集。

• 如何解决元数据格式多样的问题?

由于数据湖可以按任何格式存储,因此无需将其转换为预先定义的数据结构,使用数据湖的主要挑战之一便是查找数据并了解数据结构和格式。AWS Glue则可帮助开发者抽取、转换和加载数据,并可在不同数据存储之间可靠地移动数据。此外Glue作为一项完全托管服务,它会像“爬虫”一样对数据湖里的海量数据自动爬取,自动生成数据目录,该数据目录是所有数据资产的永久元数据存储。存入目录后,数据便可立即供ETL搜索、查询和使用。

值得一提的是,Athena可与AWS Glue数据目录进行集成,实现开箱即用,帮助开发者能够跨各种服务创建统一的元数据存储库、抓取数据源以发现架构,并使用新的和修改后的表与分区定义填充数据目录,以及维护架构版本控制。

• 如何快速构建数据湖?

不难看出,数据湖是一个高效、快速的数据存储/分析理念,但同时它还具有相当高的复杂度。在设置和管理数据湖时,涉及大量极为耗时的复杂手动任务,包括加载不同来源的数据、监控数据流、设置分区、打开加密和管理密钥、定义转换作业并监控其操作、将数据重新组织成列格式等。

面对解决此类难题,开发者可使用AWS Lake Formation服务,它简化了数据湖的创建和管理工作,缩短了数据湖的构建时间,可在几天内实现建立安全的数据湖。而且可喜的是,就在2020年10月25日,AWS Lake Formation已在由光环新网运营的AWS中国(北京)区域正式推出。

Lake Formation建立在AWS Glue中可用的功能之上。开发者只需手动定义数据源,制定要应用的数据访问和安全策略。Lake Formation会自动帮助开发者从数据库和对象存储中收集并按目录分类数据,再将数据移动到新的Amazon S3数据湖。最终,用户可通过选择不同的分析和机器学习服务,利用这些数据集实现多样化服务。

2 湖仓新模式:数据湖 + 数据仓库 = Lake House

综上所述,大数据的时代,开源技术体系的设计确实让云端产品或开源组件构成大数据整体解决方案逐渐兴起,比如数据湖,但并不代表着数据仓库会被淘汰,双方存在必要的联系。一方面,通过上云的方式,持续增强数据仓库的核心能力,将数据仓库实现现代化。另一方面,数据仓库和数据湖,是大数据架构的两种设计方式,两者功能可以相互补充,这意味着双方需要实现交互和共享数据。

为了实现湖仓的交互,在2019年AWS re:Invent大会上,AWS提出了运行数据仓库和数据湖业务正在形成一种新的模式,即“Lake House”。AWS Lake House中遵循“ELT”范式(提取,加载,转换),当从本地数据仓库迁移到Redshift时,开发者可使用已有的针对ELT优化的SQL工作负载,无需从头开始将关系和复杂的SQL工作负载重写为新的计算框架。

Amazon Redshift和数据湖之间的无缝互操作性

AWS Lake House模型中Redshift作为首选的转换引擎,实现了高效地加载、转换和扩充数据。Amazon Redshift Spectrum是Amazon Redshift的一项功能,(提示:避免到console中搜索spectrum)AWS选择开发者熟悉的SQL语言,也旨在帮助更多开发者轻松实现查询数据。

不仅如此,新的Redshift还具有数据湖导出功能。该功能可将数据写回到数据湖中,目前支持Apache Parquet、ORC、JSON和CSV格式,以Parquet格式为例(一种用于分析的高效开放式列式存储格式),与传统文本格式相比,Parquet格式的卸载速度最多快2倍,而在S3中占用的存储空间最多减少6倍。

此外,Redshift的RA3实例类型允许开发者独立扩展Redshift数据存储和计算需求,帮助开发者以较低的价格来管理数据和工作负载的组合。并且Redshift可通过自动扩展额外的瞬态容量来处理并发查询并保持一致的性能,从而完成处理工作量高峰。

当数据在数据湖和Redshift之间开始顺畅移动,这种灵活性使开发者在存储数据时可以在成本和性能之间选择最佳的折中方案。当前已经有大量的企业和机构都开始采用AWS的数据湖和数据分析云服务。其中FOX Corporation(FOX公司)作为世界娱乐行业的巨头之一,每天需要面对大规模的提取、优化、转换和聚合多方来源的事务型事件,数据量达到十亿量级。Amazon Redshift支撑了其数据仓库和数据湖中查询实时数据,见证了数据PB级的快速增长。同时帮助FOX公司在保持成本不变的情况下,工作负载提升了10倍。

在中国区域内,欣和作为一家大型食品生产企业,在多品牌、全方位的业务发展规划下,对大规模数据分析和处理提出了更高要求。而原先传统数据仓库系统和人才短缺又限制了欣和的进一步发展,为此欣和选择使用AWS云平台来搭建数据湖。AWS数据湖的高稳定性和安全性,实现了欣和数据仓库的高可用和高可扩展,使欣和各业务系统间的底层数据相连通,并通过调用、分析,为企业业务发展提供强有力的支撑,帮助欣和真正实现数字化。

总结来看,选用AWS Lake House可帮助开发者实现以下目标:

• 高效、低成本的数据存储

• 独立可扩展的计算能力,能够进行大规模并行处理

• 标准SQL转换

• 并发扩展灵活地执行SQL查询

可见,随着产品集、架构模式的继续发展,数据湖与数据仓库的协同运行将会更加频繁,AWS基于Redshift Spectrum提出的Lake House也将会在AWS数据湖架构中继续发挥关键作用。同时随着Amazon Redshift的更多服务在中国区域推出,AWS更是希望吸引更多中国的大数据开发者,来了解AWS数据湖的解决方案,了解AWS。未来,AWS坚信与传统的数据仓库和数据分析解决方案相比,湖仓新模式等云端方案将会为用户释放更大的数据价值。