技术原理

AWS Glue——简化ETL过程所需的一切

ETL过程是专门为将数据从其源数据库传输到数据仓库而设计的。然而,ETL的挑战和复杂性会使您很难成功实现所有企业数据。为此,亚马逊推出了AWS胶水。在本文中,我们将讨论的指针如下:

什么是AWS Glue?我应该什么时候用AWS胶水?AWS Glue优势AWS Glue概念AWS Glue术语AWS Glue如何工作?”所以让我们从第一个主题开始。

什么是AWS胶水

Glue logo - AWS Glue - Edureka

AWS Glue是一个完全托管的ETL服务。这项服务使得对数据进行分类、清理、充实和在不同的数据存储区之间快速可靠地移动数据变得简单和经济高效。

它由诸如AWS Glue data Catalog这样的中央元数据存储库、自动生成Python或Scala代码的ETL引擎等组件组成,还有一个灵活的调度程序,它可以处理依赖关系解析、作业监视和重试。

AWS Glue是无服务器的,这意味着没有要设置或管理的基础结构。

什么时候应该使用AWS Glue?一。要构建一个数据仓库来组织、清理、验证和格式化数据。

您可以转换AWS云数据并将其移动到您的数据存储中。

您还可以将不同来源的数据加载到您的数据仓库中以进行定期报告和分析。

通过将其存储在数据仓库中,您可以集成来自业务不同部分的信息,并为决策提供公共数据源。

2。当您对Amazon S3数据池运行无服务器查询时,

AWS Glue可以对Amazon Simple Storage Service(Amazon S3)数据进行编目,使其可用于使用Amazon Athena和Amazon Redshift Spectrum进行查询。

爬虫程序,您的元数据与底层数据保持同步。Athena和Redshift Spectrum可以借助AWS Glue数据目录直接查询Amazon S3数据池。

借助AWS Glue,您可以通过一个统一的接口访问和分析数据,而无需将其加载到多个数据仓库中。

3。当你想创建事件驱动的ETL管道

时,你可以通过从AWS Lambda函数调用AWS Glue ETL作业,在Amazon S3中新数据可用时运行ETL作业。

你还可以将这个新数据集注册到AWS Glue数据目录中,并将其视为ETL作业的一部分。

4.to了解您的数据资产。

您可以使用各种AWS服务存储数据,并且仍然使用AWS Glue数据目录维护数据的统一视图。

查看数据目录以快速搜索和发现您拥有的数据集,并在一个中央存储库中维护相关的元数据。

的数据目录还可以作为外部Apache配置单元元存储的替代品。

AWS Glue优点1。少麻烦的

AWS胶是集成在一个非常广泛的AWS服务。AWS Glue本机支持存储在Amazon Aurora和所有其他Amazon RDS引擎、Amazon Redshift和Amazon S3中的数据,以及运行在Amazon EC2上的虚拟私有云(Amazon VPC)中的常见数据库引擎和数据库。

2。具有成本效益的

AWS胶是无服务器的。没有可供配置或管理的基础设施。AWS Glue处理在完全管理的、可扩展的Apache Spark环境中运行ETL作业所需的资源的供应、配置和扩展。你只为你的工作运行时使用的资源付费。

3。更强大的

AWS Glue自动化了构建、维护和运行ETL作业的大量工作。它对数据源进行爬网,识别数据格式,并建议模式和转换。AWS Glue自动生成执行您的代码数据目录:

在这一步中,我们将创建一个爬网程序。爬网程序将对指定的S3 bucket和前缀中的所有文件进行编目。所有文件都应该具有相同的架构。在Glue crawler术语中,文件格式称为分类器。爬虫程序自动识别最常见的分类器,包括CSV、json和parquet。我们的示例文件是CSV格式,将自动识别。

在胶水管理控制台的左侧面板中单击“爬虫程序”。

单击蓝色的“添加爬虫程序”按钮。

为爬虫程序提供名称,如胶水演示edureka爬虫程序。

在“添加数据存储”菜单中选择S3并选择你创建的bucket。向下钻取以选择读取文件夹。

在“选择IAM角色”“新建”中。将角色命名为例如glue demo edureka iam role。

在配置爬虫程序的输出中添加一个名为glue demo edureka db的数据库。

当您回到所有爬虫程序的列表中时,勾选您创建的爬虫程序。单击运行爬虫程序。

3。Glue tables中的已爬网元数据:

一旦数据已爬网,爬网程序将从中创建元数据表。您可以在Glue控制台的Tables部分找到结果。在爬网程序安装期间创建的数据库只是对表进行分组的任意方式。粘合表不包含数据,但仅包含有关如何访问数据的说明。

4。AWS Glue jobs for data transformations:

从Glue控制台左侧面板转到jobs并单击蓝色的Add job按钮。按照以下说明创建Glue作业:

将作业命名为Glue demo edureka作业。选择为爬网程序创建的相同IAM角色。它可以读写S3存储桶。类型:火花。胶水版本:Spark 2.4,Python 3。此作业运行:将由您编写的新脚本。安全配置、脚本库和作业参数最大容量:2。这是最低价格,每次大约0.15美元。作业超时:10。防止作业运行时间超过预期。单击“下一步”,然后保存作业并编辑脚本。5个。编辑Glue脚本以使用Python和Spark转换数据:

将以下代码复制到Glue脚本编辑器中记住要更改s3_write_path变量的bucket名称。将代码保存在编辑器中,然后单击运行作业。

############################################导入库和设置变量#导入python模块#导入pyspark模块将pyspark.sql.functions作为f导入#导入胶水模块从awsglue.utils导入getResolvedOptions从awsglue.上下文导入GlueContext从awsglue.job导入作业#初始化上下文和会话glue_context=GlueContext(火花上下文)#参数glue“读取”############################################提取(读取数据)##########################################日志开始时间打印(“开始时间:”,dt_Start)#读取电影数据以粘贴动态帧#将动态帧转换为数据帧以使用标准pyspark函数data_frame=动态_frame_read.toDF()############################################转换(修改数据)#每年创建一个十年列十年=f.楼层(数据框[年份]/10)*10#按十年分组:数电影,获得平均评分f、 count(f.col(“电影标题”)).alias(“电影计数”),)#按每十年的电影数量排序数据帧聚合=数据帧聚合顺序(f、 描述(“电影计数”))#打印结果表#注:显示功能是一个动作。操作强制执行数据帧计划。#有了大数据,经济放缓将是显著的,而不必咯咯叫。###################################################################################只创建一个分区,因为数据太少数据帧聚合=数据帧聚合。重新分区(一)#转换回动态帧dynamic_frame_write=DynamicFrame.fromDF(数据_frame_聚合,粘合上下文,“dynamic_frame_write”)#将数据写回S3帧=动态帧写入,connection_type=“s3”,连接选项={#在这里,您可以根据指定列中的值创建S3前缀},)#日志结束时间打印(“开始时间:”,结束时间)

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片
人工智能发展现状 投稿者
我还没有学会写个人说明!
最近文章
  • * 没有更多文章了
  • 热门搜索

    分类目录