【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

冯垚

  • 2020-10-27
  • 本文字数:3599 字

    阅读完需:约 12 分钟

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

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

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

意识与智能的分离;

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


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


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


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


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


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 数据湖。最终,用户可通过选择不同的分析和机器学习服务,利用这些数据集实现多样化服务。

湖仓新模式:数据湖 + 数据仓库 =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 坚信与传统的数据仓库和数据分析解决方案相比,湖仓新模式等云端方案将会为用户释放更大的数据价值。


2020-10-27 19:502368

评论

发布
暂无评论
发现更多内容

就餐卡系统架构设计文档

牛珈羽

极客大学架构师训练营

centos7 操作

InfoQ_1c4a1f813eb1

查找算法系列文(一)一文入门二叉树

淡蓝色

Java 数据结构 算法 二叉树

十五年后苹果再次变心

池建强

apple 苹果 芯片 wwdc

游戏夜读 | 《老残游记》很有趣

game1night

【在云端 002】云时代,何以安放我的个人数据

Bora.Don

云计算 云存储

MySQL InnoDB 存储引擎 - 锁

Axe

为什么哈希表可以管理亿级数据?

八两

php redis hash rehash

第四周 学习总结

冯凯

设计模式之单例模式和组合模式

dapaul

极客大学架构师训练营

设计原则与设计模式

dapaul

极客大学架构师训练营

Redis系列(三):缓存过期该如何剔除?RDB和AOF又是什么?

z小赵

Java redis 高并发 高并发系统设计

区块链目前实际的应用场景汇总

CECBC

区块链技术 去中心化 应用场景

ARTS Week5

丽子

【极客大学】【架构师训练营】【第二周】总结:设计原则

NieXY

极客大学架构师训练营

面试官:我们来聊下锁吧

java金融

Java 乐观锁 悲观锁

【极客大学】【架构师训练营】【第二周】依赖倒置原则和接口隔离原则

NieXY

极客大学架构师训练营

过早优化是万恶之源

非著名程序员

程序员 程序人生 提升认知

二叉树深度优先遍历

封不羁

Java 算法 二叉树

辟谣:程序员不配谈恋爱?你错的可以!真相来了

码农神说

程序员 漫画 相亲

RabbitMQ跨机房迁移数据零丢失

心平气和

RabbitMQ 消息队列

工作那么久,才知道的 SOLID 设计原则

闻人

架构师 极客大学架构师训练营

食堂就餐卡系统设计

John

极客大学架构师训练营

从0开始设计Flutter独立APP | 第一篇: 数据库与状态管理

渔子长

flutter 大前端 跨平台

ARTS week3

姜海天

每日一题-翻转字符串里的单词

程序员老王

LeetCode

架构师训练营 - 第三周学习总结

清风徐徐

基于业务表 Binlog 的事件驱动设计

理帆

MySQL 事件驱动 Binlog

线性表(数组、链表、队列、栈)详细总结

淡蓝色

Java 数据结构 算法 链表 线性表

好奇心, 优秀软件工程师的内核品质

亚伦碎语

读书感悟 随笔杂谈

循序渐进的中台研发

理帆

中台 业务中台

数据湖火了,那数据仓库怎么办?_数据库_InfoQ精选文章