【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

AWS Glue 全托管 ETL 服务使用指南

  • 2019-11-06
  • 本文字数:2775 字

    阅读完需:约 9 分钟

AWS Glue 全托管 ETL 服务使用指南


目 录


第 1 章 Glue 概述


1.1 Glue 介绍


1.2 Glue 主要特征


1.3 Glue 定价与计费


第 2 章 Glue 入门


2.1 数据准备


2.2 在线演示


2.2.1 增加 IAM Role


2.2.2 配置 Data Catalog

第 1 章 Glue 概述

1.1 Glue 介绍


AWS Glue 是一项完全托管的提取、转换和加载 (ETL) 服务,让客户能够轻松准备和加载数据进行分析。您只需在 AWS 管理控制台中单击几次,即可创建并运行 ETL 作业。您只需将 AWS Glue 指向存储在 AWS 上的数据,AWS Glue 便会发现您的数据,并将关联的元数据 (例如表定义和架构) 存储在 AWS Glue 数据目录中。存入目录后,您的数据可立即供 ETL 搜索、查询和使用。AWS Glue 可生成代码执行数据转换和数据加载流程。


AWS Glue 可生成可自定义、可重复使用且可移植的 Python 代码。ETL 作业准备就绪后,您便可以安排它在 AWS Glue 完全托管的横向扩展 Apache Spark 环境中运行。AWS Glue 可提供一个具有依赖关系解析、作业监控和警报功能的灵活计划程序。


AWS Glue 没有服务器,因此无需购买、设置或管理基础设施。它会自动预配置完成作业所需的环境,客户只需为运行 ETL 作业期间使用的计算资源付费。使用 AWS Glue,数据在几分钟内即可用于分析。


1.2 Glue 主要特征


  • 集成式数据目录


AWS Glue 数据目录是您所有数据资产的永久元数据存储,且无论它们位于何处都将如此。数据目录包含表定义、任务定义和其他控制信息,以帮助您管理 AWS Glue 环境。它会自动计算统计信息并注册分区,以便经济高效地针对您的数据进行查询。它还会维护一个全面的架构版本历史记录,以便您可以了解您的数据如何随着时间发生变化。


  • 自动架构发现


AWS Glue 网络爬虫连接到您的源或目标数据存储,通过分类器的优先级列表来确定数据的架构,然后在 AWS Glue 数据目录中创建元数据。元数据存储在数据目录的表中,并在 ETL 任务的创建过程中使用。您可以按计划、按需运行网络爬虫,也可以基于事件触发它们,以确保您的元数据是最新的。


  • 代码生成


AWS Glue 自动生成代码以提取、转换和加载您的数据。只需将 Glue 指向您的数据源和目标,Glue 就会创建 ETL 脚本来转换、合并和丰富您的数据。AWS Glue 使用 Python 生成代码,并针对 Apache Spark 2.1 环境进行编写。


  • 开发人员终端节点


如果您选择通过交互方式开发 ETL 代码,Glue 将提供开发终端节点,以供您编辑、调试和测试其为您生成的代码。您可以使用自己喜爱的 IDE 或笔记本电脑。您可以编写自定义读取器、写入器或转换程序,并将它们作为自定义库导入到 ETL 任务中。您还可以与其他开发人员一起使用和共享我们的 GitHub 存储库中的代码。


  • 灵活的任务调度程序


AWS Glue 任务可以按计划、按需或基于事件进行调用。您可以并行启动多个任务,也可以跨任务指定依赖关系以构建复杂的 ETL 管道。Glue 将处理所有的任务间依赖关系、过滤不良数据并且在任务失败时进行重试。所有日志和通知都将推送到 Amazon CloudWatch,以便您可以从中心服务监控和获取警报。


1.3 Glue 定价与计费


除了 AWS Glue 数据目录免费套餐,您需要针对 AWS Glue 数据目录中的元数据存储和访问支付简单月度费用。此外,您还需要针对 ETL 任务和网络爬虫的运行按小时费率付费 (按秒计),每次最少 10 分钟。如果您选择使用开发终端节点以交互式方法开发您的 ETL 代码,那么您需要针对预置开发终端节点的时间按小时费率付费 (按秒计),最少 10 分钟。有关更多详细信息,请参阅我们的定价页面。

第 2 章 Glue 入门

我们将通过一个简单的 Demo,来描述 Glue 实现从 S3 桶扫描 csv 文件,并转换成 Parquet 格式的 ETL 过程,并通过 Athena 来查询,突出其易用性。


2.1 数据准备


我们先生成三个 csv 文件,内容如下:


Java


tab01.csv
ID01,Name01,TEL01
1,Name01-1,13511111111
2,Name02-2,13522222222
3,Name03-3,13533333333
4,Name04-4,13544444444
复制代码


Java


tab02.csv
ID02,Name02,TEL02
1,Name02-1,13611111111
2,Name02-2,13622222222
3,Name02-3,13633333333
4,Name02-4,13644444444
复制代码


Java


tab03.csv
ID03,Name03,TEL03
1,Name03-1,13711111111
2,Name03-2,13722222222
3,Name03-3,13733333333
4,Name03-4,13744444444
复制代码


创建 S3 桶,名有 www.jianghua.com ,在其下面建立如下三个文件夹


csv ### 存放 csv 文件,并将上面的三个 csv 文件上传至该目录


tmp ### 存放临时文件


csv2parquet ### 存放转换后的 parquet 格式文件


2.2 在线演示


以下过程包括 IAM Role、数据目录、Crawlers 及 Job


2.2.1 增加 IAM Role


由于 Glue 是全托管的,该 ETL 过程会访问 S3,请新建一个名为 MyGlurRole,包括如下权限,记得 S3 Full 与 Glue 所有的权限:



2.2.2 配置 Data Catalog


如果有默认的数据库可以先删除,再新新建自己的数据,这里没有具体数据,只有元数据,即数据结构,描述数据的数据。


2.2.2.1 创建数据库


新建一个名为 mygluedb 的数据库




2.2.2.2 创建表


通过 Add tables using a crawler 建表




把源直接指向 S3 桶下面的 csv 目录




选择上面建的 Role




选择 mygluedb 后 Next -> Finish



会看建立了一个 Crawler,选中,再运行 Run crawler,等待一小会,如下所示:




点击 Table 会看表已经生成,其实只是表结构,并不会把数据拉过来。MyCrawler01 会根据 csv 目录下的文件内容情况自动生成表,有可能与文件个数相等或不同。



2.2.2.3 创建 Job


再点击 Job,新建 Job,输入名字,选择 Role,选择 tmp 临时目录,Next



选择数据源,Next



选择数据目录,Create 新表以及 S3 桶的路径,Next



选择源与目标的字段 mapping,Next –> Finish



点击 Save,再点击 Run Job,开始运行



此处需要待一段时间,预计 5 分钟后会有 logs 输出





2.2.2.4 数据验证


参考上面建表的方法,通过 Crawler 新建一个表,去导入刚才 Job 生成的 Parquet 格式的元数据



选择 S3 桶里,存放 Parquet 文件名为 csv2parquet 的文件夹,Next




选择之前建立的数据库,其他可以默认, Next -> Finish



运行 MyParquet01 后,再去查看表。会自动生成一个名为 csv2parquet 的表



选中 csv2parquet 的表,再选择 View data,再在 Athena 里面打开此表进行查询



Run Query,即可



作者介绍:



蒋华, AWS 合作伙伴解决方案架构师,获得 AWS 解决方案架构师专业级认证,主要负责 AWS(中国)技术类、SaaS 合作伙伴的技术支持,基于 AWS 云服务方案的架构设计、咨询及应用迁移等工作,同时致力于 AWS 云服务在国内的应用及推广,并在关系型数据库服务、存储服务、分析服务、HA/DR 及云端应用迁移方面有着丰富的设计和实战经验。加入 AWS 之前,曾在 IBM(中国)工作 12 年,历任数据库售前工程师、UNIX 服务器资深售前工程师及解决方案架构师,熟悉传统企业 IT 架构、私有云及混合云部署,在数据库、数据仓库、高可用容灾及企业应用架构等方面有多年实践经验。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/aws-glue-full-managed-etl-service-usage-guide/


2019-11-06 08:001482

评论

发布
暂无评论
发现更多内容

Redis管理工具Medis mac完美激活版 Medis中文教程

Rose

Mac破解软件 Medis for Mac Redis数据库管理

Delicious Retouch 5中文版 DR5插件加强版 ps磨皮滤镜

Rose

DR5插件加强版 Delicious Retouch 5 ps磨皮滤镜插件

如何解决用switchresx设置分辨率点击保存后重启无效的问题?

Rose

SwitchResX下载 SwitchResX常见问题 SwitchResX破解版 Mac屏幕分辨率修改 switchresx mac

一起学Elasticsearch系列-索引的批量操作

Java随想录

Java 大数据 Elastic Search

油猴浏览器管理脚本:Tampermonkey油猴插件安装教程

Rose

油猴插件 Tampermonkey插件 油猴脚本使用

程序员修仙之道

peak徐

程序人生 成长感悟

Beyond Compare 4 for Mac中文注册激活 附 激活码 支持m1/m2

Rose

mac软件下载 Beyond Compare 4 注册版 Beyond Compare 4 下载 文件比较工具

从 Bamboo 到极狐GitLab 的迁移指南

极狐GitLab

DevOps CI/CD DevSecOps Atlassian Bamboo

3.2.1.0 发布!时间转换函数+BI 集成+视图正式上线!

TDengine

tdengine 时序数据库

Amazon CodeWhisperer 正式可用, 并面向个人开发者免费开放

亚马逊云科技 (Amazon Web Services)

人工智能 API CodeWhisperer Amazon Lambda 云上探索实验室

FFA 2023 专场解读:AI 特征工程、数据集成

Apache Flink

大数据 flink 实时计算

身份统一管理创新与优化 ——华为云OneAccess应用身份管理服务的2023年

华为云PaaS服务小智

云计算 华为云 统一身份管理平台

Wolfram Mathematica中文安装教程 附永久密钥 支持Macos14系统

Rose

Wolfram Mathematica下载 数学软件推荐 Wolfram Mathematica密钥

【Mac/win】Red Giant Trapcode Suite序列号分享(红巨星粒子插件)

Rose

红巨星粒子插件 Red Giant Trapcode Suite 3D动画和视觉效果 Trapcode Suite序列号

Mimestream for Mac(电子邮件客户端)v1.2激活版

影影绰绰一往直前

Metadatics for Mac(音频元数据编辑器)v1.6.10激活版

影影绰绰一往直前

MATLAB实战 | 求矩阵指数、预定义变量i和j的含义以及梯形积分法

TiAmo

matlab

同城双活的必修课 - 落地经验与关键挑战解析

柠檬汁Code(binbin0325)

容灾 异地多活 故障恢复 部署架构 同城双活

AI大模型,如何破圈而出?

脑极体

揭开以太坊区块链:一场去中心化革命

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

ubuntu中编译安装opensips并测试

百度搜索:蓝易云

Linux ubuntu 运维 云服务器 OpenSIPS

Lightroom Classic 2024下载(LrC2024最新中文版)附破解补丁 Mac/win

Rose

LR2024 Mac中文 Lightroom Classic 2024 Adobe LR破解版

非典型“技术写作者”

escray

技术人写作 21 天技术人写作行动营 21 天

The Clock for Mac(世界时钟日历工具)v4.9.0中文激活版

影影绰绰一往直前

3D渲染:hdrlightstudio8插件怎么安装?HDR Light Studio 8 Mac破解版下载安装教程

Rose

3D渲染 HDR Light Studio 8 HDR Light Studio安装

第30期 | GPTSecurity周报

云起无垠

Ic 2024中文破解版 InCopy 2024 mac完美激活版 最新19.0.1.205兼容M1/M2 支持mac14系统

Rose

Ic 2024破解版 InCopy 2024下载 InCopy 2024中文版

直播预约|FFA 2023 主会场,12 月 8 日正式上线!

Apache Flink

flink

《21 天技术人写作行动营》--怎么做个人定位?

IT蜗壳-Tango

Shell变量知多少?

百度搜索:蓝易云

云计算 Linux 运维 Shell 云服务器

商城开发

Geek_8da502

AWS Glue 全托管 ETL 服务使用指南_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章