AWS用Glue读取S3文件上传数据到Redshift,再导出到Quicksight完整版,含VPC配置

1. 项目背景

AWS的官方文档,关于Glue和Vpc配置部分已经比较旧了,按照官方文档配置的流程始终跑不通,花了一番时间和波折后,才终于完整的跑通了。

在数据分析和商业智能(BI)领域,我们常需要将存储在 Amazon S3 上的原始数据加载到 Amazon Redshift Serverless,进行清理和转换后,再导入 Amazon QuickSight 进行可视化分析。本文将介绍如何使用 AWS Glue 读取 S3 文件,上传数据到 Redshift,并导出到 QuickSight,同时解决 VPC 访问问题

2. 架构流程

  1. 数据存储:S3 作为数据源,存放 CSV、JSON 或 Parquet 文件。

  2. 数据 ETL:Glue 读取 S3 数据,转换格式后上传到 Redshift。

  3. 数据分析:Redshift 存储清洗后的数据,提供 SQL 查询能力。

  4. 可视化展示:QuickSight 连接 Redshift 进行数据分析。

  5. VPC 配置:Redshift 运行在私有子网,需要 VPC 连接让 Glue 和 QuickSight 访问它。

    AWS整体流程配置顺序:

    配置VPC --> 创建 Redshfit 的IAM  --> 创建含Glue读写权限的IAM --> 创建Redshift 命名空间         --> 创建Glue任务  --> Quicksight 创建VPC配置 --> 读取Redshift

3. 详细操作步骤

3.1  VPC配置 (最重要的一个环节) 

  创建VPC: 其他选项按照默认的配置,手动开启DSN设置。(或者直接使用默认的VPC)

创建子网,互联网网关,子网和路由按照默认的做配置,之后自己需要再手动配置路由,所有的配置的时候下拉框都选择刚刚创建的VPC

路由需要加入0.0.0.0/0 igw,才能访问公网  (如果使用默认VPC,此处需要确认,没有的话手动加一下)

配置网络ACL,入站和出站规则:

然后再点击子网关联,编辑子网,把创建的子网加入进去

创建一个安全组,把所有流量都配置到源为安全组名称自己的配置上

终端节点,添加vpce-svc-0704d47ebfd5f32fc,s3,redshift,sts,kms, secretsmanager,这几个都必须要,缺一不可。

3.2  创建 Amazon Redshift Serverless 集群

  1. 登录 AWS 控制台,进入 Amazon Redshift Serverless控制面板。

  2. 创建工作组,配置需注意:

  3. Performance and cost controls:选择基本容量

    • RPU选择这个地方是大坑,天坑,一定要慎重选择,默认值是128, 一定要根据自己的数据大小看清楚合适的配置。(一个 RPU 提供 16 GB 内存),如果配置太高,哪怕只是执行简单一条查询,每次都按配置的RPU进行搜索计费。
      Amazon Redshift Serverless 的计算容量     Amazon Redshift Serverless 的计费

    • 网络和安全:选择配置的VPC,或者默认VPC,选择 私有子网

    • 安全组:选择一个自定义的安全组,记住名称,这个安全组后面还需要做一些配置

    • 增强型 VPC 路由:打开

    • IAM

  4. 创建表结构:写sql创建,例如:

    CREATE TABLE zyytest1 (id INT PRIMARY KEY,test_f1 VARCHAR(255),create_time TIMESTAMP
    );

    3.3  在 S3 上传数据

     在 S3 上传数据 zyytest1__max__3.json

    [{"id":5, "test_f1": "test_value_6", "create_time": "2025-03-26T10:00:06"},{"id":7, "test_f1": "test_value_7", "create_time": "2025-03-26T10:00:07"},{"id":8, "test_f1": "test_value_8", "create_time": "2025-03-26T10:00:08"}
    ]

    3.4  配置 AWS Glue 读取 S3 数据并上传到 Redshift

            3.4.1  创建 Glue VPC网络

             进入 AWS Glue 控制台,选择 Connections > Create connection

              选择Network --> next --> 选择3.1 里搭建的VPC,子网,安全组,保存default_vpc。创建完之后状态是ready就是正常的。

            3.4.2  创建 Glue 数据连接

                    进入 AWS Glue 控制台,选择 Connections > Create connection。

                    选择redshift --> 填写name:redshift-dev,把刚刚创建的redshift用户名命名填写上,保存后显示Ready,就是正常的可用状态。

    如果配置完不可用,可以点击这个Test connection  来测试连接是否正常

            3.4.3  创建 Glue Visual 

            点Visual ETL,选择S3,配置路径后,先查看schema是否正确

    配置完之S3的路径之后,可以在左下角看到schema

     正确的话进行下一步,选择Redshift,配置数据库连接,查看数据库表的schema是否正确。

           

    这个IAM记得配置上,就可以看到数据库的schema,在左下角。

    然后点击Script,可以看到图形化的配置生成的Script,并且可以在这个Script上,用python脚本更改配置。

    到这一步就证明VPC和Redshift的数据库都通了,接下来就可以摸索按照自己的需要,选择用图形化的方式配置更合适,或者用脚本的方式更合适了。

    配置完保存之后运行一遍,成功的话,在redshift查询下是否完整存入,如果缺少数据,需要手动指定schema。

            3.4.4  如果查询失败,再检查下IAM配置,选择合适的策略 
                    
            3.4.5  Job details 检查配置

    3.5 配置QuickSight VPC 

    点击右上角管理Quicksight --> 管理VPC链接 --> 添加VPC链接,把3.1配置的vpc,子网,安全组附加上去

    3.6 配置 Amazon QuickSight 访问 Redshift

    找到数据集 --> 新数据集 --> Redshift手动连接 ,选择刚刚创建的vpc,配置redshift的数据库账号密码,点击验证连接,验证通过后,创建数据源

    点击分析,新分析,创建界面化的表格,进行DIY。

    4. 总结

    • AWS Glue 负责从 S3 读取数据,转换后写入 Redshift

    • VPC 配置 解决 Glue 和 QuickSight 无法访问 Redshift 的问题。

    • QuickSight 连接 Redshift 进行 数据可视化

    通过该流程,我们可以自动化数据管道,实现从 S3 -> Glue -> Redshift -> QuickSight 的完整数据流,为企业 BI 提供高效的数据分析能力! 🚀

    参考链接:

    AWS Glue官方文档

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

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

    相关文章

    SpringBoot详细教程(持续更新中...)

    SpringBoot 一、概述 Springboot有哪些特点呢?或者说它跟Spring比有哪些优点呢? 1、起步依赖 通俗的说,就是一个依赖包含了很多个依赖;好处是引入所需的依赖更加简便,而且有效避免了依赖之间的版本冲突问题&#xf…

    亚马逊玩具品类技术驱动型选品策略:从趋势洞察到合规基建

    一、全球玩具电商技术演进趋势 (技术化重构原市场背景) 数据可视化分析:通过亚马逊SP-API抓取2023年玩具品类GMV分布热力图 监管技术升级: 美国CPSC启用AI质检系统(缺陷识别准确率92.7%) 欧盟EPR合规接口…

    spring boot 整合redis

    1.在pom文件中添加spring-boot-starter-data-redis依赖启动器 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2.编写三个实体类 RedisHash("p…

    python 语法篇(一)

    目录 1 正则匹配注意点11.1 正则匹配字符串写法1.2 创建re函数&#xff08;1&#xff09;re.search()--搜索第一个匹配项&#xff08;2&#xff09;re.match() - 从字符串开头匹配&#xff08;3&#xff09;re.findall() - 返回所有匹配项的列表&#xff08;4&#xff09;re.fi…

    深度学习Note.4(机器学习实践)

    线性回归 零. 1.paddle库的一些API paddle.rand(shape,dtype None, name None) *随机生成符合均匀分布的Tensor paddle.nromal(mean 0.0, std 1.0, shape None, name None) *随机生成符合正态分布的Tensor *输入正态分布均值&#xff0c;标准差&#xff0c; 生成结果的…

    UE5学习笔记 FPS游戏制作29 更换武器时更换武器的图标

    文章目录 制作物体图标UI添加获取武器图标的方法使用事件分发器&#xff0c;通知UI要换枪定义事件分发器调用事件分发器注册事件分发器 制作物体图标UI 在Fpp-UI上添加一个图片&#xff0c;改名为五weaponIcon&#xff0c;勾选SizeToContent,锚点放在右下角&#xff0c;对齐改…

    RCE(自增、取反、异或)

    自增: 也就是说&#xff0c;a > b&#xff0c;b > c... 所以&#xff0c;我们只要能拿到一个变量&#xff0c;其值为a&#xff0c;通过自增操作即可获得a-z中所有字符。 无字母数字构造&#xff1a; 所有敏感字符串&#xff08;ASSERT、_POST&#xff09;通过自增动态生…

    从架构角度谈谈云原生架构

    1、云原生架构起源 随着云服务商的成熟&#xff0c;客户面临着将服务直接使用云平台的服务部署在云平台上&#xff0c;或者采用本地和云上混合部署的模式来对外提供服务&#xff0c;从解决方案的角度来说&#xff0c;采用云原生架构的优点有&#xff1a; 可以利用云服务的管理…

    Zcanpro搭配USBCANFD-200U在新能源汽车研发测试中的应用指南(周立功/致远电子)

    ——国产工具链的崛起与智能汽车测试新范式 引言&#xff1a;新能源汽车测试的国产化突围 随着新能源汽车智能化、网联化程度的提升&#xff0c;研发测试面临三大核心挑战&#xff1a;多协议融合&#xff08;CAN FD/LIN/以太网&#xff09;、高实时性数据交互需求、复杂工况下…

    【Verilog】实验十 带倒计时交通灯控制电路设计

    目录 一、实验目的 二、实验环境 三、实验任务 四、实验原理与实验步骤 1. 实验原理 2. 实验步骤 五、实验思考 代码 TOP.v trafic2_2.v shumaguan.v clk_div.v 一、实验目的 1. 掌握同步有限状态机的设计方法。 2. 采用状态机的设计方法&#xff0c;设计实现带倒…

    Linux : System V 共享内存

    目录 一 前言 二 共享内存概念 三 共享内存创建 四 查看共享内存 五 共享内存的删除 六 共享内存的关联 七 共享内存去关联 八 共享内存的使用&#xff08;通信&#xff09; 九 共享内存的特点 一 前言 共享内存区是最快的IPC形式&#xff08;进程间通信&#xff1…

    Spring Cloud 2023.x安全升级:OAuth2.1与JWT动态轮换实战

    引言&#xff1a;当安全遇上云原生&#xff0c;零停机密钥轮换成为刚需 在微服务架构中&#xff0c;OAuth2.1与JWT已成为身份验证的黄金标准&#xff0c;但传统方案存在两大痛点&#xff1a; 密钥轮换风险&#xff1a;手动替换JWT密钥需重启服务&#xff0c;导致短暂鉴权中断&…

    创建私人阿里云docker镜像仓库

    一.登录阿里云 https://cr.console.aliyun.com/cn-hangzhou/instances 二.创建个人实例 【实例列表】 》【创建个人实例】 》【设置Registry登录密码】 三.创建命名空间 步骤&#xff1a;【个人实例】》【命名空间】》【创建命名空间】 注:一个账号最多可以创建3个命名空…

    oracle基础知识视图的定义和应用

    1.1 视图的定义 视图(View)是数据库中非常重要的内容&#xff0c;在实际开发中必须学会视图的编写。 用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。视图是可以嵌套的。 视图的定义存在数据库中&#xff0c;与此定义相关的数据并没有再存一份于数据库中…

    边缘计算:工业自动化的智能新引擎

    在工业4.0的浪潮中&#xff0c;工业自动化正经历着前所未有的变革。随着物联网&#xff08;IoT&#xff09;技术的普及&#xff0c;越来越多的工业设备被连接到网络中&#xff0c;产生了海量的数据。然而&#xff0c;传统的云计算架构在处理这些实时性要求极高的工业数据时&…

    12-SpringBoot3入门-项目打包和运行

    1、打包 1&#xff09;打包插件 pom.xml <!--SpringBoot应用打包插件--> <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plu…

    【PCIE711-214】基于PCIe总线架构的4路HD-SDI/3G-SDI视频图像模拟源

    产品概述 PCIE711-214是一款基于PCIE总线架构的4路SDI视频模拟源。该板卡为标准的PCIE插卡&#xff0c;全高尺寸&#xff0c;适合与PCIE总线的工控机或者服务器&#xff0c;板载协议处理器&#xff0c;可以通过PCIE总线将上位机的YUV 422格式视频数据下发通过SDI接口播放出去&…

    PipeWire 音频设计与实现分析一——介绍

    PipeWire 是一个基于图的媒体处理引擎&#xff0c;一个可以运行多媒体节点图的媒体服务器&#xff0c;是 Linux 的音频/视频总线&#xff0c;它管理 Linux 系统中&#xff0c;不同应用程序对音频和视频设备的共享访问。它提供了一个本地客户端音频 API&#xff0c;但也提供兼容…

    使用卷积神经网络识别MNIST数据集

    卷积神经网络 卷积神经网络本质是共享权重稀疏链接的全连接网络 编写步骤 构建一个神经网络&#xff0c;步骤是几乎不变的&#xff0c;大概有以下几步 准备数据集 #更高级的CNN网络 import torch import torch.nn as nn import torch.nn.functional as F import torchvisi…

    力扣125.验证回文串

    如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s&#xff0c;如果它是 回文串 &#xff0c;返回 true &#xff1b;否则&#…