13
© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. Amazon Kinesis ストリーミング・データのリアルタイム処理

[AWS re:invent 2013 Report] Amazon Kinesis

Embed Size (px)

Citation preview

Page 1: [AWS re:invent 2013 Report] Amazon Kinesis

© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.

Amazon Kinesis ストリーミング・データのリアルタイム処理

Page 2: [AWS re:invent 2013 Report] Amazon Kinesis

Why Real-Time Processing?

Page 3: [AWS re:invent 2013 Report] Amazon Kinesis

データの飛躍的な増加 ビッグ・データは高速である

GB TB PB

ZB

EB

• ITインフラ/アプリからのログ

ITインフラのログ、メーター、

監査ログ、変更ログ

• Webサイト、モバイル・アプリ、広告

クリック・ストリーム

• センサー・データ

天候、スマート・グリッド

• ソーシャル、ユーザーコンテンツ

450MM+ ツィート/日

Page 4: [AWS re:invent 2013 Report] Amazon Kinesis

ビッグ・データのソリューション

• ビッグ・データへの一般的なアプローチ – クエリー・エンジン(データ・ウェアハウス、YesSQL、NoSQLデータベース)

• 構造化データに対して、クエリーの繰り返し実行

• 索引、ディメンションによるクエリー性能の向上

– バッチ・エンジン(Map-Reduce)

• 非構造化データに対して、低い頻度でクエリー・解析の実行

• ビッグ・データへのストリーム処理 – コンテンツ(データ・ストリーム)へのリアルタイムな応答

– 比較的にシンプルなデータ処理(集約、フィルター、スライドウィンドウ等)

– 他のデータ・ストアへの移動によるデータのライフ・サイクル

蓄積された「過去」データの処理

「今」流れているデータの処理

Page 5: [AWS re:invent 2013 Report] Amazon Kinesis

Amazon Kinesis – 概要 フルマネージドされたリアルタイム処理

毎時数MBから最大数TBの処理が可能

信頼性の高いストレージ、データ収集、分析を

提供

シャード単位で1,000 write (最大1MB/s),

20 read (最大2MB/s)と言った単位でスループッ

トに応じてプロビジョニング

キャパシティーの削除・追加をダイナミックに

実施可能

サーバーログ、ソーシャルメディアストリーム、マーケット

データフィード、ウェブクリックストリーム、M2M等

Page 6: [AWS re:invent 2013 Report] Amazon Kinesis

Data Sources

App.4

[Machine Learning]

AW

S En

dp

oin

t

App.1

[Aggregate & De-Duplicate]

Data Sources

Data Sources

Data Sources

App.2

[Metric Extraction]

S3

DynamoDB

Redshift

App.3 [Sliding

Window Analysis]

Data Sources

Availability

Zone

Shard 1

Shard 2

Shard N

Availability

Zone Availability

Zone

Amazon Kinesisの全体像

Stream

Page 7: [AWS re:invent 2013 Report] Amazon Kinesis

ストリームの作成

ストリーム名

シャード数

スループットの 自動計算

Page 8: [AWS re:invent 2013 Report] Amazon Kinesis

DEMO

AW

S E

nd

po

int App.1

wordcount Data

Sources

Availability

Zone

Shard 1

Shard 2

Shard N

Availability

Zone Availability

Zone

sample feed

Redshift

Page 9: [AWS re:invent 2013 Report] Amazon Kinesis

適用例:ベータ・カスタマー

金融業界 アドテク業界

マーケットや取引所の注文に対するリアルタイム監査ログ

メトリックやオンライン広告のKPIの

リアルタイムな生成

課題:カスタムビルドなソリューションは、維持管理が困難かつスケールしない

課題:日次ベースのHadoopベースのパイプライン処理は性能が遅く、維持管理が困難

Kinesis:全ての注文データを安定的に取り込み、リアルタイムな監査

アプリを構築

Kinesis:定期的なバッチ処理ではなく、継続的なリアルタイムのメトリックやレポートの生成

Time-to-marketへの柔軟でリアルタイムなアプリ提供しつつ、運用コストを削減

マーケティング予算の最適化のために最新の分析結果を提供し、クライアントへの応答を向上

Page 10: [AWS re:invent 2013 Report] Amazon Kinesis

Thank you.

Page 11: [AWS re:invent 2013 Report] Amazon Kinesis

Appendix

Page 12: [AWS re:invent 2013 Report] Amazon Kinesis

Twitter Trends Shard Processing Code

Class TwitterTrendsShardProcessor implements IRecordProcessor {

public TwitterTrendsShardProcessor() { … }

@Override

public void initialize(String shardId) { … }

@Override

public void processRecords(List<Record> records,

IRecordProcessorCheckpointer checkpointer) { … }

@Override

public void shutdown(IRecordProcessorCheckpointer checkpointer,

ShutdownReason reason) { … }

}

Page 13: [AWS re:invent 2013 Report] Amazon Kinesis

Twitter Trends Shard Processing Code Class TwitterTrendsShardProcessor implements IRecordProcessor { private Map<String, AtomicInteger> hashCount = new HashMap<>(); private long tweetsProcessed = 0; @Override public void processRecords(List<Record> records, IRecordProcessorCheckpointer checkpointer) { computeLocalTop10(records); if ((tweetsProcessed++) >= 2000) { emitToDynamoDB(checkpointer); } } }