AWS数据分析新服务 - 数据湖
数据分析是当前比较热门的技术,通过利用云计算的资源,更加快速对数据进行收集、处理并分析。本文将从实践角度阐述 AWS 数据湖以及数据分析等产品,是如何帮助企业更加智能的利用数据,从而辅助业务决策。 一、数据湖的由来 很久之前,当时的数据量很少,人们都是把数据记在脑中或者记录在纸张上面,想要查看数据的时候,翻开记录就行。
随着科技的进步,产生了越来越多的数据,人们发现数据记录在笔记中变得繁琐且不高效,而且查询数据也变得困难。于是产生了数据库,数据库可以满足海量数据快速地增删改查等需求。 比如现在的移动支付,用户的每笔消费,后台数据库都会快速记录这笔交易;用户在电商平台下的每个订单,后台数据库同样会快速地记录下来,这就会产生海量的数据,而这也只是海量数据的冰山一角。
时间长了,人们发现库里的数据越来越多了,不光要支持联机业务,还要有分析的价值。但是,传统的数据库需要满足频繁、快速的读写需求,并不适合大量读取数据特征进行分析业务。人们开始寻找其他的方法。
当然人类还是很聪明的,既然不能直接在数据库中进行分析,那我应该可以把需要分析的数据导出来,放到一个专门的数据库中进行分析,在导出的过程中还可以对数据进行一些格式转换,这个过程也就是我们常说的 ETL(Extract-Transform-Load)。 这个专门存放加工后数据的地方,我们称之为数据仓库。数据仓库里面的数据主要用于数据分析,如用于 BI、报表、经营分析、广告投放等。 那么数据库和数据仓库的区别主要在哪里呢? 数据库:通常为小数据量高频读写,主要用于联机事务。 数据仓库:通常为大数据量读取,主要用于联机分析业务。 虽然应用场景不一样,但数据库和数据仓库都是适用于结构化数据。在相当长的一段时间内,数据库和数据仓库联合,共同满足企业的实时交易型业务和联机分析型的业务。 然而时代在发展,各种各样的数据类型都在产生,如半结构化和非结构化数据,面对多种类型数据分析的需求也越来越复杂。 这个时候,人们又陷入了沉思,该找一个什么样的存储来保存所有的原始数据,并且可以让多个应用进行读取查询。大数据需要使用好所有类型的数据,并不能抛弃这些数据,并且需要近似无限量的存储,这些数据五花八门,又多又杂,该如何存储呢?
索性就挖一个大坑吧,然后把所有的原始格式的数据一股脑地扔进去,这些数据就如同坑中的水,因为数据量巨大,这个坑也就变成了小湖泊。你需要什么数据,直接在湖边挖个沟渠,把数据引入到你的应用上面,这就是我们所说的数据湖的雏形。 什么是数据湖 那么数据湖到底是什么呢?我们查看一下维基百科上面的解释: 数据湖(Data Lake)是一个以原始格式存储数据的存储库或系统。它按原样存储数据,而无需事先对数据进行结构化处理。一个数据湖可以存储结构化数据(如关系型数据库中的表),半结构化数据(如CSV、日志、XML、JSON),非结构化数据(如电子邮件、文档、PDF)和二进制数据(如图形、音频、视频)。 通过数据湖的定义,我们可以从中找出一些数据湖的特点,或者数据湖满足什么条件。 数据湖需要能提供足够大的数据存储能力,接近于无限量的存储。 数据湖可以存储各种类型的数据,不限于结构化,包括半结构化和非结构化数据。 数据湖存储的是原始数据,没有经过加工的,产生的数据是什么样,存储的就是什么样。 数据湖需要有完善的数据管理能力,可以管理各类数据的相关要素。 数据湖需要具有多样化的分析能力,包括但不限于批处理、流式计算、机器学习等。 数据湖需要具有完善的数据生命周期管理能力。 我觉得数据湖就是一个架构体系,通过它我们可以快速地存储、处理、分析海量的数据,同时可以使用多种多样的手段进行分析,所有的操作都是在安全合规的场景下进行;以数据为导向,实现任意来源、任意速度、任意规模、任意类型数据的全量获取、全量存储和全生命周期管理;还可以通过接口和外面的计算资源交互集成,满足各类企业级应用需求。 有了数据湖,企业分析人员不用在不同的数据仓库和文件存储之间进行频繁切换,也不需要重复地写抽取、加载的逻辑,极大提升了分析人员的的工作效率。 二、AWS 数据湖解决方案 我们上面是介绍了数据湖比较普遍的定义,那么 AWS 是如何定义数据湖的呢? AWS 定义数据湖是一个集中式存储库,允许用户以任意规模存储所有结构化和非结构化数据。在 AWS 中, Amazon S3 可以实现数据湖的这些功能,因为 Amazon S3 有很多特性可以满足数据湖各式各样的要求,在后面数据存储方面,我们将着重介绍 Amazon S3 的这些特性。 上图中的整个方案是基于 AWS Lake Formation 构建,AWS Lake Formation 本质上是一个管理性质的组件,与其他 AWS 服务互相配合,来完成整个企业级数据湖的构建。上图从左到右,体现了数据获取、数据存储、数据处理、数据分析四个步骤,下面我们将逐一介绍,阐述 AWS 提供的服务是如何帮助我们使用数据湖。 数据获取 数据获取是整个数据湖构建的起始,既然 Amazon S3 是 AWS 数据湖的存储,那我们该如何把业务数据放入其中呢? 首先,需要判断接入数据的类型,是结构化数据还是非结构化数据,是流式的数据还是批量的数据,然后再选择合适的工具。AWS 针对不同场景提供了丰富的服务,帮助用户将外部数据导入到数据湖 Amazon S3 中。 为了使数据湖中的数据可以统一进行管理,流入的数据需要包括元数据和实际数据两个部分。元数据流入包括数据源创建、元数据抓取两步,最终会形成数据资源目录,并生成对应的安全设置与访问控制策略。 AWS 提供了多种数据提取的服务,如: (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |