亚马逊云科技Glue

news2024/11/24 19:24:16

Glue 最重要的部分,
ETL:用于从 A 点(我们的源数据)提取、转换和加载数据到 B 点(目标文件或数据存储库)。 AWS Glue 会为您执行大量此类工作。 转换通常是更繁重的工作,需要从各种来源进行组合、清理数据、正确映射到目标、形成新模式、聚合或分解等等。

AWS Glue 的优势:

AWS Glue 中的 ETL 代码可以轻松运行无服务器。 AWS Glue 有一个爬网程序,可以推断源数据、工作数据和目标数据的架构,爬网程序可以按计划运行以检测更改。

使用 AWS Glue 的功能创建爬网程序来生成源文件的元数据,这有助于我们从源到目标的映射。

现在 ETL 代表提取转换负载。 这是将来自多个系统的数据组合到单个数据库、数据存储或仓库以进行遗留存储或分析的常见范例。

提取是从一个或多个来源(在线、实体、遗留数据、Salesforce 数据等)检索数据的过程。 检索数据后,ETL 将计算工作,将其加载到暂存区域并为下一阶段做好准备。 转换是映射、重新格式化、一致、添加含义等以更容易使用的方式准备数据的过程。 。 所有这些工作都在业务智能开发人员所谓的 ETL 作业中进行处理。

云、SaaS 和大数据的出现导致新数据源和数据流的数量激增。 此外,数据源种类更多、数据量更大,并且需要在世界各地的系统之间更快地移动数据。 因此,对更复杂的数据集成工具的需求激增,这些工具可以处理更大的数据量、更高的速度以及更多的种类。 此外,随着时间的推移,技术不断发展,以帮助解决数据集成问题并提高为决策支持准备数据的速度。 除了能够连接云资源之外,其中许多改进都是在本地工具上进行的。 另一方面,ETL工具也在云端开发,在某些情况下,除了连接云资源之外,它还能更好地处理大数据问题。

ETL 技术的改进之一是提供实时或近实时分析。 另一个改进是简化并降低ETL工作的成本。 这可以通过提供或维护运行 ETL 作业的基础设施来部分实现。 在代码中运行且对所配置的内容知之甚少或一无所知的代码的名称是无服务器 ETL。

无服务器 ETL 的参与具有简化 ETL 流程的好处,例如允许数据开发人员有更多时间专注于准备数据和构建数据管道,而不是考虑与 ETL 作业和运行一致的本地软件。 另一个好处是可以更无缝地交换云中已有的异构数据源和数据目的地。下面的表格有助于显示无服务器 ETL 和传统 ETL 之间的差异。 这些差异包括在 AWS 服务上运行的无服务器代码的优势。 AWS Glue 提供了一个 UI,允许您构建 ETL 作业的源和目标,并自动为您生成无服务器代码。

1.AWS Glue 爬网程序连接到数据存储,同时处理分类器列表,帮助确定数据架构并为 AWS Glue 数据目录创建元数据。 虽然爬虫会发现表方案,但它不会发现表之间的关系。 元数据存储在数据目录中,用于帮助为您的 ETL 作业提供流程。 您可以根据需要从选项菜单中按计划运行爬网程序,或者在基于 Linux 的操作系统中创建自定义 cron 作业,并根据事件(例如交付新数据文件)触发。 通过运行爬网程序,存储在数据目录表中的元数据将随着架构更改(例如数据源中的新列)等项目进行更新。 您可以按照向导并执行以下步骤,以最简单的方式创建 AWS Glue 爬网程序。 首先,为您的爬虫命名。 然后,您必须选择一个数据存储并包含它的路径,在这里您可能会包含 ace 粘合图案。 (可选)添加另一个数据存储、选择 IAM 行或创建一个新行。 为此爬网程序创建计划,配置爬网程序的输出,在此步骤中,您必须添加或选择包含由您正在创建的爬网程序创建的表的现有数据库。

可以在数据目录中添加爬网程序以实现数据存储的多样化。 爬网程序的输出由数据目录中定义的一个或多个元数据表组成。 请注意,您的爬网程序使用 AWS Identity and Access Management by IAM 角色来获取访问数据存储和数据目录的权限。

  1. 分类器Classifiers.。 分类器读取数据存储中的数据并给出输出以包括指示文件的分类或格式的字符串。 例如 JSON 和文件的架构。 AWS Glue 提供各种格式的内置分类器,包括 JSON、CSV、Web 日志和许多数据库系统。 CSV 分类器检查以下分隔符:逗号、竖线、制表符和分号。 您可以包含或排除模式来管理爬网程序将搜索的内容。 例如,您可以排除以 CSV 文件扩展名结尾的所有对象,或排除 S3 存储桶中的特定文件夹。 正则表达式也可用于排除模式。 对于自定义分类器,您可以根据分类器的类型定义创建架构的逻辑。 如果您的数据与任何内置分类器都不匹配或者您想要自定义爬网程序创建的表,则您可能需要确定自定义分类器。

  2. 连接。 连接创建连接到数据所需的属性。 AWS Glue 作业中的爬网程序使用连接来访问某些类型的数据存储。 AWS Glue 可以使用 JDBC 协议、Amazon Redshift 和 Amazon RDS 连接到以下数据存储,包括 Amazon Aurora、MariaDB、Microsoft SQL Server、MySQL、Oracle 和 PostgreSQL。 可以在创建爬网程序时选择的数据存储将推断架构,从而推断收集并存储在数据目录中的元数据。

  3. 数据目录。 AWS Glue 数据目录是在您运行爬网程序时创建的。 它是数据资产的持久元数据存储,包含表定义、作业定义和其他控制信息,可帮助您管理 AWS Glue 环境。 保留目标数据存储的架构版本历史记录,以便您可以查看数据随时间的变化情况。 当您完成创建作业的 UI 指南时,AWS Glue 会自动生成 ETL 作业的提取、转换和加载步骤的代码。 代码是根据您在 Scala 和 Python 之间的选择生成的,并且是为 Apache Spark 编写的。 提供开发端点供您编辑、调试和测试它为 ETL 作业生成的代码。 您可以使用您的首选 IDE 编写自定义读取器、写入器或转换,以作为客户库包含在您的 AWS Glue ETL 作业中。

AWS Glue 作业可以计划运行、按需运行或通过事件触发运行。 您可以启动多个作业并行运行,或者指定作业之间的依赖关系以构建更复杂的 ETL 管道。 日志和通知被推送到 Amazon CloudWatch,以便您可以监视、收到警报并对已运行的作业进行故障排除。

现在让我们看一下有关如何创建 AWS Glue 作业的图表。 首先,您为您的工作选择一个数据源。 表示数据源的表必须已在数据目录中定义。 如果源需要连接,则您的作业中也会引用该连接。 请记住,连接包含连接到数据所需的属性。 如果您的作业需要多个数据源,您可以稍后通过编辑脚本来添加它们。 该脚本是自动生成的,在完成作业创建向导后立即可用。 接下来,您选择作业的数据目标。 表示数据目标的表可以在您的数据目录中定义,或者您的作业可以在运行时创建目标表。 您可以在创作作业时选择目标位置,如果目标需要连接,则作业中也会引用该连接。 如果您的作业需要多个数据目标,您可以稍后通过再次编辑脚本来添加它们。 接下来,您通过为作业和生成的脚本提供参数来自定义作业处理环境。 我们将在下一讲中添加一个带有演示的作业。 最初,AWS Glue 会生成一个脚本,但您也可以编辑该脚本以添加源、目标和转换。 您指定如何通过基于吨的计划或事件按需调用您的作业。 有关更多信息,请参阅接下来的演示,其中包括在 AWS Glue 中创建触发器并将其应用到作业。

根据您的输入,AWS Glue 生成 Pyspark 或 Scala 脚本。 您可以根据您的业务需求定制脚本。 如果您无权访问数据存储,您将被阻止,因此您必须使用以下任意类型的具有加密权限的身份、IAM 用户或 IAM 角色。 除了使用名称和密码之外,您还可以为每个用户生成访问密钥。 作为最佳实践,您不希望使用 root 用户访问数据源,但应努力限制仅访问所需的数据源,并维护对敏感数据的某些治理。 那么 AWS Glue 有什么好处呢? 无服务器。 您只需在 AWS Glue 运行时为资源付费。 爬网程序只需很少的配置即可从数据源检测并推断模式,并且可以安排爬网,还可以触发作业运行以执行 ETL。 自动代码生成为您提供了在 Python 或 Scala 代码中运行简单作业或在您自己的代码添加中进行扩展所需的功能。 该代码通过自定义端点与外部工具链集成。

使用 AWS Glue,您可以为发现数据的爬网程序以及处理和加载数据的 ETL 作业按秒计费。 对于 AWS Glue 数据目录,您只需支付简单的月费即可存储和访问元数据。 存储的前一百万个对象是免费的,前一百万个访问也是免费的。 如果您配置开发端点来交互式开发 ETL 代码,则您需要按每秒计费的小时费率付费。 在 US East-One 中,每个 DPU 小时的成本为 0.44 美元,单个 DPU 提供四个虚拟 CPU 和 16 GB 内存。 那么您什么时候会选择不使用 AWS Glue? 与许多技术一样,如何执行 ETL 也是有争议的。 还有许多其他本地和云中的 ETL 方法可以满足开发人员和组织的需求。 您的公司或团队可能已经在使用本地部署或其他 ETL 管道技术方面进行了大量投资,并且大多数 ETL 工具仍然是本地部署的,并且管道是通过 UI 可视化创建的。 语言仅限于 Python 和 Scala,并且更新架构时必须编辑作业。 如果您已经进行了开发,您的团队可能会对 Java 或其他语言进行投资。 AWS Glue 仍然是一个相对年轻的产品,目前没有第三方开箱即用的连接器,例如sales force 和其他您可以在更成熟的 ETL 工具集中期待的连接器。

爬虫的例子

在这里插入图片描述

从 AWS S3 移动到 RDS MySQL 数据库所需的生命周期和流程。 此外,您还必须设置一个将与 AWS Glue 以及源数据和目标数据配合使用的安全 IAM 角色。

将使用爬网程序在数据目录中创建一个数据库,然后运行创建并运行 ETL 作业,将数据从 S3 源移动到 MySQL 数据库。 之后,您可以选择使用 Amazon QuickSight 或其他一些 BI 工具来查看可视化效果并分析数据。

我们要做的第一件事是创建一个爬虫。 现在,当我们创建爬虫时,在此过程中,我们将创建数据库和表,该表是数据目录并存储数据源或数据目标的元数据。我们只是为数据源创建一个爬虫。 单击添加爬网程序,然后我将选择我的数据源,即我们再次从交通统计局下载并上传到此处的 S3 存储桶的 CSV 文件。 点击下一步。 现在,如果我们愿意,我们可以添加另一个数据存储,,然后我们可以安排爬网程序每小时、每天或按需运行。 我们只会根据需要保留它,但有时您的存储桶中有新文件,并且您希望更定期地进行爬网。 捕获架构更改。

让我们添加我们的数据库。然后我们就完成了。 我们需要做的就是运行爬虫。 现在,当爬虫运行时,它会生成一些日志,这些日志将告诉我们爬虫是否成功,并且还允许我们排除是否存在任何问题。 这是爬网程序成功运行的日志示例。 除了运行爬虫之外,我们还想创建到数据目的地的连接。 我们知道我们正在连接到 MySQL 数据库。 我们可以单击“完成”。 现在,关于爬虫需要注意的一件事是,我们可以向爬虫添加一个分类器来帮助定义我们的数据源,并且有很多选项,这些是分类器类型。 如果您选择 Grok,那么您可以选择分类或数据格式类型,并且可以提供 Grok 模式。 您还可以选择 XML、JSON 或 CSV,最常见的数据源之一是 CSV 文件,但 CSV 文件有所不同,它们可能以逗号分隔制表符或管道分隔。 在本例中,您需要定义 CSV 文件。 我们的 CSV 文件非常常见,我们不需要使用分类器。 我们实际上使用了默认分类河 看起来我们的爬虫已经完成了。

我们已经创建了一个数据连接,现在我们要做的是创建一个作业,该作业将是 Csv_to_MySql。 同样,我们将使用之前创建的相同 IAM 角色。 我们将保留默认值。 我们将使用 AWS Glue 和 Python 生成脚本。 现在我们可以选择我们的数据源。 现在我们可以选择我们的数据目标。 现在,在本例中,我们要在我们创建的连接上创建表。 我们的数据库名称是destinationdemo。 我们点击“下一步”。 现在您可以看到映射就在这里。 我们可以进行一些编辑。 我们可以添加一列,如果愿意的话也可以添加一个空列。 但一切都已准备就绪,我们可以从数据源(即 CSV 文件)获取数据,对其进行转换并将其映射到目标数据库。 现在,一旦我们单击“保存”,它就会生成 Python 代码,我们可以在此处进行其他自定义。

我们创建的爬虫创建了一个数据库和一个表,当我们打开它时,该表会显示源文件中的元数据或列,我们可以查看以 JSON 形式出现的属性。 我们还可以编辑模式,例如,如果我们希望年份是 int,我们可以将 Bigint 更改为 int 数据类型。 更新并保存。 我们还可以添加一列。 我们还可以比较版本,例如,如果我们的爬虫抓取了两个不同的源,我们可以看到架构如何更改,并将其与一个和另一个之间的元数据定义进行比较。 我想讨论的另一件事是添加触发器。 现在,触发器可以安排我们创建的作业。 它可以按特定顺序或按需运行作业。 因此,如果我想在另一项工作之后运行一项工作,我想为此创建一个触发器。

AWS Glue 的优势,

  1. AWS Glue 中的 ETL 代码可以轻松运行无服务器。
  2. AWS Glue 有一个爬网程序,可以推断源数据、工作数据和目标数据的架构,爬网程序可以按计划运行以检测更改,
  3. AWS Glue 会自动生成 ETL 脚本,作为在 Python 或 Scala 中进行自定义的起点。

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

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

相关文章

springboot整合swagger,postman,接口规范

一、postman介绍 1.1概述 工具下载 Postman(发送 http 请求的工具) 官网(下载速度比较慢):Download Postman | Get Started for Free 网盘下载:百度网盘 请输入提取码 1.2Http 请求格式 请求地址请求方法状…

算法刷题笔记

1.力扣-1337.矩阵中战斗力最弱的K行 给你一个大小为 m * n 的矩阵 mat,矩阵由若干军人和平民组成,分别用 1 和 0 表示。 请你返回矩阵中战斗力最弱的 k 行的索引,按从最弱到最强排序。 如果第 i 行的军人数量少于第 j 行,或者两行…

C语言分析基础排序算法——归并排序

目录 归并排序 递归版本 非递归版本 非递归版本的问题 归并排序小优化 归并排序 归并排序,分为分治以及合并,分治部分可以使用递归或者非递归完成,归并排序的基本思路是:将已有序的子序列合并,得到完全有序的序列…

探索递归函数:C语言中的使用方法

递归函数是一种在程序设计中常见且强大的工具,它可以将一个问题分解成更小的子问题,并通过反复调用自身来解决这些子问题。在C语言中,递归函数的运用极大地增强了程序的灵活性和可读性。本文将探讨C语言中如何使用递归函数,以及递…

Python之Web开发中级教程----搭建Web框架二

Python之Web开发中级教程----搭建Web框架二 搭建虚拟环境 虚拟环境的作用 虚拟环境可以搭建独立的python运行环境, 使得单个项目的运行环境与其它项目互不影响. 搭建虚拟环境 (1)安装 sudo pip install virtualenv sudo pip install virtualenvwra…

JUC之AQS

AQS抽象的队列同步器 public abstract class AbstractQueuedSynchronizerextends AbstractOwnableSynchronizerimplements java.io.Serializable {AbstractQueuedSynchronizer 是用来实现锁或者其他同步器组件的公共基础部分的抽象实现,是重量级基础框架及整个JUC体…

60 个深度学习教程:包含论文、实现和注释 | 开源日报 No.202

labmlai/annotated_deep_learning_paper_implementations Stars: 44.0k License: MIT annotated_deep_learning_paper_implementations 是一个包含深度学习论文的 60 个实现/教程,附带并排注释;包括 transformers(原始、xl、switch、feedbac…

区块链推广海外市场怎么做,CloudNEO服务商免费为您定制个性化营销方案

随着区块链技术的不断发展和应用场景的扩大,区块链项目希望能够进入海外市场并取得成功已成为越来越多公司的目标之一。然而,要在海外市场推广区块链项目,需要采取有效的营销策略和措施。作为您的区块链项目营销服务商,CloudNEO将…

超详细——VsCode连接远程主机/虚拟机并设置免密登录

超详细——VsCode连接远程主机/虚拟机并设置免密登录 文章目录 超详细——VsCode连接远程主机/虚拟机并设置免密登录[toc]连接到远程主机/虚拟机步骤1、打开vscode拓展 搜索 remote-ssh并安装步骤2、打开远程主机/虚拟机的ssh服务步骤3、设置连接远程主机的配置文件 设置免密登…

网络爬虫丨基于scrapy+mysql爬取博客信息

文章目录 写在前面实验描述实验框架实验需求 实验内容1.安装依赖库2.创建Scrapy项目3.配置系统设置4.配置管道文件5.连接数据库6.分析要爬取的内容7.编写爬虫文件 运行结果写在后面 写在前面 本期内容:基于scrapymysql爬取博客信息并保存到数据库中 实验需求 ana…

欧科云链做客Google Cloud与WhalerDAO专题论坛,畅谈Web3数据机遇

3月10日,由Google Cloud、WhalerDAO和baidao data主办,以Web3AI 2024 DATA POWER为主题的分享会在北京中关村举行。欧科云链高级研究员Jason Jiang受邀参加活动,带来“从链上数据发掘Web3时代的无限机遇”的主题分享。 Web3.0核心要素始终是链…

波奇学Linux:信号量环形队列,原生线程池,封装线程

基于信号量的多生产多消费环形队列 代码 const static int defaultcap5;template<class T> class RingQueue { private:void P(sem_t &sem){sem_wait(&sem); //资源-1}void V(sem_t &sem){sem_post(&sem); //资源加一}void Lock(pthread_mutex_t &…

c++实现简单搜索二叉树<K,V>形

文章目录 搜索二叉树节点类BSTreeNode(节点类的构造) BSTree(功能实现类)Insert(插入)Erase(删除)Find(查找这个节点) 搜索二叉树 搜索二叉树本质:左节点比我小 右节点比我大 节点类 BSTreeNode:给自身节点封装一个类 用这个类来添加节点的操作 我们写的是一个key.value型的搜…

【现代C++】移动语义和右值引用

现代C++中的移动语义和右值引用是C++11引入的重要特性,旨在优化资源管理和提升性能。这些特性允许资源的转移而非复制,特别是对于临时对象和大型对象。 1. 右值引用 右值引用是对临时对象的引用,它允许你修改临时对象。使用&&来声明右值引用。 #include <iost…

【电路笔记】-MOSFET作为开关

MOSFET 作为开关 文章目录 MOSFET 作为开关1、概述2、MOSFET特性曲线2.1 截住区域2.2 饱和区域3、MOSFET作为开关的示例4、功率MOSFET电机控制5、P沟道MOSFET作为开关6、互补MOSFET作为开关电机控制器当 MOSFET 在截止区和饱和区之间工作时,MOSFET 是非常好的电子开关,用于控…

wsl ubuntu 安装的正确方式

目录 wsl ubuntu 安装的正确方式&#xff1a; 将wsl2设置为默认版本&#xff1a; 1、打开powershell 2、设置wsl的版本为2 ​编辑 3、更新wsl程序 4、强制关闭子系统 5、查看wsl支持的列表 6、安装指定版本的系统 wsl ubuntu 安装的正确方式&#xff1a; 此时&#xff0c…

一体成型PFA尖头镊子高纯特氟龙材质镊子适用半导体新材料

PFA镊子用于夹取小型片状、薄状、块状样品&#xff0c;广泛应用在半导体、新材料、新能源、原子能、石油化工、无线电、电力机械等行业。 具有耐高低温性&#xff08;可使用温度-200℃&#xff5e;&#xff0b;260℃&#xff09;、耐腐蚀、表面不粘性等特点&#xff0c;用于苛…

基于Springboot+Redis+mysql实现的闲置二手交易网站管理系统

1.1 背景分析 二手商品是学生比较青睐的廉价商品&#xff0c;网站设计应着重突出实用和廉价。也有一部分消费者是淘宝者&#xff0c;他们对相中的商品有着急切的拥有欲望。网上交易的好学生提供一个供需平台&#xff0c;学生可以将自己不用的东西放在网上&#xff0c;也可在网…

解决quest2激活后更新卡0%(内附全套工具)

注意:顺序很重要,一定是要先开移动热点,再开Netch 下载工具包https://wwi.lanzoup.com/iXaX61rou8hi ,密码在下方 解压后,先安装这个 开启移动热点网络名称和密码随便写下就行 开启后会有个 本地连接 开启Netch添加VLESS 服务器 然后点击启动,启动后 会有一个 aioClou…

设计模式 --3:装扮模式

结构图 代码 #include<iostream>using namespace std;class person { public:person() {};person(string name) { this->name name; }virtual void show() {cout << "装扮的:" << this->name << endl;} private:string name; }; //装…