亚马逊AWS官方博客

Tag: 分析

使用 Amazon EMR 6.0.0(测试版)在 Docker 上运行 Spark 应用程序

Amazon EMR 团队很高兴宣布支持 Spark 2.4.3、Hadoop 3.1.0、Amazon Linux 2 和 Amazon Corretto 8的EMR 6.0.0 的公开测试版已经推出。在这个测试版中,Spark 用户可以使用 Docker Hub 和 Amazon Elastic Container Registry (Amazon ECR) 中的 Docker 镜像来定义环境和库依赖项。使用 Docker,用户可以轻松管理依赖项并将其用于单个作业,而无需在集群的各个主机上安装依赖项。

Read More

通过 EMR Notebooks 在运行的集群上安装 Python 库

本博文将讨论如何通过 EMR Notebook 直接在正在运行的集群上安装笔记本范围的Python库。在此功能推出之前,您必须依赖Bootstrap引导操作或使用自定义 AMI 来安装预置 EMR AMI 没有预先打包的其他库。接下来,博文还将讨论如何使用 EMR Notebooks 中本地可用的预安装 Python 库来分析结果并绘制图表。此功能在您无法访问 PyPI 存储库但需要分析和可视化数据集的情况下非常有用。

Read More

使用 Apache Flink 和 Amazon Kinesis Data Analytics for Java 应用程序构建和运行流应用程序

流处理有助于实时数据的收集、处理和分析,并能够持续生成见解和快速响应新出现的情况。当派生见解的值随时间减少时,此功能非常有用。因此,您对检测到的情况反应越快,反应就越有价值。例如,考虑一个可以在欺诈性信用卡交易发生时对其进行分析和阻止的流应用程序。将该应用程序与传统的面向批处理的方法相比较,该方法在每个工作日结束时识别欺诈性交易,并生成一份供您在次日早上读取的全面报告。

Read More

Amazon S3 对象的 Amazon Kinesis Data Firehose 自定义前缀

2019 年 2月,Amazon Web Services (AWS) 宣布了 Amazon Kinesis Data Firehose 的一项称为“Amazon S3 对象自定义前缀”新功能。它允许客户为传输数据记录的 Amazon S3 对象的前缀指定自定义表达式。 之前,Kinesis Data Firehose 仅允许指定部分文字前缀。新支持的前缀可以与静态日期格式的前缀结合使用,以创建固定格式的输出文件夹。

Read More

如何在1个小时之内轻松构建一个Serverless 实时数据分析平台

数据分析平台,特别是实时数据分析,正在被越来越广泛的应用于各个行业。 举例来说,游戏公司在发布新游戏之后,需要实时定位用户的留存、增长等情况;快销公司需要精确地记录每一笔订单的情详情,并结合社交媒体,实时分析促销活动引起的用户购买行为与销量等等。基于这些需求, AWS提供了一整套成熟的解决方案与服务,并且得到了广泛的应用。 图1 AWS大数据参考架构示例 上图中,Amazon Kinesis 是实时的流式分析服务,而Amazon S3是AWS的海量数据存储服务。利用Kinesis与S3,我们可以十分方便的构建一个实时流式信息数据的采集与存储。 值得注意的是,作为Serverless计算服务的代表 , 用户只需要编写实现对应的ETL逻辑,Amazon Lambda就可以非常方便地对Kinesis流式数据进行抽取与分析而不需要部署任何服务器。另外,用户也可以使用Kinesis Firehose(Kinsis服务之一)实现原始数据的直接注入与收集。 随着Amazon Athena在AWS re:Invent 2016的重磅发布,AWS的大数据平台又增添了重要的一员!Amazon Athena 是一种交互式查询服务,用户可以使用标准SQL 分析 Amazon S3 中的数据。因为Athena底层是基于Serverless(无服务器)架构,用户不需要运维底层的服务器,并且查询处理能力会随着用户的数据将进行自适应与扩展,实现秒级别的数据查询与处理。 闲话少说,我们将利用AWS提供的三个重要服务——Amazon Kinesis Firehose,、Lambda和Athena在1个小时之内实现一套实时分析的Serverless数据分析平台! 准备好了吗?Let’s rock 1.数据源。作为测试,我们将对AWS VPC Flow Logs进行分析。您可以使用Kinesis Agent/Flume/Fluentd或者Amazon Kinesis SDK对前端的实时日志进行分析。Amazon VPC Flow Logs将实时记录VPC监控的网络端口的流量与通信日志,并将日志发布于AWS CloudWatch Logs。详细的配置请参见 https://aws.amazon.com/cn/blogs/aws/vpc-flow-logs-log-and-view-network-traffic-flows/ 2.数据ETL。VPC Flow Logs进入CloudWatch Logs之后,可以利用Lambda对实时日志进行订阅处理。订阅之后,Lambda会在CloudWatch Logs更新之后,自动调用执行,进行数据ETL。 首先,在控制台创建一个Lambda函数(利用Python实现).为了确保Lambda有对应的执行权限,需要赋予Lambda函数相应的Permission Role.在这个示例中,我们只需要服务Lambda对应的CloudWatch Logs以及Kinesis Firehose的权限即可。 其次,Lambda 代码会对进入的CloudWatch日志的第一个Base64编码的转码并进行gzip解压(因为Cloudwatch Logs会对送往Lambda首先进行Base64编码并进行gzip压缩)。之后,Lambda会对具体的日志进行汇聚,以batch的方式发送给Kinesis Firehose。具体的代码如下: […]

Read More

Amazon QuickSight全面上线——更快更易用的大数据商务分析服务

经过超过1500家企业级客户(包括初创企业及全球化大公司)的预览之后,我兴奋地向大家宣布,Amazon QuickSight目前已经正式上线!在去年发给大家的预览版本邀请当中,我曾经写道: 过去,商务智能一直是一项需要投入巨大时间与精力之后才能实现的工作。大家需要承担相关成本,设置并运行基础设施及软件,管理规模化体系(而用户往往因此受到负面影响)并投入大量资金招聘顾问以进行数据模拟。即便如此,您的用户仍然要在复杂的用户界面中挣扎,而且渴望能能在移动设备上探索数据却无法被满足。打算访问NoSQL与流数据?只能说祝大家好运了! Amazon QuickSighthttps://quicksight.aws/能够为大家提供速度可观、易于使用的云支持型商业分析方案,且其实现成本仅为传统内部解决方案的十分之一。QuickSight允许大家在数分钟之内开始操作。您只需要进行登录、指定数据源,而后即可对数据进行可视化处理。在场景之下,SPICE(即超高速、并行、内存内计算引擎)将以迅如闪电的速度运行您的查询请求,并提供极为出色的数据可视化成果。 深入挖掘数据 在与客户的交流当中我们深切感受到:每位客户都表示希望能从其存储的数据当中获取更多价值。他们意识到,如今蕴含于数据当中的潜在价值正愈发显露。但同时,他们又失望地得知:发现并提取这些价值,需要高昂成本且实现难度极大。内部商业分析工具的使用许可会带来大量开销,同时给现有基础设施造成沉重的负载压力。许可成本与工具复杂性制约着用户群体,事实上只有少数专家能够顺畅使用这些方案。综合来讲,上述因素共同导致大多数企业认为:自己尚没有准备好投资构建一套真正的商业分析功能组合。 QuickSight的构建目标正在于此!它能够以“服务”形式运行,并将商业分析能力交付至任意规模与形式的企业客户手中。其速度极快且易于使用,不会给现有基础设施带来额外运行负担,同时可以每用户9美元的低廉价格,按月进行付费。 上手之后,大家会发现QuickSight允许大家对存储在多种不同服务及位置的数据进行处理。大家可以直接使用来自Amazon Redshift数据仓库、Amazon关系型数据库服务(简称RDS)中各关系数据库以及S3内的普通文件。大家亦能够使用一系列连接器以访问存储于内部MySQL、PostgreSQL以及SQL Server数据库、微软Excel电子表格、Salesforce乃至其它服务中的数据。 QuickSight在设计当中亦充分考虑到客户的扩展需求。大家可以随时添加更多用户、数据源以及数据集,同时无需购买任何长期许可或者向数据中心内添加更多硬件设备。 马上开始 下面我们将展开一番QuickSight游历。由于已经得到管理员的许可,所以我可以直接登录QuickSight并开始操作。以下为QuickSight的主界面: 我首先选择从Redshift集群当中提取数据。这里点击Manage data并查看我的现有数据集: 我没有看到我所需要的数据集,所以点击New data set并查看相关选项: 而后点击Redshift(手动连接)并输入登录凭证,这样即可访问我的数据仓库(如果该Redshift集群运行在我的当前AWS账户之内,则可自动发现此来源): QuickSight会查询该数据仓库并显示相关模式(表组)以及当前可用的表。这里我选择public模式以及all_flights表作为示例: 现在我拥有两个选项。我可以将表提取至SPICE进行快速分析,亦可直接对其进行查询。这里我选择将其提取至SPICE: 这里还是两个选项。我可以点击Edit/Preview data(编辑/查看数据)并选择需要导入的行及列,亦可点击Visualize(可视化)导入全部数据并对其加以处理。这里我选择Edit/Preview。可以看到各字段(图片左侧),而后我可以利用勾选框仅选定自己感兴趣的部分: 另外,我也可以点击New Filter(新过滤器),从弹出菜单内选定一个字段,而后创建一套过滤机制: 两个选择(选择字段以及按行过滤)都允许我控制需要提取至SPICE的具体数据。通过这种方式,我可以控制需要进行可视化处理的数据,亦能帮助我更为高效地利用内存资源。在做好处理准备之后,我点击Prepare data & visualize(准备数据&可视化)。这时,数据会被加载至SPICE当中,而我则可随时对其进行可视化处理。我简单选择了一个字段作为演示。举例来说,我可以选择origin_state_abbr字段并查看各州拥有多少航班: 右侧的缩短视图能够为我提供一些额外上下文信息。我可以上下滚动或者选定需要显示的值区间。我也可以点击次级字段以了解更多信息。这里我点击flights,将排序设置为descending(降序),而后滚动至顶部。现在,我可以查看数据中由每个州起飞的具体航班了: QuickSight的AutoGraph功能会自动根据所选定的数据生成一份对应的可视化图表。举例来说,如果我添加fl_date字段,则会得到一份以时间为轴的各州航班数量图表: 根据我的查询、数据类型以及数据属性,QuickSight还能够提供其它可视化选项: 我还能够自行选择多种视觉类型,包括纵向&横向条形图、线图、透视图、树状图、饼状图以及热度图等: 在完成可视化图表的创建之后,我可以捕捉图表内容并利用结果故事板构建对应的数据驱动型故事: 我亦能够将自己的可视化成果共享给其他同事: 最后,我的可视化成果可通过自己的移动设备进行查看: 价格与SPICE容量 QuickSight永久提供一个免费用户与1 GB免费SPICE容量。这意味着每一位AWS用户都能够在无需承担任何成本的前提下分析数据并获取商业洞察结论。Amazon QuickSight的标准版起步价格为每月9美元,其中包含10 GB SPICE容量(请参阅QuickSight Pricing页面以了解更多细节信息)。 SPICE容量管理工作非常轻松易行。我只需要在菜单当中点击Manage QuickSight即可(当然,必须具备ADMIN角色方可执行修改): 而后我可以看到自己的当前容量状态: 我可以点击Purchase more capacity(购买更多容量): 我也可以点击Release unused purchased capacity(释放未使用的已购容量),从而削减我当前拥有的SPICE容量: 已经全面上线 […]

Read More

手把手教你使用Amazon EMR进行交互式数据查询

本文将带您一步步完成一个利用Amazon EMR进行交互式数据查询的实例,过程包括数据的注入、数据的分析、结果的转存、以及将整个过程自动化的方法。其中涉及的EMR组件主要包括: Hive, Hadoop, presto, sqoop。除EMR外,涉及到的其他服务包括:S3, RDS. 本文所使用的数据源是cloudfront产生的日志。 在按照本文档进行操作之前,读者需了解S3,RDS并能够进行基本的S3,RDS的操作,读者需了解EMR的基本概念。以下是参考资料: 什么是EMR: Amazon Elastic MapReduce (Amazon EMR) 是一种托管数据分析服务的框架,提升企业、研究人员、数据分析师和开发人员轻松、经济高效掌控海量数据的能力。其当前版本中托管的服务包括:Hadoop, Zeppelin, Tez, Ganglia, HBase, Pig, Hive, Presto, ZooKeeper, Sqoop, Mahout, Hue, Phoenix, Oozie, Spark, Hcatalog. EMR让您专注于数据分析,无需担心费时的集群设置、管理或调整,也无需担心所需要的计算能力。 具体参考: https://aws.amazon.com/cn/documentation/elastic-mapreduce/ 什么是S3: Amazon Simple Storage Service (Amazon S3) 为开发人员和 IT 团队提供安全、耐用且高度可扩展的对象存储。S3 可为EMR提供文件存储服务。 具体参考:https://aws.amazon.com/cn/documentation/s3/ 什么是RDS: Amazon Relational Database Service (Amazon RDS) 是一种可让用户在云中轻松设置、操作和扩展关系数据库的 Web […]

Read More

AWS Kinesis的Javascript交互方法

一.介绍 Amazon Kinesis 是一种托管的弹性可扩展服务,能实时处理大规模的流数据。在该服务收集大数据记录流后,可用多种数据处理应用程序实时处理该数据流。Amazon Kinesis Streams 每小时可从数十万种来源中连续捕获和存储数 TB 数据,如网站点击流、财务交易、社交媒体源、IT 日志和定位追踪事件。Amazon Kinesis Streams 数据流的吞吐量每小时可从数 MB 扩展到数 TB,PUT 记录每秒钟可从数千次扩展到数百万。您可以随时根据您的输入数据量动态调节数据流的吞吐量。 AWS为旗下的服务提供了多种开发工具包,支持包括Java、PHP、Python、Ruby、浏览器端等语言或平台。对于Amazon Kinesis,我们除了使用上述的Stream API进行开发外,AWS还提供了Amazon Kinesis Client Library (KCL) 开发适用于 Amazon Kinesis Streams 的使用器应用程序。在本文当中,我们展示如何使用Javascript在浏览器端与Amazon Kinesis进行交互,包括把记录Put到Kinesis,和从Kinesis读取记录。 二.基本概念与限制 在阐述如何AWS Kinesis的Javascript交互方法前,我们有必要对Kinesis Stream当中的关键概念——“分片”和“数据记录”作初步的了解。 分片 分片Share是流中数据记录的唯一标识组。一个流由一个或多个分片组成,每个分片提供一个固定的容量单位。流的总容量是其分片容量的总和。每个分片对应提供 1 MB/s 的写入容量和 2 MB/s 的读取容量。需要注意的是,每个分片可支持最多1000条记录/s的写入,和5个事务/s的读取。用户需要根据上述的容量和数目的限制,为流添加足够多的分片数目,以满足自身需求。 数据记录 数据记录是存储在 Amazon Kinesis Stream中的数据单位。数据记录由序列号、分区键和数据 Blob 组成。 每个数据记录都有一个唯一的序列号。当应用程序对Amazon Kinesis Stream进行写入记录时,Streams将自动为其分配序列号。同一分区键的序列号通常会随时间变化增加;写入请求之间的时间段越长,序列号则越大。但需要注意的是,序列号不能用作相同流中的数据集的索引。用户如果需要在逻辑上分隔数据集,请使用分区键或为每个数据集创建单独的流。 分区键Partition Key用于按分片对流中的数据进行分组。Streams 服务使用与每条数据记录关联的分区键将属于流的数据记录分为多个分片,以便确定给定的数据记录所属的分片。分区键是最大长度限制为 […]

Read More