Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

[更新版あり Descriptionを参照ください] AWS Black Belt Online Seminar 2017 Amazon Kinesis

11 486 vues

Publié le

更新版はこちら
https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-2017-amazon-kinesis

2017/10/11 に実施された Amazon Kinesis についての Black Belt オンラインセミナーの資料です。

Publié dans : Technologie
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

[更新版あり Descriptionを参照ください] AWS Black Belt Online Seminar 2017 Amazon Kinesis

  1. 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アマゾン ウェブ サービス ジャパン株式会社 ソリューションアーキテクト 半場 光晴 2017.10.11 【AWS Black Belt Online Seminar】 Amazon Kinesis
  2. 2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 自己紹介 • 名前 半場 光晴 (はんば みつはる) • 所属 アマゾン ウェブ サービス ジャパン 株式会社 技術統括本部 メディア・エンターテインメント ソ リューション部 ソリューション アーキテクト • 好きなAWSサービス Amazon Kinesis、Amazon S3、 Amazon EMR
  3. 3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 内容についての注意点 • 本資料では2017年10月11日時点のサービス内容および価格についてご説明しています。最 新の情報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。 • 資料作成には十分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に 相違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。 • 価格は税抜表記となっています。日本居住者のお客様が東京リージョンを使用する場合、別途 消費税をご請求させていただきます。 • AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.
  4. 4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Firehose が、東京リージョンでも 利用可能になりました! https://aws.amazon.com/about-aws/whats-new/2017/08/amazon-kinesis-firehose-is-now- available-in-asia-pacific-tokyo-eu-frankfurt-and-us-east-ohio-regions/
  5. 5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. このセミナーの内容 1. Amazon Kinesis の特徴 1. Amazon Kinesis Streams 2. Amazon Kinesis Firehose 3. Amazon Kinesis Analytics 2. Amazon Kinesis の適用例 3. まとめ
  6. 6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. このセミナーの内容 1. Amazon Kinesis の特徴 1. Amazon Kinesis Streams 2. Amazon Kinesis Firehose 3. Amazon Kinesis Analytics 2. Amazon Kinesis の適用例 3. まとめ
  7. 7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis の特徴
  8. 8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis プラットフォーム ストリームデータを収集・処理するためのフルマネージドサービス群 Amazon Kinesis Streams ストリームデータを 処理するための アプリケーションを 独自に構築 Amazon Kinesis Analytics ストリームデータを 標準的な SQL クエリ でリアルタイムに分析 Amazon Kinesis Firehose ストリームデータを Amazon S3, Amazon Redshift, Amazon ES へ 簡単に配信
  9. 9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ストリーミングデータの利用シナリオ シナリオ データの収集と ETL 継続的なメトリクス計算 リアルタイム分析と応答 データタイプ アプリケーションログ/コンピューターメトリクス/クリックストリーム /センサーデータ/マーケットデータ... 広告 /マーケティング 配信や入札データの収集 コンバージョンレート/収益 /カバレージの計算 ユーザー行動に応じた 配信・入札エンジンの最適化 IoT テレメトリーデータの収集 デバイスやサーバーの 稼働状態の計算 稼働状態予測や アラート・通知の発行 ゲーム 顧客行動データの収集 成功率/トランジションレート /クリックレートの計算 リーダーボードや マッチメイクの最適化 コンシューマー 向け 顧客行動データの収集 ページビュー /クリックレートの計算 レコメンデーションエンジンの 最適化 運用 セキュリティ システムメトリクスの収集 システムログ分析 異常検知 STEP 3STEP 2STEP 1
  10. 10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis プラットフォームの全体的な特徴 リアルタイムなデータストリームを簡単に捉え、配信し、処理できます 先払いなしの従量課金 弾力のある拡張性とサーバーレス ユースケースに合わせた適切なサービスの選択が可能 リアルタイムなレイテンシー 簡単なプロビジョニング、デプロイ、管理
  11. 11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Streams Amazon Kinesis の特徴
  12. 12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Streams ストリームデータを処理するためのアプリケーションを独自に構築 2 3 1 管理が容易 独自のリアルタイムアプリケーション 低コスト 必要なキャパシティをセットしてストリームを作成するだけで利用可能。 スループットやデータ量の変化に応じてスケール Amazon Kinesis Client Library, Apache Spark/Flink, AWS Lambda 等を利用してストリーム処理を実装 あらゆるスケールのワークロードで高いコスト効果
  13. 13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Streams アーキテクチャ概要 Front end 認証・認可 3 アベイラビリティゾーンの 永続ストレージに強い整合性でデータを複製 数百万のソースが 1 時間あたり数百 TB の データを生成 集約して S3 にアーカイブ End point 機械学習 /スライディングウィンドウ分析 リアルタイムダッシュボード /アラート データウェアハウスにロード 順序つきイベントストリームとして 複数のアプリケーションから 同時アクセス可能 AZ AZ AZ
  14. 14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Streams 主要なコンセプト データの種類や処理の用途に応じて「ストリーム」を作成。ストリームは 1 つ以上の「シャード」で構成 保存されるデータの単位を「データレコード」と呼び、保持期間はデフォルトで 24 時間/最長で 7 日間 1 データレコードの最大サイズは 1 MB データ送信側のキャパシティは 1 シャードあたり秒間 1 MB もしくは 1,000 PUT レコード データ処理側のキャパシティは 1 シャードあたり秒間 2 MB もしくは 5 回の読み取りトランザクション ストリーム内のシャード数を増減することでスループットをコントロール KinesisStreams エ ン ド ポ イ ン ト シャード 0 シャード 1 シャード ..N データ送信側 データ処理側 Amazon S3 DynamoDB Amazon Redshift Amazon EMR データ レコード ストリーム
  15. 15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Streams データレコードの分散 データ入力時に指定するパーティションキー(最長 256 文字)で保存先のシャードが決定 • MD5 ハッシュ関数でパーティションキーを 128 ビット整数値のハッシュキーに変 換 • ハッシュキーの範囲に対応したシャードにデータレコードをマップ シャード 0 "HashKeyRange" { "EndingHashKey": "170141183460469231731687303715884105727", "StartingHashKey": "0" } シャード 1 "HashKeyRange" { "EndingHashKey": "340282366920938463463374607431768211455", "StartingHashKey": "170141183460469231731687303715884105728" } データ パーティションキー データレコード 2^128 - 1 0 ハッシュキーの 範囲 パーティションキー のハッシュで分散* * ハッシュキーを直接指定することも可能 ストリーム
  16. 16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Streams データレコードの順序性 全てのデータレコードにはシーケンス番号がアサインされる • ストリーム内の全シャード間でユニーク • シャード内で時間の経過とともに単調増加(シャード間では単調増加しない) • データ処理時にシーケンス番号でレコード取得開始ポジションを指定可能 シャード 0 シャード 1 SequenceNumbe r 32 SequenceNumbe r 26 SequenceNumbe r 25 SequenceNumbe r 17 データレコード データレコード SequenceNumbe r 35 SequenceNumbe r 15 SequenceNumbe r 12 SequenceNumbe r 11 データレコード ストリーム
  17. 17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Streams をサポートする プロデューサー・コンシューマー プロデューサー (データ送信側) コンシューマー (データ処理側) AWS SDK Kinesis Producer Library Kinesis Agent AWS IoT Kinesis Log4j Appender Get* API Kinesis Client Library Fluentd Kinesis Analytics AWS Lambda Amazon EMR Apache Storm Kinesis Firehose CloudWatch Events/Logs
  18. 18. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Agent プロデューサー (データ送信側) https://github.com/awslabs/amazon-kinesis-agent /etc/aws-kinesis/agent.json { "kinesis.endpoint": "https://your/kinesis/endpoint", "firehose.endpoint": "https://your/firehose/endpoint", "flows": [ { "filePattern": "/tmp/app1.log*", "kinesisStream": "yourkinesisstream" }, { "filePattern": "/tmp/app2.log*", "deliveryStream": "yourfirehosedeliverystream" } ] } • Amazon Kinesis サービスにデータを簡単 に収集して取り込む OSS のスタンドアロン Java アプリケーション • エージェントでモニタリングするファイル のパターンと送信先ストリームを指定 • ファイルのローテート処理、ポインティン グのチェック、失敗時の再試行を管理 • フォーマット変換やログパースなどの前処 理機能を提供 • 送信前のバッファリングが可能 • すべてのデータを信頼性の高いタイムリー かつシンプルな方法で配信 • Amazon CloudWatch へメトリクスを送信 • Amazon Kinesis Streams と Amazon Kinesis Firehose、どちらへも送信可能
  19. 19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Producer Library (KPL) プロデューサー (データ送信側) https://github.com/awslabs/amazon-kinesis-producer • Amazon Kinesis Streams にデータを送信 する OSS の補助ライブラリ • KPL は、C++ で書かれており、メインプ ロセスの子プロセスとして実行される • Aggregation:複数件のデータを 1 データ レコードに集約して送信可能 • Collection:複数のレコードをバッファリ ングして送信 • キャパシティ超過時のリトライをサポート • タイムアウト時間や送信時に利用するコネ クション数を設定可能 • パフォーマンスメトリクスを Amazon CloudWatch に自動送信
  20. 20. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fluent plugin for Amazon Kinesis V2出た! プロデューサー (データ送信側) https://github.com/awslabs/aws-fluent-plugin-kinesis • Amazon Kinesis Streams と Amazon Kinesis Firehoseにイベントを送信する OSSのFluentd 出力プラグイン • KPL 集約レコードフォーマットもサポート • fluent-plugin-kinesis gem に以下3つの出 力プラグインが含まれいる 1. Kinesis_streams 2. Kinesis_firehose 3. Kinesis_streams_aggregated • Fluentd をログ収集に使っているなら、こ のプラグインを追加するだけで Amazon Kinesis へのデータ投入がすぐにできる
  21. 21. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. • Amazon Kinesis Data Generator (KDG) を利用して Amazon Kinesis Streams または Amazon Kinesis Firehose にテストデータを簡単に送 信できる • HTML と JavaScript で実装されたOSSのテスト用プロデューサーUI • GithubにホストされたUIを利用することが可能 • S3 静的ウェブサイトホスティングを利用するなども可能 https://github.com/awslabs/amazon-kinesis-data-generator Amazon Kinesis Data Generator (KDG) プロデューサー (データ送信側)
  22. 22. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Client Library (KCL) コンシューマー (データ処理側) • KCL を利用して Kinesis アプリケーションを作成できる • Java、Ruby、Python、Node.js の開発に利用できる OSS のクライアントライブラリ • EC2 インスタンスなどにデプロイして利用可能 • KCL アプリは 3 つのコンポーネントを含んでいる 1. Record Processor Factory - 2. のレコードプロセッ サーを作る 2. Record Processor - Amazon Kinesis Streamsの シャードから取り出したデータを処理するプロセッ サーの単位 3. Worker - 個々のアプリケーションインスタンスと マッピングする処理単位 https://github.com/search?q=org%3Aawslabs+kinesis-client
  23. 23. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Client Library のステート管理 Amazon DynamoDB テーブルを利用してアプリケーションの状態を追跡 シャードとワーカーのマッピングを調整 処理されたレコードのチェックポイントを作成 ワーカーインスタンスの増減やシャードの分割/結合に追従 shardId Shard-0 Shard-1 check point TRIM _HORIZO N 4 lease Owner Worker-A Worker-B lease Counter 2 16 ... ... ... Shard-06 Shard-1 3 1 8 7 5 Worker -A Worker -B Amazon DynamoDB
  24. 24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ストリームデータの利用シナリオに沿った AWSでの事例 引用元 https://speakerdeck.com/kanny/miao-jian-shu-mo-falseroguwoiigan-zinisuruakitekutiya STEP 1 データの収集と ETL STEP 2 継続的なメトリクス計算 STEP 3 リアルタイム分析と応答
  25. 25. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Streams 料金 料金構成 料金 シャード時間(1 MB/sec 取込, 2MB/sec 放出) $0.0195 PUT ペイロードユニット(25 KB), 1,000,000 PUTs 毎 $0.0215 延長データ保持期間(最長 7 日間), シャード時間毎 $0.026 東京リージョンの場合
  26. 26. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Firehose Amazon Kinesis の特徴
  27. 27. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Firehose ストリームデータを、Amazon S3、Amazon Redshift、Amazon ESへ 簡単に配信 2 3 1 管理不要 データストアとダイレクトに統合 シームレスにスケール アプリケーションの実装やインフラストラクチャーの管理を一切行わずに Amazon S3 / Amazon Redshift / Amazon ES にデータを配信可能 シンプルな設定でストリームデータのバッチ化・圧縮・暗号化が可能 最短 60 秒でデータを配信 データのスループットに応じて自動的にスケール 4 サーバレスETL Lambdaを利用したストリームデータの変形が可能
  28. 28. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Firehose 主要なコンセプト • 配信先に応じて「配信ストリーム」を作成 • シャードの作成やパーティションキーの指定不要 • 1 データレコードの最大サイズは 1 MB • 制限なしにスケールするよう設計 • 米国東部(バージニア北部、オハイオ)、米国西部(オレゴン)、欧州(アイルランド、フランクフルト)、 アジアパシフィック(東京)リージョンで利用可能 KinesisFirehose エ ン ド ポ イ ン ト データ レコード データ送信側 Amazon S3 Amazon Redshift Amazon ES Amazon S3 配信ストリーム Amazon Redshift 配信ストリーム Amazon ES 配信ストリーム
  29. 29. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Firehoseから Amazon S3へ Firehose 配信ストリーム 配信先 S3バケット バックアップ S3バケット ソースレコード プロデューサー ソース レコード 変換済み レコード 変換失敗
  30. 30. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Firehoseから Amazon Redshiftへ 中間 S3バケット バックアップ S3バケット ソースレコード プロデューサー ソース レコード Redshift クラスター Firehose 配信ストリーム 変換済み レコード 変換済みレコード COPY変換失敗 配信失敗
  31. 31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Firehoseから Amazon Elasticsearch Serviceへ Elasticsearch クラスター バックアップ S3バケット ソースレコード プロデューサー ソース レコード Firehose 配信ストリーム 変換済み レコード 配信失敗 変換失敗
  32. 32. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Streams から Firehose へ 直接ストリームデータを送ることが可能に • Amazon Kinesis Streams をデータソースに指定すると、他のデータソースを、同一の Amazon Kinesis Firehose 配信ストリームに送ることはできない • Amazon Kinesis Streams をデータソースに指定すると、その Amazon Kinesis Firehose 配信スト リームに対して PutRecord や PutRecordBatch ができなくなる • データソースに指定した Amazon Kinesis Streams に PutRecord や PutRecords すれば良い • 一方で、1 つの Amazon Kinesis Streams に対しては、複数の Amazon Kinesis Firehose 配信ストリームやその 他のコンシューマーからデータレコードを読むことができる • Amazon Kinesis Firehose 配信ストリームは、Amazon Kinesis Streams の LATEST からデータを読み始める • Amazon Kinesis Producer Library を利用して Amazon Kinesis Firehose 配信ストリームにデータレコードを送 りたい場合のワークアラウンドにも(より簡単に)なる http://docs.aws.amazon.com/firehose/latest/dev/writing-with-kinesis-streams.html Data producer Amazon Kinesis Streams Data consumer Amazon Kinesis Firehose Data producer Amazon Kinesis Streams Amazon Kinesis Firehose AFTERBEFORE
  33. 33. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Firehose 料金 料金構成 料金 最初の 500 TB / 月 (データ取込分) 次の 1.5 PB / 月 次の 3 PB / 月 以降 5 PB / 月 $0.036 $0.031 $0.025 応相談 東京リージョンの場合 • 料金は Amazon Kinesis Firehose に取り込まれたデータの量に基づく • データの量は、このサービスに送信したデータレコードの数に、直近の 5 KB の倍数に切り上げた各レコードの サイズを乗算した値として計算される • 例 - 各データレコードが 42 KB の場合は、取り込まれたデータとしては 45 KB としてそれぞれカウントされる
  34. 34. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Analytics Amazon Kinesis の特徴
  35. 35. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Analytics ストリームデータを標準的な SQLクエリでリアルタイムに分析 2 3 1 標準 SQL リアルタイム分析アプリケーション 弾力的にスケール 複雑な処理フレームワークやプログラミング言語の学習不要 秒以下のレイテンシーでストリームデータを連続的に分析 データのスループットに応じて処理能力を伸縮。オペレーションの介入不要
  36. 36. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Analytics 主要なコンセプト • 分析単位に「アプリケーション」を作成し、入力/出力となる「ストリーミング ソース/デスティネーション」を 設定 • ストリーミングソース/デスティネーションをアプリケーション内部の「入力/出力ストリーム」にマッピング • SQL クエリ実行の前処理として、Lambda 関数の指定が可能 • アプリケーション内部の入力ストリームを分析し、結果を出力ストリームへ出力する SQL を記述 • 1 入力行の最大サイズは 50 KB/参照ソースの最大サイズは 1 GB • クエリの複雑さとデータのスループットに応じて処理能力 (KPU – Kinesis Processing Units) を自動伸縮 • 米国東部(バージニア北部)/米国西部(オレゴン)/欧州(アイルランド)リージョンで利用可能 SQL アプリケーション内部 (入力)ストリーム アプリケーション内部 (出力)ストリーム ストリーミング ソース (Kinesis Streams または Kinesis Firehose) ストリーミング デスティネーション (Kinesis Streams または Kinesis Firehose) 参照テーブル 参照ソース アプリケーション内部 エラーストリーム アプリケーション 前処理
  37. 37. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Lambdaによる前処理 • SQL クエリ実行前に、指定した Lambda 関数による前処理が実行される • データレコードの情報の補完やフォーマットの変換処理などの用途が例としてあげられる • 補完処理の例 - S3 以外のリソースにあるデータソースを参照して、データレコードの情報を補完する • 変換処理の例 - GZIP や KPL フォーマットなどから、CSV や JSON へ変換する • 前処理の結果は 3 種類のステータスに分類できる • Ok - 前処理に成功、処理済みのデータレコードが SQL クエリへ流れる • Dropped - 前処理によって意図的にデータレコードを排除、SQL クエリの対象にしない • ProcessingFailed - 前処理に失敗、未処理のデータレコードがエラーストリームへ流れる • この前処理用途の汎用的なLambda関数のブループリントをいくつか提供している http://docs.aws.amazon.com/kinesisanalytics/latest/dev/lambda-preprocessing.html
  38. 38. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アプリケーション内部ストリームとポンプ CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" ( ticker_symbol VARCHAR(4), sector VARCHAR(12), change REAL, price REAL); CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM“ SELECT STREAM ticker_symbol, sector, change, price FROM "SOURCE_SQL_STREAM_001“; SQL 内部(入力)ストリーム 内部(出力)ストリームポンプ “SOURCE_SQL_STREAM_001” “STREAM_PUMP” “DESTINATION_SQL_STREAM”
  39. 39. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 様々なタイムスタンプ CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM“ SELECT STREAM your_own_event_time_column, approximate_arrival_time, rowtime FROM "SOURCE_SQL_STREAM_001"; イベント時刻 処理時刻収集時刻 your_own_event_time_column approximate_arrival_time rowtime
  40. 40. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ウィンドウ問い合わせ タンブリング ウィンドウ スライディング ウィンドウ …FROM "SOURCE_SQL_STREAM_001" GROUP BY ticker_symbol, FLOOR("SOURCE_SQL_STREAM_001".rowtime TO MINUTE); …FROM "SOURCE_SQL_STREAM_001" WINDOW last_hour AS (PARTITION BY ticker_symbol RANGE INTERVAL '1' HOUR PRECEDING), last_two_rows AS (PARTITION BY ticker_symbol ROWS 2 PRECEDING);
  41. 41. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. シンプルなアラート 内部(出力)ストリーム "DESTINATION_SQL_STREAM" を宣言 ポンプ "STREAM_PUMP" を宣言 10 秒のスライディングウィンドウから ticker_symbol ごとに変化量の平均値を算出 変化量の平均値の絶対値が 1 を超える行のみを抽出 CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" ( ticker_symbol VARCHAR(4), avg_change DOUBLE); CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM“ SELECT STREAM ticker_symbol, avg_change FROM ( SELECT STREAM ticker_symbol, AVG(change) OVER w1 AS avg_change FROM "SOURCE_SQL_STREAM_001“ WINDOW w1 AS (PARTITION BY ticker_symbol RANGE INTERVAL '10' SECOND PRECEDING)) WHERE ABS(avg_change) > 1;
  42. 42. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 参照テーブルの結合 (参照テーブル "CompanyName" をアプリケーションに事前追加) 内部(出力)ストリーム "DESTINATION_SQL_STREAM"/ポンプ "STREAM_PUMP" を宣言 内部(入力)ストリーム "SOURCE_SQL_STREAM_001" に参照テーブルを外部結合 ティッカーシンボルが一致した場合に参照テーブルから "Company" カラムの値を出力 CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" ( ticker_symbol VARCHAR(4), company VARCHAR(20), sector VARCHAR(12), change DOUBLE, price DOUBLE); CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM" SELECT STREAM ticker_symbol, c."Company", sector, change, price FROM "SOURCE_SQL_STREAM_001" LEFT JOIN "CompanyName" c ON "SOURCE_SQL_STREAM_001".ticker_symbol = c."Ticker";
  43. 43. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ウィンドウやタイムスタンプを利用した ストリーム処理のAWSでの事例 引用元 http://data.gunosy.io/entry/dashboard-with-kinesis-analytics STEP 1 データの収集と ETL STEP 2 継続的なメトリクス計算 STEP 3 リアルタイム分析と応答
  44. 44. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Analytics 料金 料金構成 料金 KPUの平均量 / 時間 $0.110 オレゴンリージョンの場合 KPU (Kinesis Processing Unit) • 4 GB のメモリ、1 vCPU のコンピューティング、対応するネットワーク リソースで構成されるストリーム処理能力の単位 • クエリの複雑性やメモリと計算能力の要求が応答に応じて異なるため、 Amazon Kinesis Analytics では分析を完了するために必要な KPU が自動 的、かつ、伸縮自在にスケールされる
  45. 45. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. このセミナーの内容 1. Amazon Kinesis の特徴 1. Amazon Kinesis Streams 2. Amazon Kinesis Firehose 3. Amazon Kinesis Analytics 2. Amazon Kinesis の適用例 3. まとめ
  46. 46. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis の適用例
  47. 47. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis とストリーム処理 はじめの一二三歩 Data producer Amazon S3 Amazon Athena Lambda function Amazon Kinesis Analytics Amazon Kinesis Streams Amazon SNS Lambda function ①可視化 ②仮説検証 ③自動化 Amazon Kinesis Firehose Amazon Elasticsearch Service Lambda function Amazon S3 (Reference data source)
  48. 48. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis とラムダアーキテクチャ Data producer Amazon Kinesis Firehose Amazon Kinesis Streams Amazon S3 SPEED BATCH SERVING Amazon EMR Amazon ES Amazon Athena Amazon QuickSight Amazon Kinesis Streams Amazon Kinesis Analytics Amazon DynamoDB Amazon ElastiCache Amazon RDS AWS Lambda Amazon Redshift Amazon SNS AWS Glue Any on Amazon EC2 APPs http://lambda-architecture.net/
  49. 49. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis と IoT センサーデータ ① データ保管 対象シーン • センサーデータなどのバックアップ • 機械学習などのモデル作成に向けた準備 条件 • 128 KB 以内のメッセージ AWS IoT ルールエンジン Amazon Kinesis Firehose Amazon S3 ② 他システム連携 対象シーン • AWS 内外のシステムと API 連携するパ ターン 条件 • センサーデータをバッファリングして他 システムと連携する IoT デバイズ Amazon Kinesis Streams AWS Lambda 他シス テム ③ ストリーム処理 対象シーン • センサーデータに対して異常検知、スラ イディングウィンドウ処理などをスト リームで処理したい 条件 • 要件に応じて Spark on EMR なども検討 Amazon Kinesis Analytics
  50. 50. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. このセミナーの内容 1. Amazon Kinesis の特徴 1. Amazon Kinesis Streams 2. Amazon Kinesis Firehose 3. Amazon Kinesis Analytics 2. Amazon Kinesis の適用例 3. まとめ
  51. 51. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. まとめ
  52. 52. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis プラットフォーム ストリームデータを収集・処理するためのフルマネージドサービス群 Amazon Kinesis Streams ストリームデータを 処理するための アプリケーションを 独自に構築 Amazon Kinesis Analytics ストリームデータを 標準的な SQL クエリ でリアルタイムに分析 Amazon Kinesis Firehose ストリームデータを Amazon S3, Amazon Redshift, Amazon ES へ 簡単に配信
  53. 53. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis プラットフォームの全体的な特徴 リアルタイムなデータストリームを簡単に捉え、配信し、処理できます 先払いなしの従量課金 弾力のある拡張性とサーバーレス ユースケースに合わせた適切なサービスの選択が可能 リアルタイムなレイテンシー 簡単なプロビジョニング、デプロイ、管理
  54. 54. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis とストリーム処理 はじめの一二三歩 Data producer Amazon S3 Amazon Athena Lambda function Amazon Kinesis Analytics Amazon Kinesis Streams Amazon SNS Lambda function ①可視化 ②仮説検証 ③自動化 Amazon Kinesis Firehose Amazon Elasticsearch Service Lambda function Amazon S3 (Reference data source)
  55. 55. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. さいごに • Amazon Kinesisが提供しているもの • ストリームデータを取り込み、継続的に処理するアプリケーション を作るためのマネージドサービス • Amazon Kinesisについてもっと知りたい方はこちら • 公式ドキュメント - https://aws.amazon.com/kinesis/ • AWS クラウドサービス活用資料集 - https://aws.amazon.com/jp/aws-jp-introduction/ • AWS ブログ - https://aws.amazon.com/jp/blogs/news/category/amazon-kinesis/ • What's New in Amazon Kinesis - https://aws.amazon.com/jp/kinesis/whats-new/ • AWS Big Data Blog (Category: Amazon Kinesis) - https://aws.amazon.com/jp/blogs/big- data/category/analytics/amazon-kinesis/ • Amazon Kinesis Forum - https://forums.aws.amazon.com/forum.jspa?forumID=169 Amazon Kinesis でデータを集めよう!
  56. 56. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

×