BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

使用亚马逊Kinesis处理大批量数据

| 作者 Roopesh Shenoy 关注 0 他的粉丝 ,译者 李彬 关注 1 他的粉丝 发布于 2013年11月28日. 估计阅读时间: 3 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

亚马逊近期公布了一项名为Kinesis的服务,它支持开发者从不同来源传输大量的数据并进行处理。该服务目前处于有限预览阶段。

Kinesis到底是什么?它与SQS有什么不同?对此,BuckKniferson解释道

看起来Kinesis将包装SQS队列并将计算实例自动扩展为新产品。Kinesis能能接受每秒百万条POST请求,将其作为流进行实时处理。用户可以将流数据直接发送给S3、发送给自己的应用进行处理、发送给关系型存储,以及类似多种途径……都是实时完成的。

SQS消息被限定在256kb的文本消息(一般来说是JSON格式,但用户也可以根据喜好选择)。Kinesis流则享有MB/S的量级,而且据我所知,它可以通过HTTP PUT接收任何类型的数据。

此外,应用可以从不同区域访问Kinesis流数据,且在24小时之内可用;而SQS消息则依赖于区域并且不可持久。如果某个区域超出范围,或是出现了某些故障,那么用户的SQS消息就丢失了。而且我认为SQS没有可以与Kinesis相媲美的可扩展性和IO。我尚未见到SQS公开发布的IOPS保证;但Kinesis每个分片能够接收1000条/秒的PUT请求。

使用Kinesis流的应用能够捕捉、存储和传输数据,对这三者来说都可以拥有多个读取和写入方。每个流的容量按分片来定义;每个分片能够执行1000条写事务,最高位1MB/秒——而且支持在不停机状态下,通过增加或移除分片,来扩展每个流的容量。

开发者可以使用Kinesis客户端库来构建使用Kinesis的应用。生产者方面使用PutRecord API 来推送数据。而在消费者方面,开发者提供一个IRecordProcessor的实现,一旦新记录创建成功,客户端将“推送”它们。此外,还有一些更底层的接口,例如GetShardIteratorGetNextRecords。在处理一条记录后,消费者代码可以把它存储在某个AWS存储服务(S3、RedShift、DynamoDB)上,或是将其传递给另一个Kinesis流。

Kinesis支持的实时处理与批处理(例如Hadoop提供的那样)不同,因为当数据可用时它将会得到尽快处理,而不必凑成批次进行执行。亚马逊列出了日志处理、社交媒体数据处理、金融事务实时处理和在线机器学习等内容,作为部分可行的使用案例。最后,另一个支持大量数据实时复杂处理的类似产品是Storm

查看英文原文:Streaming Big Data With Amazon Kinesis

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT