介绍
您可能是熟悉亚马逊S3加载数据的数据科学家,业务分析师或数据分析师,使用复制命令,AWS RE:Invent 2022,以帮助AWS客户朝着零iTL的未来发展,而无需为了使数据工程师构建ETL管道,可以通过从Amazon S3到Amazon Redshift来简化数据移动。
课程结果
- 在本课程中,您将学习如何从Amazon S3(预览)(预览)摄入Amazon Redshift。
来自Amazon S3(预览)的Amazon Redshift自动拷贝是什么?
Amazon S3的Amazon Redshift Auto-Copy简化了来自Amazon S3的数据摄入,它在公共预览中直到2023年5月1日,可用于测试和开发工作负载。
您可以在以下AWS地区进行此预览:美国东部(N. Virginia),美国东部(俄亥俄州),美国西部(俄勒冈州),亚太地区,亚太地区(东京),欧洲(欧洲)和欧洲(斯德哥尔摩) 。
此功能如何工作?
来自Amazon S3的自动拷贝是一种简单的,低的代码数据摄入,它会自动将S3存储桶中detected的新文件加载到Amazon Redshift中。
新文件可以是格式CSV,JSON,PARQUET或AVRO的ingested。
您可以将复制命令存储在Amazon Redshift中的复制作业中,该命令将检测存储在Amazon S3中的新文件并将数据加载到table中。
有什么好处?
-
您可以通过避免使用复制语句的Amazon RedShift中的手动上传S3桶的新数据来节省团队的时间。
-
复制作业将能够检测到以前在数据摄入过程中加载的数据。
-
复制作业可以在不需要自动化时预防duplicated data。
-
可以手动创建副本作业,向reuse复制语句
解决方案体系结构
在此高级体系结构中,将新文件摄入一个Amazon S3存储夹中的单独文件夹中,并且复制作业将数据插入相应的表A和表B。
先决条件
-
下载一个有趣的开源数据集并将其保存在您的目录中。本教程在此link中包括来自Kaggle的数据
-
作为IAM管理员用户登录到您的AWS帐户。您可以查看blog创建一个帐户。
-
创建一个Amazon S3存储桶。您可以查看此blog以创建您的第一个S3桶。
-
使用AWS胶水创建一个爬网器来检查数据目录表中的元数据。您可以关注此blog以学习如何创建爬网。
数据集
世界幸福报告数据集可从Kaggle here下载。有五个从2015年到2019年不等的数据集
数据描述
每个CSV文件中有12列:
- 国家
- 区域
- 幸福等级
- 幸福分数
- 标准错误
- 经济-GDP人均
- 家庭
- 健康 - 预期寿命
- 自由
- 信任 - 政府腐败
- 慷慨
- 反乌托邦
使用AWS胶来创建一个从数据目录中检查一个文件中的架构:
教程1:从Amazon S3(预览)进入Amazon Redshift的自动拷贝文件入门
对于本教程,我们将按照Amazon Redshift Database Developer Guide22中概述的步骤
步骤1:使用您的AWS IAM Admin User帐户详细信息登录到AWS管理控制台。
步骤2:通过在搜索栏中键入“红移”来导航到Amazon Redshift。
步骤3:通过选择配置簇仪表板
来创建预览中的群集在此预览中,我将使用 aws区域US-EAST(ohio)(us-east-2)。
步骤4:单击在横幅中创建预览群集
步骤5:创建一个唯一名称以识别小写字母的群集。
下一个从下拉菜单a 预览轨道例如,例如。 Preview 2022 允许您测试新功能。
步骤6:检查数据的大小或估计大小。
步骤7:输入群集的其他配置。我选择了帮助我选择。我选择了其他选项来指示我的估计是亚马逊红移中的压缩数据,并且我的数据不是基于时间的。
计算的配置摘要提供了2个节点的建议,并使用dc2.large进行计算大小。
步骤8:在数据库配置下
步骤9:在集群权限下,我创建了一个新的IAM角色,该角色具有 AmazonRedShiftallCommandSaccess 策略,以允许您执行以下SQL查询,例如 ,卸载和选择。新的IAM角色可以访问任何S3存储桶,并取代默认的IAM角色。 在导航搜索栏中键入'iam',然后单击角色创建一个新角色。 添加其他权限以访问查询编辑器2,Amazon S3和Amazon Redshift Full Access。 提供新服务角色的名称,例如'redshift-autocopys3-custom-lole' 添加权限,然后单击创建角色。 确认新服务角色是在IAM中创建的。 步骤10:单击创建群集在预览中,需要几分钟才能提供。 (注意:请勿将预览集群用于生产工作负载)。 预览群集已成功创建。 步骤11:在左侧的导航窗格上,单击查询编辑器v2 步骤12:双击预览群集(即数据库),然后打开箭头检查表。 您可以检查已创建的新预览群集。 步骤13:创建一个具有全球唯一名称的亚马逊S3存储桶,例如使用默认设置的世界 - 轻度报告,然后单击创建桶。 步骤14:在Amazon S3存储桶中创建一个单个文件夹,以进行自动摄入,例如's3-autocopy-file' 创建一个名为e.g.datasets' 上传五个CSV文件。 步骤1:在Amazon Redshift中创建一个表。 以下SQL代码创建World_happiness表: 步骤18:创建一个复制作业以自动从Amazon S3路径加载CSV文件,进入Amazon Redshift中的 World Happine 表。 从Amazon S3到Amazon Redshift的自动复制文件仅在公共预览期间用于测试工作负载。 完成测试后,请删除您提供的Amazon Redshift群集以避免收费。 iam角色不支持 default 在公共预览期间。您可以在此blog中阅读其他最佳实践指南。 如果您错过了 Swami Sivasubramanian 的Keynote,Amazon Web服务的数据和机器学习副总裁,您可能会按需观看,并继续了解其他Keynotes here。
教程2:加载数据亚马逊红移和查询数据。
Create table world_happiness (
country VARCHAR(100),
region VARCHAR(100),
happiness_rank int,
happiness_score float4,
standard_error float4,
economy float4,
family float4,
health float4,
freedomm float4,
trust float4,
generosity float4,
dystopia float4)
;
COPY world_happiness
FROM 's3://world-happiness-report/s3-autocopy-file/datasets/published_reports'
IAM_ROLE 'arn:aws:iam::***********:role/redshift-autocopys3-custom-role'
DELIMITER ','
IGNOREBLANKLINES
REGION 'us-east-1'
IGNOREHEADER 1
JOB CREATE job_world_happiness1 AUTO ON;
最后笔记
AWS回复:Invent 2022
如果您想观看来自Amazon S3(预览)的自动拷贝文件的宣布,则可以在Amazon Redshift中宣布,您可能会在 1小时1小时零18分钟。 >
参考
下周有什么新功能? ð
- AWS Innovate-数据和AI/ML版-Americas on 14 March including Pi Day celebrations加入聚会,庆祝启动Amazon S3的17年
在此link
注册AWS PI Day直到下一课,学习愉快! ð