提升数据分析效率: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.mzph.cn/news/221496.shtml

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

相关文章

STM32 map文件详解

文章目录 1. 前言2. 生成 .map 文件3 .map 文件的组成3.1 Section Cross References - 各个源文件之间函数的调用关系3.2 Removing Unused input sections from the image - 移除未使用的模块3.3 Image Symbol Table - 映射符号表&#xff1a;描述各&#xff08;程序段 / 数据&…

Spark分布式内存计算框架

目录 一、Spark简介 &#xff08;一&#xff09;定义 &#xff08;二&#xff09;Spark和MapReduce区别 &#xff08;三&#xff09;Spark历史 &#xff08;四&#xff09;Spark特点 二、Spark生态系统 三、Spark运行架构 &#xff08;一&#xff09;基本概念 &#x…

Antd v5.8 modal.confirm 手动控制关闭

开发中经常需要使用操作提示弹窗&#xff0c;在 Antd 中的 Modal 组件提供了 confirm 方法&#xff0c;可以快速实现操作提示弹窗。本文就来介绍一下如何使用 Modal.useModal 创建弹窗&#xff0c;并且实现手动控制弹窗的关闭逻辑。 一、代码演示 import { message, Modal } f…

禾匠榜店商城系统 RCE漏洞复现

0x01 产品简介 禾匠榜店商城系统是浙江禾匠信息科技有限公司的一套基于PHP和MySQL的商城系统。 0x02 漏洞概述 禾匠榜店商城系统的api/testOrderSubmit模块下的preview方法存在命令执行漏洞,攻击者可以向服务器写入木马文件,直接获取服务器权限 0x03 漏洞概述 FOFA:bod…

带你手把手解读firejail沙盒源码(0.9.72版本) (三) fcopy

文章目录 main.c该模块的各个函数功能详解selinux_relabel_pathcopy_filemkdir_attrcopy_linkproc_pid_to_selffs_copydircheckduplicate_dirduplicate_fileduplicate_linkmain Makefile main.c 文件总结 ├── fcopy │ ├── Makefile │ └── main.cmain.c #include…

【腾讯云HAI域探密】- HAI为NPL保驾护航

近些年&#xff0c;随着机器学习技术的蓬勃发展&#xff0c;以GPU为代表的一系列专用芯片以优越的高性能计算能力和愈发低廉的成本&#xff0c;在机器学习领域得到广泛认可和青睐。GPU等专用芯片以较低的成本提供海量算力&#xff0c;已经成为机器学习和AI人工智能领域的核心利…

用EXCEL计算NTC、BS、电压等AD参数

前言 之前计算NTC的AD值算得很麻烦&#xff0c;因为51内核的单片机不支持除法运算&#xff0c;更别说浮点运算了。 EXCEL自动算出参数就显得很方便了。 有纰漏请指出&#xff0c;转载请说明。 学习交流请发邮件 1280253714qq.com 理论基础 参考这篇文章NTC热敏电阻温度采集…

企业数字化转型进入深海区:生成式AI时代下如何制定数据战略

云计算适用于任何人&#xff0c;任何企业&#xff0c;云计算的分支——人工智能(AI)正发展的迅疾如火&#xff0c;炙手可热。特别是ChatGPT已经挑战各行各业对于AI的认知。 作为全球云计算领域的年度风向标活动&#xff0c;12月12日&#xff0c;亚马逊云科技2023 re:Invent中国…

Web漏洞分析-文件解析及上传(下)

随着互联网的迅速发展&#xff0c;网络安全问题变得日益复杂&#xff0c;而文件解析及上传漏洞成为攻击者们频繁攻击的热点之一。本文将深入研究文件解析及上传漏洞&#xff0c;通过对文件上传、Web容器IIS、命令执行、Nginx文件解析漏洞以及公猫任意文件上传等方面的细致分析&…

基于C/C++的非系统库自定义读写ini配置

INI文件由节、键、值组成。 节 [section] 参数 &#xff08;键值&#xff09; namevalue 这里将常用的操作方式封装成了一个dll供外部使用 // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 LIBCFG_EXPORTS // 符号…

有什么简单实用的民宿管理系统软件?民宿如何开拓盈利渠道?

民宿是近些年兴起的一种小型住宿设施&#xff0c;一般就是利用当地的一些民房改造的。民宿的装修风格一般更加具有本土风味&#xff0c;很适合拍照打卡。不过民宿由于规模比较小&#xff0c;所以员工一般也不多&#xff0c;很多民宿的入住登记都要旅客自己弄。所以有很多民宿会…

Apache DolphinScheduler 社区荣获 “2023 年度优秀开源技术团队“ 奖项

在开源社区日益繁荣的今天&#xff0c;我们非常荣幸地宣布&#xff1a;Apache DolphinScheduler 社区在 OSCHINA 平台的评选中荣获了“2023 年度优秀开源技术团队”奖项。这一奖项反映了我们社区在过去一年里在内容发表的深度与广度、活动运营影响力以及对开源文化的推广方面所…

AGILE-SCRUM

一个复杂的汽车ECU开发。当时开发队伍遍布全球7个国家&#xff0c;10多个地区&#xff0c;需要同时为多款车型定制不同的软件&#xff0c;头疼的地方是&#xff1a; 涉及到多方人员协调&#xff0c;多模块集成和管理不同软件团队使用的设计工具、验证工具&#xff0c;数据、工…

如何在本地搭建Oracle数据库并实现无公网ip通过PLSQL工具远程连接数据库

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 正文开始前给大家推荐个网站&#xff0c;前些天发…

基于JAVA的校园电子商城系统论文

摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以对于信息的宣传和管理就很关键。因此校园购物信息的…

西南科技大学数字电子技术实验七(4行串行累加器设计及FPGA实现)预习报告

一、计算/设计过程 说明&#xff1a;本实验是验证性实验&#xff0c;计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程&#xff0c;越详细越好。用公式输入法完成相关公式内容&#xff0c;不得贴手写图片。&#xff08;注意&#xff1a;从抽象公式直接得出结…

大数据云计算——Docker环境下部署Hadoop集群及运行集群案列

大数据云计算——Docker环境下部署Hadoop集群及运行集群案列 本文着重介绍了在Docker环境下部署Hadoop集群以及实际案例中的集群运行。首先&#xff0c;文章详细解释了Hadoop的基本概念和其在大数据处理中的重要性&#xff0c;以及为何选择在Docker环境下部署Hadoop集群。接着&…

12.HTML5新特性

HTML5新特性 1.介绍 它是万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言&#xff08;HTML&#xff09;的第五次重大修改。用于取代 HTML4 与 XHTML 的新一代标准版本&#xff0c;所以叫HTML5 HTML5 在狭义上是指新一代的 HTML 标准&#xff0c;在广义上是指…

云原生之深入解析K8s中的微服务项目设计与实现

一、微服务项目的设计 ① 微服务设计的思想 一个单片应用程序将被构建、测试并顺利地通过这些环境。事实证明&#xff0c;一旦投资于将生产路径自动化&#xff0c;那么部署更多的应用程序似乎就不再那么可怕了。请记住&#xff0c;CD的目标之一就是让部署变得无聊&#xff0c…

提升团队效率,防止员工飞单私单的秘诀!

在如今竞争激烈的商业环境中&#xff0c;每个企业都追求更高的销售业绩和客户满意度。然而&#xff0c;有些员工可能会利用V信等社交工具进行私下交易&#xff0c;导致公司的利益损失和客户信任的瓦解。所以&#xff0c;如何防止员工飞单私单成为了一个需要解决的问题。 在这里…