提升数据分析效率: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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数组笔试题解析(下)

数组面试题解析 字符数组 &#xff08;一&#xff09; 我们上一篇文章学习了一维数组的面试题解析内容和字符数组的部分内容&#xff0c;我们这篇文章讲解一下字符数组和指针剩余面试题的解析内容&#xff0c;那现在&#xff0c;我们开始吧。 我们继续看一组字符数组的面试…

binkw32.dll丢失怎么办?这5个方法都可以解决binkw32.dll丢失问题

binkw32.dll文件是什么&#xff1f; binkw32.dll是一个动态链接库文件&#xff0c;它是Windows操作系统中的一个重要组件。它包含了许多用于处理多媒体文件的函数和资源&#xff0c;如视频、音频等。当我们在电脑上打开或播放某些多媒体文件时&#xff0c;系统会调用binkw32.d…

【算法】滑动窗口

目录 基本思想 应用场景 应用实例 总结 基本思想 滑动窗口&#xff0c;也叫尺取法&#xff0c;就是不断的调节子序列的起始位置和终止位置&#xff0c;从而得出我们要想的结果&#xff0c;可以用来解决一些查找满足一定条件的连续区间的性质&#xff08;长度等&#xff09;…

【活动回顾】Databend 云数仓与 Databend Playground 扩展组件介绍

2023 年 12 月 7 日&#xff0c;作为 KubeSphere 的合作伙伴&#xff0c;Databend 荣幸地受邀参与了 KubeSphere 社区主办的云原生技术直播活动。本次活动的核心议题为「Databend 云数仓与 Databend Playground 扩展组件介绍」&#xff0c;此次分享由 Databend Labs 的研发工程…

Vue3-08-条件渲染-v-if 的基本使用

v-if 是什么 v-if 一个指令&#xff0c; 它是用来根据条件表达式&#xff0c;进行选择性地【展示】/【不展示】html元素的。比如 &#xff1a; 有一个按钮A&#xff0c;当条件为真时&#xff0c;展示该按钮&#xff1b;条件为假时&#xff0c;不展示该按钮。与 js 中的 条件判…

如何部署Portainer容器管理工具+cpolar内网穿透实现公网访问管理界面

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 本文主要介绍如何本地安装Portainer并结合内网穿透工具实现任意浏览器远程访问管理界面。Portainer 是一个轻量级…

一文5000字从0到1构建高效的接口自动化测试框架思路

在选择接口测试自动化框架时&#xff0c;需要根据团队的技术栈和项目需求来综合考虑。对于测试团队来说&#xff0c;使用Python相关的测试框架更为便捷。无论选择哪种框架&#xff0c;重要的是确保 框架功能完备&#xff0c;易于维护和扩展&#xff0c;提高测试效率和准确性。…

挺进云存储,天翼云全新一代XSSD勇立潮头

引言&#xff1a;自研高性能分布式存储引擎LAVA&#xff0c;实现云硬盘持续创新获得新突。 【全球云观察 &#xff5c; 科技热点关注】 作为算力基础设施的基石&#xff0c;云存储的发展一直备受公有云厂商所重视&#xff0c;对拉动云厂商营收规模带来重要价值&#xff0c;就…

山海鲸开发者:展现数据可视化在各领域的无限可能

作为一名山海鲸可视化软件的内部开发者&#xff0c;我对这款软件投入了大量的经历以及含有深深的情感。下面&#xff0c;我从这款软件应用场景下手&#xff0c;带大家探秘这款软件的多种可能性以及我们的用心。 首先&#xff0c;从行业角度来看&#xff0c;山海鲸可视化软件可以…

06.迪米特法则(Demeter Principle)

明 嘉靖四十年 江南织造总局 小黄门唯唯诺诺的听完了镇守太监杨金水的训斥&#xff0c;赶忙回答&#xff1a;“知道了&#xff0c;干爹&#xff01;” “知道什么&#xff1f;&#xff01;&#xff01;” 杨金水打断了他的话&#xff0c;眼神突然变得凌厉起来&#xff1a; “有…

椋鸟C语言笔记#26:数据在内存中的存储(大小端字节序)、浮点数的存储(IEEE754)

萌新的学习笔记&#xff0c;写错了恳请斧正。 目录 大小端字节序 什么是大小端 写一个判断大小端的程序 浮点数在内存中的存储&#xff08;IEEE 754规则&#xff09; 引入 存储规则解释 读取规则解释 1.阶码不全为0或全为1&#xff08;规格化数&#xff09; 2.阶码全为…

鸿蒙系统走向独立,高校设立“鸿蒙班”,鸿蒙人才紧缺!

近日&#xff0c;华为以及鸿蒙系软件厂商都在积极培养鸿蒙开发人才&#xff0c;产学联动、产教融合是重要的一条路径。目前已有23家985高校、46家211高校已开设或即将开设HarmonyOS相关课程。 一位鸿蒙生态内部人士表示&#xff0c;目前鸿蒙开发人才比较紧缺&#xff0c;而安卓…

图生视频AI技术,1张图零提示词,让静态照片动起来

AI时代的发展速度比我们想象中的快多了&#xff0c;当大部分人刚学会AI生成图片时&#xff0c;现在又开始流行AI生成视频了&#xff0c;正式从图片、文字升级到短视频时代。 最近一段时间&#xff0c;AI生成视频的技术正在突飞猛进。Pika、Runway等大家熟知的海外工具都在不断…

【STM32CubeMX】F103 BxCAN

F103&BxCAN bxCAN总体描述 有一个增强的过滤机制来处理各种类型的报文此外&#xff0c;应用层任务需要更多CPU时间&#xff0c;因此报文接收所需的实时响应程度需要减轻。 接收FIFO的方案允许&#xff0c;CPU花很长时间处理应用层任务而不会丢失报文。 构筑在底层CAN驱动程…

软件设计中如何画各类图之七了解组件图:系统架构的关键视角

目录 1 前言2 组件图基本介绍3 画组件图的步骤4 组件图的用途5 场景及实际场景举例6 结语 1 前言 组件图是一种UML的图形化表示工具&#xff0c;为系统架构提供了重要视角。它描述了系统中各个组件以及它们之间的依赖关系和连接。用于展示系统中的组件、软件模块、以及它们之间…

简单实现Spring容器(五) 实现bean后置处理器BeanPostProcessor机制

阶段5: // 1.编写自己的Spring容器,实现扫描包,得到bean的class对象. // 2.扫描将 bean 信息封装到 BeanDefinition对象,并放入到Map. // 3.初始化单例池并完成getBean() createBean()方法 // 4.完成依赖注入(如果创建某个Bean对象,存在依赖注入,需要进行bean组装操作) 5.bean…

比较好的python书籍,python有什么书推荐

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;比较好的python书籍&#xff0c;python有什么书推荐&#xff0c;现在让我们一起来看看吧&#xff01; 我是在半年前接触到Python的&#xff0c;我之前没有一点编程基础&#xff0c;但在我自学的这半年里&#xff0c;我发…

绿盟 SAS堡垒机 local_user.php 权限绕过漏洞复现

绿盟 SAS堡垒机 local_user.php 权限绕过漏洞复现 一、 产品简介二、漏洞概述三、 复现环境四、漏洞复现五、小龙检测 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&…

jdom利用纯java技术对xml文档进行解析、生成、序列化等各种操作

Jdom对xml文档进行解析、生成、序列化等各种操作。 使用jdom之前&#xff0c;首先要导入jar包&#xff1a;jdom.jar 获得根元素&#xff1a; 首先确定xml文件位置 String xmlPath "./src/ceshi/Test.xml"; //使用的解析器&#xff0c;这里表示默认的解析…

资本热捧下的预制菜,如何挤出泡沫、回归务实?

在这个被快餐和即食文化主宰的时代&#xff0c;预制菜概念持续被资本热炒。 据悉&#xff0c;近30个交易日里&#xff0c;预制菜概念板块已累计上涨超15%&#xff0c;其中&#xff0c;惠发食品、得利斯、春雪食品等个股更是快速拉涨。但究竟谁才能笑到最后&#xff0c;还充满未…