当前位置: 首页 > news >正文

基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析(一)——创建Glue

1 通过Athena查询s3中的数据

此实验使用s3作为数据源

ETL:

E    extract         输入
T    transform     转换
L    load             输出

大纲

  • 1 通过Athena查询s3中的数据
    • 1.1 架构图
    • 1.2 创建Glue数据库
    • 1.3 创建爬网程序
    • 1.4 创建表
      • 1.4.1 爬网程序创建表
      • 1.4.2 手动创建表
    • 1.5 Athena查询
    • 1.6 总结

1.1 架构图

在这里插入图片描述

1.2 创建Glue数据库

首先我们需要创建一个数据库。我们将会使用爬网程序来填充我们的数据目录。

步骤图例
1、入口在这里插入图片描述
2、创建数据库 只需输入一个数据库名称即可在这里插入图片描述
3、结果在这里插入图片描述

1.3 创建爬网程序

在任务中,我们经常会使用Glue爬网程序来填充我们的数据目录。
爬虫可以在一次运行中爬取多个数据存储。在爬取完成后,我们会在数据目录中看到由爬虫创建的一个或多个表。
创建表后,我们就可以在接下来的Athena查询或ETL作业中使用表来作为源或目标了。

步骤图例
1、入口在这里插入图片描述
2、输入爬虫名称在这里插入图片描述
3、选择数据源类型(Data Stores:创建,Existing catalog tables:更新) 选择爬取类型(Crawl all folders:爬取全部文件夹,Crawl new folders only:只爬取新文件夹,Crawl changed folders indentified by Amazon S3 Event Notifications:只爬取S3事件通知的有变更的文件夹)在这里插入图片描述
4、选择s3 (可对s3中的需要爬取的数据进行筛选)在这里插入图片描述
5、创建或选择爬网程序IAM角色(需要有对应S3与Glue的权限)在这里插入图片描述
6、对于不确定的实时数据或许要定时更新的数据,可按需选择频率;若只需创建表结构,可选择按需运行在这里插入图片描述
7、确认在这里插入图片描述

此时,数据库与爬网程序已准备完毕。
我们将会运行爬网程序自动分析数据结构并创建表。

1.4 创建表

如果对待爬取数据结构未知,或者结构复杂、字段繁杂,则使用“爬网程序创建表”;对于对待爬取数据结构清晰明了的,可以使用“手动创建表”模式。

1.4.1 爬网程序创建表

步骤图例
1、运行                         在这里插入图片描述
2、运行中在这里插入图片描述
3、运行完毕在这里插入图片描述
4、运行结果在这里插入图片描述
5、表结构在这里插入图片描述

1.4.2 手动创建表

步骤图例
1、入口在这里插入图片描述
2、表名在这里插入图片描述
3、数据源在这里插入图片描述
4、选择文件类型在这里插入图片描述
5、手动创建表需要自定义列;请根据提示创建在这里插入图片描述
6、一直下一步即可

1.5 Athena查询

Athena是一种交互式查询服务(不是数据库)。并且Athena可以使用标准SQL直接查询S3中的数据,前提是需要使用Glue连接S3源。Athena还支持查询如DynamoDB、Redshift、MySQL等数据库。

步骤图例
1、入口在这里插入图片描述
2、设置查询结果存储位置:s3在这里插入图片描述在这里插入图片描述
3、查看表,可查看数据库以及其中的表在这里插入图片描述
4、查询结果:使用sql查询在这里插入图片描述

1.6 总结

在此实验中,我们使用Glue 的爬网程序自动解析存储在s3桶中的原始数据,自动创建了表。通过Glue数据库中的表,我们可以使用Athena对表进行查询(Athena每次检索表对应的s3桶数据,按检索量收费)。接下来我们会对原始数据进行转换、清洗以及分区操作,以及使用API Gateway+Lambda实现一个无服务架构,通过API查询数据。

http://www.lryc.cn/news/257668.html

相关文章:

  • Vue学习计划-Vue2--VueCLi(二)vuecli脚手架创建的项目内部主要文件分析
  • spring boot项目如何自定义参数校验规则
  • springboot整合xxl-job,通过代码进行调度中心注册开启任务等
  • k8s集群部分使用gpu资源的pod出现UnexpectedAdmissionError问题
  • 自定义 el-select 和 el-input 样式
  • 解决本地centos虚拟机重启,自动变换 ip 地址的问题
  • pt36项目短信OAth2.0
  • 教师们如何一对一私发成绩?
  • 12.11
  • Spring JdbcTemplate
  • 力扣编程题算法初阶之双指针算法+代码分析
  • 实现安装“自由化”!在Windows 11中如何绕过“您尝试安装的应用程序未通过微软验证”
  • 【mysql】下一行减去上一行数据、自增序列场景应用
  • CLIP在Github上的使用教程
  • 入职字节外包一个月,我离职了。。。
  • SpringBoot的web开发
  • 传染病传播速度
  • 前端打包环境配置步骤
  • css的4种引入方式--内联样式(标签内style)、内部样式表(<style>)、外部样式表(<link>、@import)
  • GPT-4 变懒了?官方回复
  • 编译器和 IR:LLVM IR、SPIR-V 和 MLIR
  • 蓝牙物联网对接技术难点有哪些?
  • 漫谈Uniapp App热更新包-Jenkins CI/CD打包工具链的搭建
  • Axure简单安装与入门
  • 前端知识笔记(四十五)———前端开发与后端开发有什么区别
  • Jol-分析Java对象的内存布局
  • 基于sfunction builder的c-sfunction编写及案例测试分析
  • 【Java期末复习资料】(1)知识点总结
  • 进程、容器与虚拟机的区别
  • 全网快递批量查询的得力助手