来自Amazon S3的Amazon Redshift摄入数据(预览)
#aws #教程 #database #分析

介绍

您可能是熟悉亚马逊S3加载数据的数据科学家,业务分析师或数据分析师,使用复制命令,AWS RE:Invent 2022,以帮助AWS客户朝着零iTL的未来发展,而无需为了使数据工程师构建ETL管道,可以通过从Amazon S3到Amazon Redshift来简化数据移动。

drs

课程结果

  • 在本课程中,您将学习如何从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。

new archit

先决条件

  • 下载一个有趣的开源数据集并将其保存在您的目录中。本教程在此link中包括来自Kaggle的数据

  • 作为IAM管理员用户登录到您的AWS帐户。您可以查看blog创建一个帐户。

  • 创建一个Amazon S3存储桶。您可以查看此blog以创建您的第一个S3桶。

  • 使用AWS胶水创建一个爬网器来检查数据目录表中的元数据。您可以关注此blog以学习如何创建爬网。

数据集

世界幸福报告数据集可从Kaggle here下载。有五个从2015年到2019年不等的数据集

数据描述

每个CSV文件中有12列:

  • 国家
  • 区域
  • 幸福等级
  • 幸福分数
  • 标准错误
  • 经济-GDP人均
  • 家庭
  • 健康 - 预期寿命
  • 自由
  • 信任 - 政府腐败
  • 慷慨
  • 反乌托邦

使用AWS胶来创建一个从数据目录中检查一个文件中的架构:

glue

教程1:从Amazon S3(预览)进入Amazon Redshift的自动拷贝文件入门

对于本教程,我们将按照Amazon Redshift Database Developer Guide22中概述的步骤

步骤1:使用您的AWS IAM Admin User帐户详细信息登录到AWS管理控制台。

步骤2:通过在搜索栏中键入“红移”来导航到Amazon Redshift。

redshift console

步骤3:通过选择配置簇仪表板

来创建预览中的群集

在此预览中,我将使用 aws区域US-EAST(ohio)(us-east-2)

provisioned clsuters

步骤4:单击在横幅中创建预览群集

create prewview

步骤5:创建一个唯一名称以识别小写字母的群集。

下一个从下拉菜单a 预览轨道例如,例如。 Preview 2022 允许您测试新功能。

unique name

步骤6:检查数据的大小或估计大小。

datasets

步骤7:输入群集的其他配置。我选择了帮助我选择。我选择了其他选项来指示我的估计是亚马逊红移中的压缩数据,并且我的数据不是基于时间的。

hep me choosen

计算的配置摘要提供了2个节点的建议,并使用dc2.large进行计算大小。

calc

步骤8:在数据库配置下

db

步骤9:在集群权限下,我创建了一个新的IAM角色,该角色具有 AmazonRedShiftallCommandSaccess 策略,以允许您执行以下SQL查询,例如 卸载选择。新的IAM角色可以访问任何S3存储桶,并取代默认的IAM角色。

在导航搜索栏中键入'iam',然后单击角色创建一个新角色。

添加其他权限以访问查询编辑器2,Amazon S3和Amazon Redshift Full Access。

提供新服务角色的名称,例如'redshift-autocopys3-custom-lole'

create custom role

添加权限,然后单击创建角色

确认新服务角色是在IAM中创建的。

步骤10:单击创建群集在预览中,需要几分钟才能提供。 (注意:请勿将预览集群用于生产工作负载)。

create

Image

预览群集已成功创建。

cluster preview

步骤11:在左侧的导航窗格上,单击查询编辑器v2

query editor

步骤12:双击预览群集(即数据库),然后打开箭头检查表。

您可以检查已创建的新预览群集。

auto copy table

步骤13:创建一个具有全球唯一名称的亚马逊S3存储桶,例如使用默认设置的世界 - 轻度报告,然后单击创建桶

world happiness

bucket

步骤14:在Amazon S3存储桶中创建一个单个文件夹,以进行自动摄入,例如's3-autocopy-file'

create folder

创建一个名为e.g.datasets'

的子文件夹

上传五个CSV文件。

all datasets

教程2:加载数据亚马逊红移和查询数据。

步骤1:在Amazon Redshift中创建一个表。

以下SQL代码创建World_happiness表:

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)
;

步骤18:创建一个复制作业以自动从Amazon S3路径加载CSV文件,进入Amazon Redshift中的 World Happine 表。

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;

最后笔记

  • 从Amazon S3到Amazon Redshift的自动复制文件仅在公共预览期间用于测试工作负载。

  • 完成测试后,请删除您提供的Amazon Redshift群集以避免收费。

  • iam角色不支持 default 在公共预览期间。您可以在此blog中阅读其他最佳实践指南。

AWS回复:Invent 2022

如果您错过了 Swami Sivasubramanian 的Keynote,Amazon Web服务的数据和机器学习副总裁,您可能会按需观看,并继续了解其他Keynotes here

如果您想观看来自Amazon S3(预览)的自动拷贝文件的宣布,则可以在Amazon Redshift中宣布,您可能会在 1小时1小时零18分钟。 >

参考

下周有什么新功能? ð

AWS Innovate

在此link

注册AWS PI Day

pie day

直到下一课,学习愉快! ð