AWS Data Pipeline调研

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: AWS Data Pipeline是AWS提供的一项用于在不同计算和存储服务之间大规模传输、转换和处理数据的Web服务。利用AWS Data Pipeline,用户在不用关心计算存储网络等资源的情况下轻松创建出高可用的复杂数据处理任务,可以定期地读取并处理用户存储在AWS上的数据,最终高效地将计算结果传输到如 Amazon S3、Amazon RDS、Amazon DynamoDB 和 Amazon EMR等各种AWS服务中。

AWS Data Pipeline是AWS提供的一项用于在不同计算和存储服务之间大规模传输、转换和处理数据的Web服务。利用AWS Data Pipeline,用户在不用关心计算存储网络等资源的情况下轻松创建出高可用的复杂数据处理任务,可以定期地读取并处理用户存储在AWS上的数据,最终高效地将计算结果传输到各种AWS服务中。借助AWS Data Pipeline,用户不用关系任务间的依赖关系、任务的故障或者超时重试以及在出错时的故障通知系统等问题,并且可以传输和处理之本地数据孤岛中锁定的数据。

AWS Data Pipeline支持的数据输入和输出位置包括Amazon DynamoDB、Amazon Redshift、Amazon S3以及SQL数据表,其中SQL数据表不仅可以是Amazon的RDS数据库,还支持JDBC协议的各种数据库。Data Pipeline支持的数据活动包括复制活动、SQL查询活动、Hive查询活动、在 Amazon EMR 集群上运行 Pig 脚本以及运行自定义 UNIX/Linux shell 命令

本文以一个导出DynamoDB数据到S3的示例来介绍一下AWS Data Pipeline的使用和常用功能。

准备工作

创建一个DynamoDB表

创建一个名为SLS-user的DynamoDB表,并给其中写入一些数据。

创建IAM的策略和角色

为了将DynamoDB中的数据传输到S3中,还需创建两个IAM角色和需要的策略。

  • 在IAM创建角色的页面,搜索Data Pipeline,选择Data Pipeline,创建一个名为sls-data的角色。

  • 在IAM创建角色的页面,选择EC2,在下一步添加权限的时候搜索AmazonEC2RoleforDataPipelineRole,选中后创建一个名为sls-ec2-role的角色。

  • 在EC2控制台上,选中EC2实例,在Actions->Security->Modify IAM role中选择sls-ec2-role这个角色。

创建一个S3 Bucket

选择跟DynamoDB相同的Region,取消勾选Block all public access,其余保持默认。

给上面创建的Bucket添加下面的访问策略,注意替换123456789为您的账户ID,以及角色名称和Bucket的ARN也需要替换为正确的名称。

{

   "Version": "2012-10-17",

   "Statement": [

       {

           "Sid": "PublicReadGetObject",

           "Effect": "Allow",

           "Principal": {

               "AWS": [

                   "arn:aws:iam::123456789:role/sls-data",

                   "arn:aws:iam::123456789:role/sls-ec2-role"

               ]

           },

           "Action": [

               "s3:PutObject",

               "s3:GetObject"

           ],

           "Resource": [

               "arn:aws:s3:::sls-user-data/*"

           ]

       }

   ]

}

Data Pipeline使用

创建一个管道

进入AWS Data Pipeline的控制台,创建一个数据管道。参数的配置如下,source选择Export DynamoDB table to S3,输入表名,选择创建的S3的Bucket,注意下面的区域需要选择DynamoDB表所在的区域。本示例中调度类型选择的是管道激活,最后选择上面创建的两个角色即可完整任务的创建。

数据管道刚创建好后,管道的状态会变成WAITING_FOR_RUNNER,这是因为管道的任务需要初始化一些计算资源,等一段时间后管道状态就会变成HEALTHY,此时从DynamoDB向S3传输数据的任务开始执行。在管道的调度状态变成FINISHED以后,就表明数据传输已经完成。

最终可以在S3的Bucket下看到传输过来的数据。

Data Pipeline的Architect页面

Data Pipeline的可视化架构页面是其操作方便很重要的原因之一。数据管道任务创建成功后,可以点击Edit Pipeline进入Architect页面查看整个管道数据流的流程图,数据源和数据目的地在该图中被视为数据节点,计算过程在该图中被视为活动节点。

Architect页面主要有以下几个功能。

  • 可以方便的地添加并配置数据节点或者活动节点。

  • 当因为某些配置导致管道任务出错的时候,可以很清晰地在该流程图中看到错误发生的节点以及错误原因。
  • 可以为活动节点配置失败通知。

总结

AWS Data Pipeline本质是一项托管的ETL服务,用来帮助用户在不同的服务之间传输数据。其优势在于

  • 操作简单,不会写代码的人也可以快速使用
  • 服务灵活、拓展性高,在数据量大的情况下可以快速拓展多台机器来并行处理
  • 稳定可靠,当管道任务出错时会自动重试,还可以通过SNS及时向用户发送错误信息


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
Web App开发 Ubuntu Android开发
亚马逊AWS Kinesis Video Streams with WebRTC demo示例
以下分步说明介绍如何使用下载、构建和运行 Kinesis Video Streams with WebRTC 开发工具包及其相应示例。
649 0
|
4月前
|
Java 测试技术 API
技巧:ZStack如何做Integration Test
笔者工作2年有余,刚开始实习的时候是不知道自动化测试这种神器的,在刚开始工作的时候往往苦于救火灭火再救火,搞的心力憔悴,一度怀疑猿生。实践自动化测试后感觉生产力慢慢的解放了,那个时候搞的还是偏单机应用,测试的Cover也是止步在单机应用上。在接触到了ZStack以后,由于其产品化的特性,对软件质量要求偏高,然作为一个典型的分布式系统,测试的覆盖率却是较高的。在这篇文章,笔者想谈谈对自动化测试的一些想法。
33 0
EMQ
|
7月前
|
SQL 存储 数据可视化
EMQX Enterprise 5.2 发布:Flow 设计器,Amazon Kinesis,Azure Event Hubs
EMQX Enterprise 5.2.0 增加了可拖拽的可视化 Flow 设计器,可以快速部署数据集成。同时,新版本新增了对 Amazon Kinesis 和 Azure Event Hubs 的支持。
EMQ
716 0
EMQX Enterprise 5.2 发布:Flow 设计器,Amazon Kinesis,Azure Event Hubs
|
11月前
|
存储 JavaScript 安全
云计算架构:Azure]比较流,逻辑应用(Logic App),函数和 WebJobs
云计算架构:Azure]比较流,逻辑应用(Logic App),函数和 WebJobs
|
Web App开发 JSON 搜索推荐
SAP 电商云和 Customer Data Cloud(CDC) 的登录集成过程中的一些问题分析
SAP 电商云和 Customer Data Cloud(CDC) 的登录集成过程中的一些问题分析
178 0
SAP 电商云和 Customer Data Cloud(CDC) 的登录集成过程中的一些问题分析
|
安全 数据管理 测试技术
超越Data Fabric,Cloudera现代数据架构
Data Fabric是较为成熟的现代数据架构之一。Forrester Research 于 2006 年确定了该范式并创造了该术语。Enterprise Data Fabric,Q2 2022将 Cloudera 评为表现强劲的公司。
|
SQL 机器学习/深度学习 分布式计算
Data Lakehouse的未来-开放
Cloudera 客户运行着地球上一些最大的数据湖。这些数据湖为关键任务大规模数据分析、商业智能 (BI) 和机器学习用例(包括企业数据仓库)提供动力。近年来,创造了“数据湖仓(Data Lakehouse)”一词来描述这种对数据湖中的数据进行表格分析的架构模式。在急于拥有这个术语的过程中,许多供应商忽略了这样一个事实,即数据架构的开放性是其持久性和寿命的保证。
Data Lakehouse的未来-开放
|
存储 SQL 监控
Sentry 监控 - Snuba 数据中台架构(Data Model 简介)
Sentry 监控 - Snuba 数据中台架构(Data Model 简介)
183 0
Sentry 监控 - Snuba 数据中台架构(Data Model 简介)
|
存储 编解码 监控
亚马逊AWS Kinesis Video Streams with KVS demo示例
Kinesis Video Streams 不仅用于存储视频数据。您还可以用它来实时监视视频流,因为这些流在云中接收。您既可以在 AWS 管理控制台中监控实时流,也可以开发自己的监控应用程序,以便使用 Kinesis Video Streams API 库显示实时视频。
403 0
|
机器学习/深度学习 并行计算 算法
阿里开源 支持10万亿模型的自研分布式训练框架EPL(Easy Parallel Library)
最近阿里云机器学习PAI平台和达摩院智能计算实验室一起发布“低碳版”巨模型M6-10T,模型参数已经从万亿跃迁到10万亿,规模远超业界此前发布的万亿级模型,成为当前全球最大的AI预训练模型。同时做到了业内极致的低碳高效,使用512 GPU在10天内即训练出具有可用水平的10万亿模型。