提升数据分析效率:Amazon S3 Express One Zone数据湖实战教程

  • 前言
    • 什么是 Amazon S3?
    • 什么是 S3 Express One Zone?
  • 实现概述
    • 技术架构组件
  • 实现步骤概览
    • 第一步:构建数据湖的基础
    • 第二步:选择并查看数据集
    • 第三步:在 Athena 中搭建架构
    • 第四步:数据转换与优化
    • 第五步:查询和验证数据
    • 第六步:将更多数据添加到表
    • 第七步:性能和成本效益分析
    • 体会
  • 结语
  • 附录

提升数据分析效率:Amazon S3 Express One Zone数据湖实战教程

(声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区、知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道)

前言

Hello,我是 Maynor。

近日受邀写一篇关于亚马逊云科技 re:Invent 大会新品发布的产品测评,于是有了这篇文章,以下是我对 S3 Express One Zone 的测评:

什么是 Amazon S3?

Amazon Simple Storage Service (Amazon S3) 是一种对象存储服务,提供业界领先的可扩展性、数据可用性、安全性和性能。各种规模和行业的客户都可以使用 Amazon S3 来存储和保护各种用例的任意数量的数据,例如数据湖、网站、移动应用程序、备份和恢复、存档、企业应用程序、物联网设备和大数据分析。Amazon S3 提供管理功能,以便可以优化、组织和配置对数据的访问,以满足的特定业务、组织和合规性要求。

什么是 S3 Express One Zone?

img
img

简单说: S3 Express One Zone 就是能够存储任何文件的服务器,无论是音频视频文件,还是结构化或非结构化数据统统都能存下,存储读取的速度还贼快~

实现概述

在这个数字化时代,数据湖已成为企业收集、存储和分析大规模数据集的关键资源。Amazon Web Services 提供了一系列强大的工具,使构建和管理数据湖变得既简单又高效。接下来,我将深入探索如何利用 S3 Express One Zone、Amazon Athena和Amazon Glue 来打造一个高性能且成本效益显著的数据湖。 alt

技术架构组件

• S3 Express One Zone:作为数据湖的底层存储,提供低成本的存储选项。

• Amazon Athena:用于查询存储在 S3 Express One Zone 中的数据。

• Amazon Glue:数据目录和 ETL 作业。

技术架构如图所示:

img
img

实现步骤概览

alt

第一步:构建数据湖的基础

S3 Express One Zone 登录链接: https://s3.console.aws.amazon.com/s3/buckets

点击创建桶:

img
img

点击第二个选项,创建目录 -新

img
img

确定数据存储只存储在单个可用区中

img
img

第二步:选择并查看数据集

本示例使用 NOAA 全球历史气候网络日报 (GHCN-D)数据,数据存储在 amazon s3 对象存储中,我们只需要拉取即可:

aws s3 ls s3://aws-bigdata-blog/artifacts/athena-ctas-insert-into-blog/ img

第三步:在 Athena 中搭建架构

在 Athena 控制台中执行查询。首先,为此创建一个数据库:

CREATE DATABASE blogdb

现在,根据上面的数据创建原始 CSV 格式的外部表。

CREATE EXTERNAL TABLE blogdb.original_csv (

 id string,

 date string,

 element string,

 datavalue bigint,

 mflag string,

 qflag string,

 sflag string,

 obstime bigint)

ROW FORMAT DELIMITED

 FIELDS TERMINATED BY ','

STORED AS INPUTFORMAT

 'org.apache.hadoop.mapred.TextInputFormat'

OUTPUTFORMAT

 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'

LOCATION

 's3://aws-bigdata-blog/artifacts/athena-ctas-insert-into-blog/'

第四步:数据转换与优化

现在,使用 Snappy 压缩将数据转换为 Parquet 格式,并每年对数据进行分区。所有这些操作都是使用 CTAS 语句执行的。就本博客而言,初始表仅包含 2015 年至 2019 年的数据。可以使用 INSERT INTO 命令向该表添加新数据。

刚才创建的表有一个日期字段,日期格式为 YYYYMMDD(例如 20100104),新表按年份分区,使用 Presto 函数 substr(“date”,1,4) 从日期字段中提取年份值。

CREATE table new_parquet

WITH (format='PARQUET'

parquet_compression='SNAPPY'

partitioned_by=array['year'],

external_location = 's3://datalakedemo110/optimized-data/')

AS

SELECT id,

​     date,

​     element,

​     datavalue,

​     mflag,

​     qflag,

​     sflag,

​     obstime,

​     substr("date",1,4) AS year

FROM original_csv

WHERE cast(substr("date",1,4) AS bigint) >= 2015

​    AND cast(substr("date",1,4) AS bigint) <= 2019
img
img

耗时 23 秒,加载数据 11.35GB,可以说相当的快! alt

img
img

第五步:查询和验证数据

点击控制台,查看是否有数据:

img
img

输入命令,查询分区(文件夹):

aws s3 ls s3://datalakedemo110/optimized-data/

成功查询到 15 年至 19 年的分区:

img
img

输入命令,查询文件:

aws s3 ls s3://datalakedemo110/optimized-data/ --recursive --human-readable | head -5

成功查询到 15 年至 19 年的分区里的文件:

img
img

第六步:将更多数据添加到表

现在,将更多数据和分区添加到上面创建的新表中。原始数据集包含 2010 年至 2019 年的数据。由于使用 CTAS 添加了 2015 年至 2019 年,因此现在使用 INSERT INTO 语句添加其余数据:

INSERT INTO new_parquet

SELECT id,

​     date,

​     element,

​     datavalue,

​     mflag,

​     qflag,

​     sflag,

​     obstime,

​     substr("date",1,4) AS year

FROM original_csv

WHERE cast(substr("date",1,4) AS bigint) < 2015
img
img

列出新表的 Amazon S3 位置

aws s3 ls s3://datalakedemo110/optimized-data/ img

第七步:性能和成本效益分析

运行一些查询来查看在性能和成本优化方面获得的收益:

首先,找出年份中每个值的不同 ID 的数量:

查询原表:

SELECT substr("date",1,4) as year,

​    COUNT(DISTINCT id)

FROM original_csv

GROUP BY 1 ORDER BY 1 DESC

查询新表:

SELECT year,

 COUNT(DISTINCT id)

FROM new_parquet

GROUP BY  1 ORDER BY 1 DESC

性能对比:

img
img

速度提升 77.5%,成本降低 96.2%

img
img

接下来,计算 2018 年地球的平均最高气温(摄氏度)、平均最低气温(摄氏度)和平均降雨量(毫米):

查询原表:

SELECT element, round(avg(CAST(datavalue AS real)/10),2) AS value

FROM original_csv

WHERE element IN ('TMIN', 'TMAX', 'PRCP') AND substr("date",1,4) = '2018'

GROUP BY  1

查询新表:

SELECT element, round(avg(CAST(datavalue AS real)/10),2) AS value

FROM new_parquet

WHERE element IN ('TMIN', 'TMAX', 'PRCP') and year = '2018'

GROUP BY  1

总体查询速度提升 90%,成本降低 99.4%

img
img

体会

alt

Amazon S3 Express One Zone在速度和成本这块可谓遥遥领先于同行! 相较于传统构建方式,Amazon S3 Express One Zone在性能上表现出色,其数据访问速度比Amazon S3快10倍,尤其适用于作机器学习、大数据分析,正如本次的数据湖构建实战。此外,通过将数据与计算资源置于同一亚马逊云科技可用区,客户不仅可以更灵活地扩展或缩减存储,而且能够以更低的计算成本运行工作负载,降低了总体成本。

结语

以上内容展示了 S3 Express One Zone 在存储和快速访问大规模数据集方面的强大能力,还通过一个实际案例演示了如何有效地利用这些技术构建一个高性能、成本有效的数据湖。这对于那些需要处理大量数据并迅速获取洞察的企业来说是一个非常有价值的资源。

img
img

以上便是 S3 Express One Zone 作数据湖的构建过程,S3 Express One Zone 作为一个非常方便且可靠的数据湖解决方案。它提供了低成本的存储选项,并且具有高可用性和持久性。

同时,它还支持多种数据湖工具和分析服务,能够满足各种数据湖的需求,如果需要进一步扩展,可以考虑结合其他 AWS 的数据湖相关服务,比如使用 Amazon Redshift 来构建更加完善的数据湖架构、连接 BI 工具如 Amazon QuickSight 以进行数据可视化、使用 AWS CloudWatch 监控数据湖的使用情况和性能,这里有待读者去自行探索~

附录

本文涉及产品官网入口:

亚马逊云科技控制台:

amazon控制台入口

Amazon S3 Express One Zone官网:

高性能存储 – S3 Express One Zone

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/219331.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows安装Elasticsearch并结合内网穿透实现公网远程访问

Windows安装Elasticsearch并结合内网穿透实现公网远程访问 系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 Elasticsearch是一个基于Lucene库的分布式搜…

vue3.0项目搭建

一、安装vue3脚手架 卸载vue2脚手架 npm uninstall -g vue-cli清除缓存 npm cache clen --force安装最新脚手架 npm install -g vue/cli查看脚手架版本 vue -V 二、构建项目 创建项目 vue create 项目名选择配置 自定义配置&#xff0c;回车 上下键选择Linter / Formatter&a…

《opencv实用探索·十六》opencv直方图计算calcHist函数解析

直方图理解&#xff1a; &#xff08;对于8位灰度图像亮度/灰度为(0-255)&#xff0c;12位灰度图像亮度/灰度为(0-4095)&#xff09; 以8位图像为例&#xff0c;亮度分为0到255共256个数值&#xff0c;数值越大&#xff0c;代表的亮度越高。其中0代表纯黑色的最暗区域&#xff…

外包干了3个月,技术退步明显。。。

先说一下自己的情况&#xff0c;本科生生&#xff0c;19年通过校招进入广州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测…

索尼(ILCE-7M3)MP4文件只能播放前两分钟修复案例

索尼的ILCE-7M3是一款经典设备&#xff0c;其HEVC编码效果是比较不错的&#xff0c;因此受到很多专业人士的青睐。之前我们说过很多索尼摄像机断电生成RSV文件修复的案例&#xff0c;今天来讲一个特殊的&#xff0c;文件已经正常封装但仅能播放前两分钟多一点的画面。 故障文件…

静态路由原理与配置

文章目录 静态路由原理与配置一、路由器的工作原理1、路由概述2、路由器的工作原理 二、路由表的形成1、路由表2、路由表的形成 三、静态路由和默认路由1、静态路由的缺点2、默认路由&#xff08;是特殊的静态路由&#xff09;3、查看路由表 四、路由器转发数据包的封装过程五、…

FreeRtos里的几个中断屏蔽

1、primask 寄存器 PRIMASK用于禁止除NMI和HardFalut外的所有异常和中断&#xff0c;使用方法&#xff1a; cpsid i &#xff1b; //设置primask &#xff08;禁止中断&#xff09; cpsie i ; //清除primask (使能中断) 也可以 movs r0,#1 msr primask r0; //将 1写入p…

力扣刷题-二叉树-二叉树左叶子之和

404 左叶子之和 给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 示例 1&#xff1a; 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中&#xff0c;有两个左叶子&#xff0c;分别是 9 和 15&#xff0c;所以返回 24 思路 迭代法 迭代法理解…

Java 第9章 房屋出租系统

设计 如图是系统的分层结构&#xff0c;包括了界面层、业务层和数据层。 单独建包&#xff1a;由于在实际开发过程中&#xff0c;可能会出现管理多个界面的情况&#xff0c;所以界面需要单独建包&#xff0c;其他同理。 开发任务&#xff1a;从界面层深入到业务层&#xff0c…

菜鸟学习日记(python)——匿名函数

Python 使用 lambda 来创建匿名函数。 lambda 函数是一种小型、匿名的内联函数&#xff0c;它可以具有任意数量的参数&#xff0c;但只能有一个表达式。 匿名函数的一般格式如下&#xff1a; lambda 参数列表:表达式 表达式用于计算并返回函数结果 lambda 函数通常用于编写…

基于Java SSM框架实现智能停车场系统项目【项目源码+论文说明】

基于java的SSM框架实现智能停车场系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个智能停车场管理系统&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述…

记录 | gpu docker启动报错libnvidia-ml.so.1: file exists: unknown

困扰了两天的问题&#xff0c;记录一下 问题出在启动一个本身已经安装 cuda 的镜像上&#xff0c;具体来说&#xff0c;我是启动地平线天工开物工具链镜像的时候出现的问题&#xff0c;具体报错如下&#xff1a; docker: Error response from daemon: failed to create task …

加密的艺术:对称加密的奇妙之处(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

第十二章 React 路由配置,路由参数获取

一、专栏介绍 &#x1f436;&#x1f436; 欢迎加入本专栏&#xff01;本专栏将引领您快速上手React&#xff0c;让我们一起放弃放弃的念头&#xff0c;开始学习之旅吧&#xff01;我们将从搭建React项目开始&#xff0c;逐步深入讲解最核心的hooks&#xff0c;以及React路由、…

QT第一步

文章目录 软件下载软件安装QT的程序组新建项目 软件下载 qt下载网址&#xff1a;https://download.qt.io/archive/qt/   关于版本&#xff1a;     我选择的版本是5.14.2&#xff0c;这个版本是最后的二进制安装包的版本&#xff0c;在往后的版本就需要在线安装了。并且5…

记一次挖矿病毒的溯源

ps&#xff1a;因为项目保密的原因部分的截图是自己在本地的环境复现。 1. 起因 客户打电话过来说&#xff0c;公司web服务异常卡顿。起初以为是web服务缓存过多导致&#xff0c;重启几次无果后觉得可能是受到了攻击。起初以为是ddos攻击&#xff0c;然后去查看web服务器管理…

Cannot find cache named ‘‘ for Builder Redis

当引入 Redissson 时&#xff0c;springCache 缓存机制失效 原因&#xff1a;springCache 默认使用本地缓存 Redisson 使用redis 缓存 最后都转成redis了。。。 总感觉哪不对 两者居然不共存

力扣刷题-二叉树-路径总和

112 路径总和 给定一个二叉树和一个目标和&#xff0c;判断该树中是否存在根节点到叶子节点的路径&#xff0c;这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树&#xff0c;以及目标和 sum 22&#xff0c; 返回 true, 因为…

VRRP(虚拟路由冗余协议)

一.VRRP简介 1.VRRP是什么 Virtual route Redundancy Protocol&#xff0c;也叫虚拟路由器冗余协议。 利用VRRP&#xff0c;一组路由器协同工作&#xff0c;单只有一个处于Master状态&#xff0c;处于该状态的路由器&#xff08;的接口&#xff09;承担实际的数据流量转发任…

亚马逊云科技发布企业生成式AI助手Amazon Q,助力企业迈向智能化时代

&#xff08;声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区、知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道&#xff09; 一、前言 随着人工智能技术的快速发展和广泛应用&#xff0c;我们…