亚马逊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

使用 Amazon Kinesis Firehose、AWS Lambda 和 Amazon Elasticsearch Service 摄取、聚合和可视化 Apache 日志的无服务器扩展

2016 年,AWS 推出了EKK 堆栈(Amazon Elasticsearch Service、Amazon Kinesis 和 Kibana),作为 ELK(Amazon Elasticsearch Service、开源工具 Logstash 和Kibana)的替代品,用于提取和可视化 Apache 日志。EKK 堆栈的主要功能之一是通过 Amazon Kinesis Firehose 代理处理数据转换。在本文中,我们将介绍如何优化 EKK 解决方案 — 通过 AWS Lambda 处理 Amazon Kinesis Firehose 中的数据转换。

Read More

利用Amazon Redshift构建新一代数据分析BI系统

本文主要介绍了Amazon Redshift新一代企业级云平台数据仓库服务,并结合实际的客户使用案例与场景描述了如何基于Amazon Redshift构建高可靠,性能优化,并且成本节约的数据仓库系统。因为Amazon Redshift优异的计算效率与性能,基于Amazon Redshift的BI系统被广泛地应用于互联网数据分析类场景,例如电商中产品维度报表的计算生成,社交类应用中用户画像计算与分析,或者用于替代传统的数据仓库的解决方案。 Amazon Redshift是性能优异并且完全托管的PB级别数据仓库服务。Amazon Redshift提供了标准SQL数据库访问接口,并且可以十分方便地与现有的主流商业智能数据分析工具整合,构建企业级数据仓库。 Amazon Redshift高性能硬件架构 Amazon Redshift底层硬件是基于高度定制化的高性能硬件节点,整个集群是由头节点(leader node,又称领导节点)与计算节点(compute node)的架构组成,如图1所示。其中,头节点负责与所有的客户端程序(标准SQL兼容的客户端,或者通过JDBC/ODBC访问的客户端应用)进行通信,并把对应的SQL命令进行编译后分发给底层的计算节点。同时,头节点还负责存储所有的数据仓库元数据(metadata)。需要注意的是,所有的计算节点同时也是存储节点(单个节点最大支持2TB的存储量)。每个计算节点上配置有定制化的高性能CPU、内存及直接连接硬盘的存储介质。当用户数据仓库的数据量增加的时候,可以通过动态地增加计算节点的数目,以及升级对应计算节点的硬件配置提升集群的存储容量与计算能力。同时,节点与节点的通信是基于AWS定制化的高速内网带宽,减少了因为数据传输带来的时延,提高了计算效率。 图1 Amazon Redshift架构示意图 目前,Amazon Redshift主要支持两大类计算节点类型——DS1/DS2与DC1。其中DS类型节点是为大数据量的工作复杂优化而设计,而且DS2是DS1的硬件升级版本。DC1主要应用于数据计算要求相对更高但是数据总量相对较小的场景。 从应用的角度结合上述架构看,Amazon Redshift的头节点负责基本的SQL编译,查询计划的优化,以及数据仓库原数据的存储。所有的用户数据会以列式存储的方式存放与计算节点之上。因为大部分数据仓库的应用计算围绕于具体的属性列做查询筛选,所以列式存储的计算方式大大提高了数据仓库的计算效率。同时,以MPP的架构组织数据为例,Amazon Redshift也从表设计的角度为用户提供了数据在计算节点的存放方式,用户可以根据具体的SQL表中的键值做分布式存放,或者对某些常用维度表做所有计算节点的全分布存放,从而大大减少数据在节点之间的传输,以提高整体的计算效率。从图1还可以看到,计算节点以MPP的方式并行的从Amazon S3、Amazon DynamoDB、SSH及Amazon EMR并发的实现数据快速加载。另外,Amazon Redshift的整体设计实现了数据的多份冗余存放(对用户使用量透明)——计算节点之间冗余存放,同时定期对数据以增量快照的方式存放于高持久度的Amazon S3之上。 基于Amazon Redshift的BI大数据分析架构 Amazon Redshift针对数据仓库提供了优异的计算与存储效率,利用Amazon Redshift托管服务可以十分方便地构建智能数据仓库系统。同时,因为AWS云计算平台提供了一整套完整的数据分析套件与工具,利用这些组件与Amazon Redshift相结合,可以十分轻松地实现性能优化、成本经济、可靠性强、安全度高的大数据分析架构。图2为一个典型的数据分析平台的基础数据架构。 图2 基于AWS数据分析组件的数据架构 图2中的架构是基于AWS的典型的实时与批量叠加的大数据分析架构。其中Amazon Kinesis是托管的高速实时流分析服务,可以从前端的应用服务器(例如Web服务器)或者移动的客户端(手机等移动设备或者IoT设备)直接注入流式数据,数据可以通过EMR进行流式处理和计算(例如基于Spark Stream的EMR计算框架),并将数据存储于Amazon DynamoDB或者对象存储S3之上。其中,Amazon DynamoDB是托管的高性能NoSQL数据库,可以承载100TB数据量级别而响应时间低于10毫秒。S3作为高可靠(11个9的持久度)的对象存储,在大量的AWS应用场景中,被作为典型的数据湖(data lake)的应用。利用Amazon EMR对S3上的原始数据进行基本的ETL或者结构化操作之后,可以直接从S3以SQL的“copy”命令复制到Amazon Redshift数据仓库中进行SQL的维度计算。另外,可以利用AWS集成的BI分析工具(Quick Sight)或者已有的商业套件直接实现对Amazon Redshift上的数据进行分析与展示。 在实际的业务场景中,数据库的来源包含Amazon DynamoDB或者Amazon RDS这类业务数据库,以及用户活动日志或者行为日志等Web前端日志。这些数据需要以增量的方式汇聚于AWS S3及ETL之后进入到Amazon Redshift之中。常用的做法,可以利用AWS的Data Pipeline服务直接定义对应的原端数据源及对应的后端数据目标,自定义采集周期,一次性配置之后就可以直接进行数据通路的增量拷贝。 小红书电商基于Amazon Redshift的用户数据分析 小红书是新一代的社区电商,它将海外购物分享社区与跨境电商相结合,精准捕捉85后和90后的消费升级需求,迅速发展成为极具影响力的全球购物分享社区。目前小红书的注册用户数量已超过1800万,其中近90%是女性、超过50%是90后。作为新一代消费人群,这些用户有着共同的价值观,更注重感觉和体验,对优质商品和生活充满向往。“社区+电商”的模式推动了小红书的快速发展,在电商平台成立的半年内,其销售额就达到7亿人民币。 与小红书自身高速发展的业务模式一样,小红书的数据架构与数据分析团队也经历了从基本日志服务器脚本分析到目前利用Amazon […]

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