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. 架构流程
-
数据存储:S3 作为数据源,存放 CSV、JSON 或 Parquet 文件。
-
数据 ETL:Glue 读取 S3 数据,转换格式后上传到 Redshift。
-
数据分析:Redshift 存储清洗后的数据,提供 SQL 查询能力。
-
可视化展示:QuickSight 连接 Redshift 进行数据分析。
-
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 集群
-
登录 AWS 控制台,进入 Amazon Redshift Serverless控制面板。
-
创建工作组,配置需注意:
-
Performance and cost controls:选择基本容量
-
RPU选择这个地方是大坑,天坑,一定要慎重选择,默认值是128, 一定要根据自己的数据大小看清楚合适的配置。(一个 RPU 提供 16 GB 内存),如果配置太高,哪怕只是执行简单一条查询,每次都按配置的RPU进行搜索计费。
Amazon Redshift Serverless 的计算容量 Amazon Redshift Serverless 的计费


-
网络和安全:选择配置的VPC,或者默认VPC,选择 私有子网
-
安全组:选择一个自定义的安全组,记住名称,这个安全组后面还需要做一些配置
-
增强型 VPC 路由:打开
-
IAM

-
-
创建表结构:写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官方文档
相关文章:
AWS用Glue读取S3文件上传数据到Redshift,再导出到Quicksight完整版,含VPC配置
1. 项目背景 AWS的官方文档,关于Glue和Vpc配置部分已经比较旧了,按照官方文档配置的流程始终跑不通,花了一番时间和波折后,才终于完整的跑通了。 在数据分析和商业智能(BI)领域,我们常需要将存…...
Qt WebSockets使用
Qt WebSockets 是 Qt 官方提供的 WebSocket 协议 实现库,支持全双工通信(客户端/服务端),适用于实时交互应用(如聊天、游戏、实时数据监控)。 1. 核心功能 完整的 WebSocket 协议支持 符合 RFC 6455 标准,支持 ws:// 和 wss://(加密)。 自动处理握手、帧拆分、Ping/…...
Docker学习--容器生命周期管理相关命令--start/stop/restart命令
docker start 命令作用: 启动一个或多个已经创建的容器。 语法: docker start [参数] CONTAINER [CONTAINER…](要操作的容器的名称,可以同时操作多个) 参数解释: -a:附加到容器的标准输入输出…...
dom操作笔记、xml和document等
文章目录 mybatis dom部分 dom(Document Object Model文档对象模型)。 xml和html都属于dom,每天都会用到,一直以为很简单,直到有一天,操作mybatis的xml时候惨不忍睹,被上了一课,做个笔记整理下吧。 xml和ht…...
Python爬虫第3节-会话、Cookies及代理的基本原理
目录 一、会话和Cookies 1.1 静态网页和动态网页 1.2 无状态HTTP 1.3 常见误区 二、代理的基本原理 2.1 基本原理 2.2 代理的作用 2.3 爬虫代理 2.4 代理分类 2.5 常见代理设置 一、会话和Cookies 大家在浏览网站过程中,肯定经常遇到需要登录的场景。有些…...
OkHttpHttpClient
学习链接 okhttp github okhttp官方使用文档 SpringBoot 整合okHttp okhttp3用法 Java中常用的HTTP客户端库:OkHttp和HttpClient(包含请求示例代码) 深入浅出 OkHttp 源码解析及应用实践 httpcomponents-client github apache httpclie…...
android设备出厂前 按键测试 快速实现-屏蔽Home,Power等键
android整机测试,需要测试按键。 一般的键好按,好测试。如:音量加 ,音量- 。 但是,有些按键就不好测了。譬如:电源键(Power),Home键,Menu键,Bac…...
Spring Boot3使用Spring AI通过Ollama集成deepseek
文章目录 项目地址版本信息集成步骤 项目地址 DeepSeekSpringAI实战AI家庭医生应用 版本信息 版本Spring Boot3.4.4JDK21spring-ai1.0.0-M6ollama0.6.3LLMdeepseek:14b 集成步骤 引入依赖 <dependency><groupId>org.springframework.ai</groupId><a…...
c++柔性数组、友元、类模版
目录 1、柔性数组: 2、友元函数: 3、静态成员 注意事项 面试题:c/c static的作用? C语言: C: 为什么可以创建出 objx 4、对象与对象之间的关系 5、类模版 1、柔性数组: #define _CRT_SECURE_NO_WARNINGS #…...
win10 快速搭建 lnmp+swoole 环境 ,部署laravel6 与 swoole框架laravel-s项目1
参考文献 1.dnmp环境 https://github.com/yeszao/dnmp 2.laravel6.0文档 https://learnku.com/docs/laravel/6.x 3.laravels 文档 https://github.com/hhxsv5/laravel-s/blob/master/README-CN.md 安装前准备 1.确认已经安装且配置好docker,能在cmd 中运行 docker …...
【Kafka基础】基础概念解析与消息队列对比
1 Kafka 是什么? Kafka是一个 分布式流处理平台,主要用于 高吞吐量、低延迟的实时数据流处理,最初由LinkedIn开发。 核心特点: 高吞吐量:支持每秒百万级消息处理持久化存储:消息可持久化到磁盘,…...
vue将组件中template转为js
在 Vue 中,组件的 template 需要被转换为 JavaScript 渲染函数(Render Function)才能在浏览器中运行。Vue 2 和 Vue 3 的转换机制有所不同,主要体现在编译时机、编译工具和输出结果上。 1. Vue 2 的 Template 转换 转换方式 Vue…...
Centos 8 安装教程(新手版)
1.需要在阿里开源镜像站下载对应的镜像,如下:https://mirrors.aliyun.com/centos/8.5.2111/isos/x86_64/ 2.打开VM虚拟机,创建新的虚拟机,选择自定义 如图所示点击进行: 选择下载好的镜像 选择“Linux”,版…...
Vue2函数式组件实战:手写可调用的动态组件,适用于toast轻提示、tip提示、dialog弹窗等
Vue2函数式组件实战:手写可调用的动态组件 一、需求场景分析 在开发中常遇到需要动态调用的组件场景: 全局弹窗提示即时消息通知动态表单验证需要脱离当前DOM树的悬浮组件 传统组件调用方式的痛点:必须预先写入模板,可能还要用…...
ESLint语法报错
ESLint语法报错 运行报错 You may use special comments to disable some warnings. Use // eslint-disable-next-line to ignore the next line. Use /* eslint-disable */ to ignore all warnings in a file.解决方案 关闭eslint的语法检测,在eslintrc.js文件中…...
大象如何学会太空漫步?美的:科技领先、To B和全球化
中国企业正处在转型的十字路口。一边是全新的技术、全新的市场机遇;一边是转型要面临的沉重负累和巨大投入,无数中国制造、中国品牌仍在寻路,而有的人已经走至半途。 近日,美的集团交出了一份十分亮眼的2024年财报。数据显示&…...
Leetcode 3500. Minimum Cost to Divide Array Into Subarrays
Leetcode 3500. Minimum Cost to Divide Array Into Subarrays 1. 解题思路2. 代码实现 题目链接:3500. Minimum Cost to Divide Array Into Subarrays 1. 解题思路 这一题非常惭愧,没有自己搞定,基本是抄的大佬们的代码,甚至抄…...
已经使用中的clickhouse更改数据目录
在更换的目录操作,这里更换的目录为home目录,原先安装的目录在/soft/clickhouse/ ,在该目录下有data目录和log目录 更改前目录 更改后目录 1、停止clickhouse服务 sudo systemctl stop clickhouse-server 2、在home目录创建clickhouse目录,在clickho…...
PHP的相关配置和优化
进入etc下面 去掉注释 pid run/php-fpm.pid #指定pid文件存放位置 生成一下子配置文件 这些都是生成的fastcgi的配置文件 进入php中,然后复制模版,生成配置文件 然后编辑文件更改时区 改完之后可以生成启动脚本 这时候刷新之后,再启动会报…...
体重秤PCBA电路方案组成结构
体重秤PCBA电路主要由以下几个部分组成: 主控芯片电路 芯片选择:通常采用低功耗、高性能的单片机作为主控芯片,如前面提到的SIC8833等。这类芯片具备丰富的外设接口,可方便地与其他模块进行通信和控制。 电路连接:主控…...
android 加载本地.svg资源的几种引入方式
在 Android 中,可以在 XML 布局文件中引入本地 .svg 资源,但需要先转换为 Android 可识别的格式。主要有以下几种方式: 方式 1:使用 Vector Asset(官方推荐) Android 不支持直接加载 .svg,但可…...
fio磁盘测试工具使用笔记
本文介绍磁盘性能测试工具fio在某国产操作系统(内核4.19,gcc为7.3.0)上的编译和使用。 背景 某项目使用物理机安装某数据库,相关人员提到磁盘性能方面的要求,用fio测试32k的随机读写,性能要达到1万 IOPS。…...
JavaScrip——BOM编程
一、BOM核心对象与导航控制 1. location对象:页面跳转与刷新 // 跳转到指定URL location.href "https://example.com"; // 刷新当前页面 location.reload(); // 示例:点击按钮跳转 document.querySelector("#btn").onclick () &…...
机器学习 分类算法
【实验名称】 实验:分类算法 【实验目的】 1.了解分类算法理论基础 2.平台实现算法 3. 编程实现分类算法 【实验原理】 分类(Categorization or Classification)就是按照某种标准给对象贴标签(label),再根据标签来区分归类。 【实验环境】 OS:Ubuntu16.0…...
【leetcode100】每日温度
1、题目描述 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例 1: 输…...
<贪心算法>
前言:在主包还没有接触算法的时候,就常听人提起“贪心”,当时是layman,根本不知道说的是什么,以为很难呢,但去了解一下,发现也不过如此嘛(bushi),还以为是什么高级东西呢…...
基于银河麒麟桌面服务器操作系统的 DeepSeek本地化部署方法【详细自用版】
一、3种方式使用DeepSeek 1.本地部署 服务器操作系统环境进行,具体流程如下(桌面环境步骤相同): 本例所使用银河麒麟高级服务器操作系统版本信息: (1)安装ollama 方式一:按照ollama官网的下载指南,执行如下命令: curl -fsSL https://ollama.com/install.sh | sh方…...
「2025最新版React+Ant Design+Router+TailwindCss全栈攻略:从零到实战,打造高颜值企业级应用
一站式掌握最新技术栈!手把手教你配置路由、集成UI组件库、高效开发秘籍大公开 ReactAntrouteraxiosmocktailwind css等组合安装使用教程 官网:React Native 中文网 使用React来编写原生应用的框架 一,安装 npx create-react-app my-app …...
Ubuntu 24.04.2 LTS 系统安装python,创建虚拟环境
在 Ubuntu 24.04.2 LTS 系统中,系统本身自带了 Python 3,不过你还是可以按照下面的步骤来安装和配置 Python 环境。 1. 检查系统自带的 Python 版本 在终端中输入以下命令查看系统自带的 Python 版本: python3 --version如果显示了 Python…...
redis7.0搭建redis-cluster集群部署实战
环境 基于3台centos服务 host节点1端口节点2端口master70007001slave170007001slave270007001 安装redis,以及环境准备 安装可以参考https://blog.csdn.net/tao1992/article/details/132614567 安装路径设置了/usr/local/redis 分别在3台服务器上执行 #配置文…...

