AWS Data Pipeline调研

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 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及时向用户发送错误信息


相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
2月前
|
自然语言处理 API 数据安全/隐私保护
2026年OpenClaw(Clawdbot)部署保姆级指南+接入阿里云百炼API步骤流程
2026年OpenClaw(原Clawdbot/Moltbot)作为轻量化、高扩展性的AI助手框架,其核心价值在于通过对接各类大模型API实现多样化的智能任务处理。阿里云百炼作为国内领先的大模型服务平台,提供了丰富的模型选择、稳定的接口性能和企业级安全保障,将OpenClaw与阿里云百炼API集成,能让OpenClaw具备更强的自然语言理解、内容生成和任务执行能力。本文基于2026年最新版本实测,从环境准备、OpenClaw部署、阿里云百炼API配置到功能验证,提供包含完整代码命令的保姆级教程,零基础用户也能零失误完成配置。
3366 10
|
XML 分布式计算 资源调度
查看YARN上应用的日志之JobHistory
查看YARN上应用的日志之JobHistory
1108 0
查看YARN上应用的日志之JobHistory
|
运维 Kubernetes 网络协议
基于虚拟服务配置的渐进式迁移实践:Istio集群至ASM集群的平滑切换
本文介绍了从Istio+k8s环境迁移到阿里云ASM+ACK环境的渐进式方法,通过配置虚拟服务和入口服务实现新老集群间的服务调用与流量转发,确保业务连续性与平滑迁移
962 132
|
SQL 存储 分布式计算
ODPS开发大全:入门篇(3)
ODPS开发大全:入门篇
1007 19
|
存储 NoSQL 数据挖掘
在 ScyllaDB(或 Cassandra)中使用主键、分区键和群集键
在 ScyllaDB(或 Cassandra)中使用主键、分区键和群集键
278 0
|
存储 Linux
logstash与Rsyslog安装配置
通过将Logstash和Rsyslog结合使用,可以实现强大的日志收集和处理功能。Rsyslog负责接收和转发系统日志,Logstash负责解析和存储日志数据。以上指南提供了详细的安装和配置步骤,确保了两者能够无缝协作,以满足各种日志管理需求。希望本文能帮助你在实际项目中高效地部署和使用Logstash与Rsyslog。
414 8
|
人工智能 自然语言处理 安全
【claude官网入口】体验claude 3.5 Sonnet 的强大交互能力
Claude 是由 Anthropic 公司精心打造的人工智能系统,以其卓越的自然语言处理能力、深刻的上下文理解和优越的安全性而闻名于世
|
Web App开发 Linux 开发工具
告别卡顿,畅享GitHub:国内开发者必看的五大加速访问与下载技巧
【8月更文挑战第4天】告别卡顿,畅享GitHub:国内开发者必看的五大加速访问与下载技巧
告别卡顿,畅享GitHub:国内开发者必看的五大加速访问与下载技巧
|
存储 JSON Kubernetes
云原生|kubernetes|搭建部署一个稳定高效的EFK日志系统(一)
云原生|kubernetes|搭建部署一个稳定高效的EFK日志系统
833 0
|
缓存 安全 关系型数据库
MySQL sync_binlog配置
MySQL sync_binlog配置