【AWS征文】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 提供了多种数据提取的服务,如:

  • AWS Snowball:提取离线传感器数据、NAS、本地 Hadoop。
  • Amazon Kinesis Data Firehose:提取 IoT、传感器数据、点击流数据、社交媒体源、流式处理日志。
  • AWS Direct Connect:提取本地数据湖、EDW、大型数据集合。
  • Amazon Database Migration:提取 Oracle、MySQL、MongoDB、DB2、SQL Server、Amazon RDS。
  • AWS Storage Gateway:提取本地 ERP、大型主机、实验室设备、NAS 存储。

这些服务可以把各式各样的数据从外部导入到 Amazon S3 中,具体每个服务的详细功能,AWS 都做了详细的介绍,用户可以参考官方文档进行配置。

数据存储

数据湖的存储主要是依托于 Amazon S3,Amazon S3 可以理解为数据湖最重要的一部分,Amazon S3 采用传统文件系统的分层目录结构和文件系统语义,同时具备 AWS 提供的安全性和可伸缩性。组织为近乎无限大的文件系统。 其具有以下特征:

  • 提供 11 个 9 的数据持久性。
  • 业界领先的性能和可扩展性。
  • 完善的安全性、满足法律法规要求。
  • 对象粒度级别的权限控制。
  • 适合各类工作负载的存储类。
  • 方便与其他分析服务整合,如 Amazon Athena、Amazon Redshift 和 Amazon EMR。

AWS 的众多服务都可以和 Amazon S3 无缝结合,如与 Hadoop 分布式文件系统 (HDFS) 兼容,为数据湖的数据注入与摄取提供了强大的支持。

数据处理

数据处理这一部分主要是利用 AWS Glue 来进行处理,AWS Glue 是 ETL 和数据目录服务,它是无服务器架构,仅为作业实际使用的资源付费,方便易用,威力强大,支持自动 schema 发现,具有可视化 ETL 和代码生成和灵活的任务调度程序,是 AWS 大数据处理中非常重要的一个组件。

AWS Glue 主要组件有数据目录、作业编写、作业执行,下面介绍每个组件可以做什么事情:

  • 数据目录

    • Hive 元存储与增强功能兼容
    • 爬网程序自动提取元数据并创建表
    • 与 Athena、Amazon Redshift Spectrum 集成
  • 作业编写
    • 自动生成 ETL 代码
    • 在开源框架上构建,语言为 Python 和 Spark
    • 以开发人员为中心,包括编辑、调试、共享
  • 作业执行
    • 在无服务器 Spark 平台运行作业
    • 提供灵活时间安排
    • 处理依赖关系解析、监控和警报
    • 任务触发方式支持手动触发、定时触发、事件触发,可以和 AWS Lambda 集成

总之,借助 AWS Glue,我们无需再去考虑数据源是什么格式,是结构化还是非结构化,AWS Glue 可以自动智能地进行分析,推断出数据架构,数据类型等等。应对底层数据架构不断发生的变化,如果没有 AWS Glue,数据源结构发生变化,用户需要重新去创建数据目录,这些繁琐的事情现在用户不需要再去关系,AWS Glue 可以统统搞定,数据分析人员可以把更多的注意力放在业务实现方面。

AWS Glue 也具备机器学习的能力,可以帮助用户识别不同的数据集中重复的记录,帮助用户进行数据清理和转换,这个功能不需要用户写一行代码,也不需要具备专业机器学习的算法的能力,只需点击几下鼠标即可实现。

数据分析

在企业里面,一般分析作业都是 BI 报表类型,业务部门把想看的指标告诉数据分析人员,数据分析人员编写 SQL 语句,然后运行结果提供给业务部门查看,但是由于需求的多变和不明确性,这样的过程会反反复复。

这是企业中一个非常典型的场景,但是在实际的使用过程中,客户可能还会需要更加复杂的一些分析手段,比如客户想要通过机器查询、通过 K/V 可以快速地在海量数据中查询需要的结果、想要实现全文检索,或者流式快速对数据进行统计等。

面对以上的问题,我们都可以通过 AWS 提供的服务进行实现。通过 Amazon Redshift 实现交互式查询分析,使用 Amazon EMR 对海量数据进行 ETL 处理和分析,使用 Amazon ElasticSearch 实现全文检索,Amazon Kinesis 实现流式快速数据统计等,借助于 Amazon Athena 可以直接对 Amazon S3 的数据进行 SQL 查询,当下比较流行的机器学习方面也可也借助 Amazon SageMaker 来实现,Amazon SageMaker 可以读取 Amazon S3 中的训练数据,并将训练好的模型回写到 Amazon S3 中。

我们可以看到,在 AWS 数据湖上,这些分析都是通过不同的外部工具来实现,计算由外部的组件实现,存储统一由 Amazon S3 提供,这也是 AWS 数据湖的独特之处,计算与存储分离。

数据展示

数据的采集和生产最终是为了决策,数据的各种分析要求基本已经满足了企业大部分的需求,那这些分析结果如何以可视化的效果展现从而帮助用户决策呢?

在数据展示方面,AWS 也为用户提供了一款采用云技术的快速商业智能服务 Amazon QuickSight,企业用户可以更加便捷、快速低成本地分析数据。

Amazon QuickSight 的定位是连接用户与数据,它是整个 AWS 生态中离商业决策最近的服务,直接解决大数据应用的 “最后一公里” 问题。它不需要用户有代码能力,可自动识别和整合各种不同的数据源,包括与 Amazon RedShift、Amazon S3、Amazon Athena、Amazon Aurora、Amazon RDS、AWS IAM、AWS CloudTrail、Amazon Cloud Directory 等 AWS 服务的原生集成。提供实时交互式的数据查询方式,并且自动进行数据可视化,最大程度降低了商业决策端用户使用大数据的成本。

权限管理

在企业数字化转型的过程中,势必会有很多数据分散在各个地方,这些数据如何统一管理?AWS 给出的答案是需要一个统一的数据目录用来注册和管理数据的元数据信息。在 AWS 搭建一个这样的数据目录并不难,使用 AWS Glue Catalog 可以很方便实现。

但是对于一个集中的数据目录,如何管理权限边界变成了一个问题,AWS 是如何管理权限边界的呢?

AWS Glue Catalog 是通过 AWS IAM 对元数据进行精细化控制的,它可以在整个数据目录级别、数据库级别、表级别对不同的 AWS IAM 用户进行授权,非常灵活方便。这些权限管理可以通过 AWS Lake Formation 来实现,AWS Lake Formation 的权限进一步可以细分为数据资源目录访问权限和底层数据访问权限,分别对应元数据和实际存储的数据。实际存储数据的访问权限又进一步分为数据存取权限和数据存储访问权限。

综上,AWS 数据湖方案成熟度高,特别是元数据管理、权限管理上考虑充分,打通了异构数据源与各类计算引擎的上下游关系,让数据能够自由 “移动” 。在流计算和机器学习上,AWS 的解决方案也比较完善。在流计算方面,AWS 推出了专门的流计算组件 Amazon Kinesis,同时 Amazon Kinesis 还可以访问 AWS Glue 中的元数据,这一点也充分体现了 AWS 数据湖解决方案在生态上的完备性。

三、在 AWS 上构建数据湖

至此,围绕着数据湖 AWS 提供整个一套大数据解决方案,那么在每个阶段中,不同的数据类型和不同的分析需求应该如何满足,应如何调度和管理一个数据分析的应用呢?

如果我们在 AWS 上面一步步配置的话,那会变得非常困难,毕竟 AWS 围绕数据库有如此众多的服务,服务之间的关联和权限配置变得很复杂,这时候就需要一个工具来帮助用户把这些问题都搞定,AWS Lake Formation 可以帮助用户快速地搭建数据湖,并且也引入了安全管理机制,真正地帮助用户把数据湖保护起来。

说了这么多,那下面我们使用 AWS Lake Formation 去构建一个数据湖吧。

上图是一个数据湖的架构图,我们将准备两份数据 sales 和 customers,会使用 AWS Glue 来存取数据的元数据,在使用 AWS Lake Formation 赋予用户 salesuser 和 customersuser 使用这两个数据表,最终他们将通过 Amazon Athena 来查询需要的数据。

准备数据和用户

我们准备了两个数据文件,下面把他们各自的字段列举一下:

  • customers:{CUSTOMERID, CUSTOMERNAME, EMAIL, CITY, COUNTRY, TERRITORY, CONTACTFIRSTNAME, CONTACTLASTNAME}
  • sales:{ORDERNUMBER, QUANTITYORDERED, PRICEEACH, ORDERLINENUMBER, SALES, ORDERDATE, STATUS, QTR_ID, MONTH_ID, YEAR_ID, PRODUCTLINE, MSRP, PRODUCTCODE, DEALSIZE, CUSTOMERID}

同样我们也会创建两个用户,分别是 salesuser 和 customersuser,并赋予相应的权限:

  • salesuser:可以查看表 sales 的所有列。
  • customersuser:只可以查询表 customers 的 CUSTOMERNAME, EMAIL 列。

下面开始让我们创建吧。

创建 AWS IAM 用户

创建用户这里有几个注意事项,我们创建的用户是需要可以登录 AWS Console 控制台,用户赋予以下几项权限:AmazonS3FullAccess, AmazonAthenaFullAccess, CloudWatchLogsReadOnlyAccess, AWSCloudFormationReadOnlyAccessAWSGlueConsoleFullAccess

创建 AWS IAM Role

因为 AWS Glue crawler 需要从 Amazon S3 中爬取元数据,所以需要给 AWS Glue 创建一个 Role,赋予 PowerUserAccess 的策略。

创建 Amazon S3 Bucket

为数据湖创建一个 Amazon S3 Bucket,命名为 wzlinux-datalake,然后把数据上传到上面,因为测试环境,我们手动上传这些数据,生产环境都是自动上传更新数据。

在 Bucket 里面创建两个文件夹 datascriptdata 这个文件夹主要是存放数据湖数据,script 文件夹后面 Amazon Athena 会使用,作为 Amazon Athena 查询结果输出位置。

data 目录下面,创建两个文件夹,一个是 sales,一个是 customers ,把各自的 csv 文件传到其中。

配置数据湖

打开 AWS Lake Formation 控制台,赋予使用的 AWS IAM 用户 administrators 权限。

在 Databases 里面,添加刚刚创建的存储桶作为数据库,用作数据目录,后面会用 AWS Glue 爬取,如下图:

下一步来到 Data Lake locations,把创建的 Amazon S3 作为数据湖存储。

爬取数据目录

数据湖中的所有数据都需要被数据目录所记录才可以使用,数据目录可以使用 AWS Glue 来爬取创建,下面我们配置数据目录爬取任务。

选择刚刚创建的数据目录 wzlinux-db,并赋予其爬取 Amazon S3 数据的权限。

权限设置如下。

然后找到 Crawlers,添加一个 Crawlers

添加 Amazon S3 数据存储的目录。

选择创建好的角色。

选择在 AWS Lake Formation 创建好的数据库作为输出目录。

创建完成之后,运行我们的爬网程序。

爬取完成之后,我们就可以去 AWS Lake Formation 里面去查看数据目录了,可以看到多了两张表。

赋予用户权限

目前数据湖的数据目录我们已经创建好了,现在我们分别赋予用户对数据目录的操作权限,以满足我们开始的要求。

  • salesuser:可以查看表 sales 的所有列。
  • customersuser:只可以查询表 customers 的 CUSTOMERNAME, EMAIL 列。

首先为 salesuser 添加权限,找到 Sales 表,选择 Grant 按钮,添加权限。

同样的方式赋予 customersuser 权限。

权限授权好了,那我们可以分别登陆这两个用户进行数据查询验证。

数据查询验证

首先我们登陆 salesuser 用户验证测试,我们可以看到所有的表。

在查询之前,我们需要做一个设定,配置一下结果输出,这也就是之前创建的 script 目录。

然后我们开始查询,结果和我们设定的一样,可以查看所有的列数据。

 SELECT * FROM "wzlinux-db"."sales" limit 10;

现在我们登陆另外一个用户查看,只可以看到我们分配的两个列。

同样的进行数据查询,查看一下结果,和开始的设定也一样。

可以看到,所有的测试结果和之前预期的一样,通过整个实验过程,我相信大家对 AWS Lake Formation 如何规范化数据湖有了一定的了解。

这么好的工具,你现在是否也想体验一下呢,目前 AWS Lake Formation 在中国区的北京区域也已经上线,欢迎大家去使用体验 AWS 数据湖的方便之处。

四、经验总结

  • 我个人觉得 AWS 在数据湖方面最好的就是计算存储分离,AWS Glue Data Catalog 维护所有存储/查询系统的元数据,实现计算和存储分开,计算按量付费,节省资源,各种计算模型可以直接从 Amazon S3 中获取数据进行分析,使得计算资源可以动态扩展以响应业务的变化。
  • Amazon S3 作为数据的存储,成本较 Amazon EBS 有巨大的优势,同时还获得了更高的数据持久性和可靠性。
  • 大数据的最终目的是为了机器学习提供能具备生产力的模型。
  • 一个公司中大数据部门真正的价值是产出产品价值,并非一个报表部门自己造轮子。
  • 数据的统一化方便进行前期特征处理和分析任务。
(0)

相关推荐

  • 动辄数百TB级数据的分析平台 海量并发无压力

    继续整理诸葛io创始人&CEO孔淼在AWS技术峰会2017上的演讲< 数据驱动企业商业价值增长>下篇,上篇传送门 今天重点解读诸葛io技术架构的优势以及大数据分析模型. 1.&qu ...

  • 终于集齐“全家桶”!AWS新存储服务在中国上线

    2020年肆虐全球的新冠疫情在给全世界按下暂停键的同时,也让无数世人有目共睹:越是数字化转型做得较好的企业,在应对疫情时的反应越是快速.灵活,在复工复产时的表现也越是迅捷.突出.一时间,数字经济和数字 ...

  • 坚持创新、坚持务实,是AWS在re:Invent上透露的成功秘诀

    "十年前,全球十大企业级IT公司的营收榜上还看不到我们的名字,十年后,我们已经在这份榜单上做到了第五名,而当初的一些上榜企业如今却已经难觅踪影." 2020年12月2日,当一年一度 ...

  • 数据库有哪些类型?如何根据应用场景选择?终于有人讲明白了

    引言 如今,数据作为生产要素重要性已不言而喻,数据能力成为企业必不可少的核心能力之一,作为企业数字化转型重要的一环,我们依然迫切需要数据库来帮助存储和操作这些数据,充分有效地管理和利用各类数据资产.数 ...

  • 亚马逊云如何重塑世界?

    作者:董指导 出品:远川研究所科技组 美国有两个大会,格外受国内从业人士关注,一个是伯克希尔哈撒韦的股东大会,投资人士踊跃前往聆听股神巴菲特的经验智慧:另一个则是亚马逊云服务(AWS)的re:Inve ...

  • 云计算给汽车带来了哪些改变?

    "上云是常态,不上云是例外",早在几年前,云计算就成了行业热词.2018年7月,工信部印发<推动企业上云实施指南(2018-2020年)>,上海.广东.浙江等各省市也相 ...

  • 【有奖征文】数据分析那些事儿——论服务评价满意度

    作为国网客服中心一名客服专员,客户的满意度是对客服专员服务质量的最好评判标准,那么如何才能对客户服务评价满意度进行合理全面的分析呢?这方面来说,数据分析专员有一手. 一.从人员群体中找"个性 ...

  • 殡葬业推出新服务:收集逝者DNA遗产,给下一代提

    殡仪员已习惯裁剪逝者的一绺头发给家属留作纪念,然而,采集逝者DNA样本是否将成为他们下一个常规动作? 英国殡葬业推出新项目:收集逝世者DNA遗产 英格兰和苏格兰四家葬礼公司推出了一个DNA服务项目,旨 ...

  • iOS 14.6 RC 版发布,苹果新服务来了

    今天凌晨苹果发布了 iOS 14.6 RC 版更新,版本号为 18F71. RC 版也就是发布候选版,虽然仍属于测试版范畴,但通常和正式版内容一致,是正式版发布前的最后一个测试版. 已经安装了 iOS ...

  • 联通推出公益新服务,连《焦点访谈》都报道了!

    9月24日,中央电视台<焦点访谈>节目,特意制作.播出<提防黑客来"敲门">,针对时下热议的电信网络诈骗问题进行了解读和剖析. 请看 ▼ 联通新近推出的&q ...

  • 新!联通推出“夜间出诊”新服务!上门“出诊”来了!

    "喂,是怀化联通客服热线吗?我家里的宽带用不了,你们可以来人修一下吗?"12月8日晚上7点多钟,湖南联通怀化市分公司客服热线接到"求助"电话:"好,请 ...

  • 【有奖征文】数据分析的那些事

    小曼原先是10000号的一名普通客服代表,这个星期刚调到数据分析岗.刚到岗位,她的领导玲姐就给她发了几份电子表格,叫她先做做看. 她每天一上班就调数据,调好多的数据,感觉晚上做梦都梦到自己在调星级接通 ...

  • 【有奖征文】365“心”服务

    "一年有三百六十五个日出,我送你三百六十五个祝福",上班路上的我耳畔一直在单曲循环蔡国庆这首老歌,正如歌里唱的一样,山东ETC客服呼叫中心365天陪伴在您的身边,为每一位用户提供专 ...

  • 互联网财险迷局待破:新产品、新服务、新渠道是关键

    保观 | 聚焦保险创新 我们在上周的文章<财险走弱.年金险强势.动力转换:互联网保险的分化与挑战>中给大家简要分析了2020年的互联网财险以及人身险市场,对于互联网财险市场来说,过去的一年 ...

  • 最低309元,老手机容量翻倍!华为推出新服务,余承东说到做到

    在6月2日的华为发布会上,除了发布鸿蒙系统之外,余承东还提出将专门针对用户提出更高级的售后服务,让手机常换常新.余承东在会上举例说比如手机的关键部件换新会有优惠价格,甚至还会推出定制化的服务,比如玻璃 ...