SlideShare a Scribd company logo
Cloud Onr
Cloud OnAir
Cloud OnAir
GCP上でストリーミング
データ処理基盤を構築してみよう!
2018 年 9 月 13 日 放送
Agenda
Cloud OnAir
1
3
2
4
Googleが考えるストリームデータ処理
Cloud Dataflow
Cloud Pub/Sub
Pub/Sub と Dataflow でストリーミング処理を行う
Cloud OnAir
Cloud OnAir
Googleが考えるストリームデータ処理
Cloud OnAir
データ...
Cloud OnAir
...大量なデータ...
Cloud OnAir
...もっと大量なデータ...
Tuesday
Wednesday
Thursday
Cloud OnAir
...無限まで大きい... ストリーミングデータ
9:008:00 14:0013:0012:0011:0010:00
Cloud OnAir
ストリーミングデータ
9:008:00 14:0013:0012:0011:0010:00
8:00
8:008:00
処理時刻
(Processing Time)
イベント時刻
(Event Time)
Cloud OnAir
13:00 14:008:00 9:00 10:00 11:00 12:00
Processing
Time
∑ ∑ ∑ ∑ ∑ ∑ ∑8:00 8:00
処理時刻によるデータのグルーピング
Cloud OnAir
処理時刻
(Processing
Time)
11:0010:00 15:0014:0013:0012:00
イベント時刻
(Event Time)
11:0010:00 15:0014:0013:0012:00
インプット
アウトプット
∑ ∑ ∑ ∑ ∑ ∑
イベント時刻によるデータのグルーピング
Cloud OnAir
● Watermark
イベント時刻ベースでどこまで処理が完了したか
● Trigger
ウィンドウ集計結果をどのタイミングで出力するか
● Accumulation
集計結果出力時の累積計算方式
○ 破棄モード(Discarding)
○ 累算モード(Accumulating)
○ 累算&後退モード(Accumulating & Retracting)
問題を解決する 3 つの要素
Cloud OnAir
Watermark に基づいたデータ処理
Cloud OnAir
遅延データの処理について
Cloud OnAir
Dataflow モデルと Cloud Dataflow
● バッチ / ストリーミングデータ処
理の共通モデル
● パイプラインを構築するための
SDK のコレクション
並列化データ処理
パイプラインを実行するための
フルマネージドサービス
Cloud DataflowApache Beam
Cloud OnAir
GCP 上のストリーミングデータ処理
Ingest Pipelines
Standard
Devices
HTTPS
Gateway
Analytics
Cloud
Pub/Sub
Cloud
Dataflow
BigQuery
ストリーミング処理に利用する主なサービス
Cloud OnAir
Cloud OnAir
Cloud Dataflow
Cloud OnAir
Cloud Dataflow の特徴
Deploy
Schedule & Monitor
ジョブのオートスケーリング
フルマネージドで自動構成
最適な実行パスのための自動グラフ最適化
ジョブの動的な負荷のリバランシング
1
2
3
4
Cloud OnAir
Cloud Dataflow の特徴
ジョブのオートスケーリング
フルマネージドで自動構成
最適な実行パスのための自動グラフ最適化
ジョブの動的な負荷のリバランシング
1
2
3
4
C D
C+D
C
C+D
A GBK +
A+ GBK +
Cloud OnAir
ジョブのオートスケーリング
フルマネージドで自動構成
最適な実行パスのための自動グラフ最適化
ジョブの動的な負荷のリバランシング
1
2
3
4
800 RPS 1200 RPS
Cloud Dataflow の特徴
Cloud OnAir
ジョブのオートスケーリング
フルマネージドで自動構成
最適な実行パスのための自動グラフ最適化
ジョブの動的な負荷のリバランシング
1
2
3
4
100 mins.
vs.
Cloud Dataflow の特徴
Cloud OnAir
ワークロードによる動的なスケーリング
少ないワーカーでスタート
10 分
3 日
必要に応じてワーカーを追加し、
既存ワークロードを自動的にリバ
ランス
アイドル
ワーカーが必要以上にある場合は自動的に
ワーカーの数を削減
Cloud OnAir
パイプラインの基本コンセプト
● PipelineIO:外部データリポジトリにデータを読み書きする
● PCollection:データを保持する内部データタイプ
● PTransformation:インプットを変換する機能
● パイプライン:PipelineIO と PTransformationからなるデータフロー
Pipeline IO
(インプット)
Pipeline IO
(アウトプット)
PTransform
PTransform
PTransform
PCollection
(データ)
パイプライン
Data
Input
Data
Result
Cloud OnAir
● テキストファイルの単語のカウントパイプライン
PTransform
PTransform
PipelineIO
(Text)
PipelineIO
(Text)
Cloud
Storage
PTransform
Cloud
Storage
単語のカウント単語の抽出 結果の整形ファイルの読み取り
ファイルへ
の書込み
パイプラインの基本コンセプト
Cloud OnAir
● “Hello my daddy” を読み取り、処理する
PipelineIO
(Text)Hello my daddy
Hellomydaddy
PTransform
PTransform
Hello:1
my : 1
daddy :1
Hello my baby Hellomybaby
PTransform
PTransform
Hello:2
my : 2
daddy :1
baby : 1
PipelineIO
(Text)
PTransform
PipelineIO
(Text)
Cloud
Storage
Cloud
Storage
PTransform
PipelineIO
(Text)
Cloud
Storage
Cloud
Storage
● “Hello my baby” を読み取り、処理する
単語のカウント単語の抽出 結果の整形
単語のカウント単語の抽出 結果の整形
パイプラインの基本コンセプト
Cloud OnAir
● 全ての単語をカウントし終わりましたら、ファイルへ書き込む
PTransform
PTransform
PipelineIO
(Text)
PipelineIO
(Text)
Cloud
Storage
PTransform
Cloud
Storage
Hello:2
my : 2
daddy :1
baby : 1
“Hello:2”
“my : 2”
“daddy :1”
“baby : 1”
単語のカウント単語の抽出 結果の整形ファイルの読み取り
ファイルへ
の書込み
パイプラインの基本コンセプト
Cloud OnAir
サンプルコード:単語のカウント処理
PTransform
Pipeline IO
(Text)
Cloud
Storage
PTransform
PTransform
Pipeline IO
(Text)
Cloud
Storage
単語のカウント
単語の抽出
結果の整形
ファイルの読み取り
ファイルへの書込み
Cloud OnAir
Dataflow パイプラインのコードサンプル
Group 1
Filter 2
Transform 1
Write
Read
Filter 1
Input
Output
Pipeline p = Pipeline.create();
p.
p.run();
.apply(ParDo.of(new Filter1()))
.apply(new Transform1())
.apply(new Group1())
.apply(ParDo.of(new Filter2())
.apply(TextIO.Write.to(“gs://…”));
.apply(PubSubIO.Read.from(pubsub_topic))
class Filter1 extends DoFn<...> {
public void
processElement(ProcessContext c) {
... = c.element();
...
c.output(...);
}
並列タスク(ランタイムによる自
動スケール)
Dataflow 以外のランタイム
でも実行可能
ストリーミング処理の場合
Cloud Pub/Sub からデータを
読み取る
Cloud OnAir
Apache Beam の処理操作について
バッチ
ストリーム
プリミティブ型の変換とカスタム
変換の組み合わせ
フィルター
フィルターとグループ
フィルターとグループとウィンドウ
Cloud OnAir
Pub/Sub から BigQuery への書き込み
Dataflow テンプレートによるストリーミング処理
Ingest
Cloud
Pub/Sub
Pipelines
Cloud
Dataflow
Analytics
BigQuery
Cloud Console を使用してテンプレート
ジョブを起動
適切なテンプレートを選択
このデモは下記 Qwiklab に基づいて作成しております。
https://qwiklabs.com/focuses/1099?parent=catalog
Cloud OnAir
Cloud OnAir
Cloud Pub/Sub
Cloud OnAir
at-least-once 配信
プロビジョニング不要の自動処理
グローバルにデザインされた高い可用性
信頼性の高いリアルタイムのメッセージング
Cloud Pub/Sub
Cloud OnAir
Publisher
Subscriber
Topic
Subscription
Message
Message
Pub/Sub の基本構造
Cloud OnAir
Publisher
Subscriber
Topic
Subscription
Message
Message
Subscriber
Publisher
Subscriber
Message
Subscriber
Message
Message
Message
Publisher
Message
Message
Topic
Subscription
Subscriber
Publisher
Subscriber
Topic
Message
Message
Message
Message
Message
Message
Subscription Subscription
構成パターン
Cloud OnAir
エンドポイントは API
呼び出しを行えるサーバー
もしくはデバイス
メッセージ配信は
Subscriber のタイミング
エンドポイントは Webhook
を受け付ける HTTPS サー
バーのみ
イベントが発生した直後に配
信される
Push と Pull の比較
Cloud OnAir
Cloud OnAir
Pub/Sub と Dataflow で
ストリーミング処理を行う
Cloud OnAir
このデモの構成と概要
Cloud Pub/Sub Cloud Dataflow BigQueryCompute Engine
このデモでは、シミュレートされたトラフィックセンサーからトラフィックイベントを
Cloud Pub/Sub へ送信します。Dataflow を使用し、 レーンごとの平均スピードを求める
パイプラインを実行し、後で分析するためにデータを BigQuery に保存します。
Cloud OnAir
デモの手順
# 1.トピックの作成
$ gcloud beta pubsub topics create sandiego
# 2.トラフィック センサー シミュレータプログラムのダウンロード
$ cd ~
$ git clone 
https://github.com/GoogleCloudPlatform/training-data-analyst
$ cd ~/training-data-analyst/courses/streaming/publish
3.データのダウンロード
$ ./download_data.sh
# 4.ユーザ認証
$ gcloud auth application-default login
# 5.トピックにメッセージのパブリッシュ
$ ./send_sensor_data.py --speedFactor=60 --project=YOUR-PROJECT-ID
1. トピックの作成
2. サブスクリプションの作成
3. トラフィックセンサーを
シミュレートし、生成した
データを Cloud Pub/Sub
に送信
Cloud OnAir
デモの手順
# 6 [demos] という BigQuery のデータセットを作成
# 7. Dataflow パイプラインのプログラムのダウンロード
$ cd ~
$ git clone
https://github.com/GoogleCloudPlatform/training-data-analyst
$ cd ~/training-data-analyst/courses/streaming/process/sandiego
# 8. Dataflow パイプラインの実行コマンドを確認 (パラメータの確認 )
$ nano run_oncloud.sh
# 9. Pub/Sub からメッセージを読み取り、 BigQuery へ送信
$ cd ~/training-data-analyst/courses/streaming/process/sandiego
$ ./run_oncloud.sh YOUR-PROJECT-ID gs://[YOUR_BUCKET_NAME] AverageSpeeds
# 10. BigQuery にて下記のクエリを発行し結果を確認
SELECT * FROM [<PROJECTID>:demos.average_speeds]
ORDER BY timestamp DESC
LIMIT 100
Cloud OnAir
Cloud OnAir
まとめ
Cloud OnAir
Dataflow モデルと Cloud Dataflow
● バッチ / ストリーミングデータ処
理の共通モデル
● パイプラインを構築するための
SDK のコレクション
並列化データ処理
パイプラインを実行するための
フルマネージドサービス
Cloud DataflowApache Beam

More Related Content

PDF
機械学習モデルのサービングとは?
PDF
PlaySQLAlchemy: SQLAlchemy入門
PPTX
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
PDF
ゼロから始める転移学習
PDF
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
PPTX
AWSで作る分析基盤
PDF
ソフトウェア開発における『知の高速道路』
PDF
GoによるWebアプリ開発のキホン
機械学習モデルのサービングとは?
PlaySQLAlchemy: SQLAlchemy入門
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
ゼロから始める転移学習
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
AWSで作る分析基盤
ソフトウェア開発における『知の高速道路』
GoによるWebアプリ開発のキホン

What's hot (20)

PDF
マルチテナントのアプリケーション実装〜実践編〜
PDF
マルチテナント化で知っておきたいデータベースのこと
PPTX
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
PPTX
世界一わかりやすいClean Architecture
PDF
推薦アルゴリズムの今までとこれから
PDF
ビジネスパーソンのためのDX入門講座エッセンス版
PDF
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
PDF
マイクロにしすぎた結果がこれだよ!
PDF
継続的なモデルモニタリングを実現するKubernetes Operator
PDF
次世代データ基盤としてのSnowflakeの可能性 SnowDay 20211208
PDF
マイクロサービス 4つの分割アプローチ
PPTX
RLSを用いたマルチテナント実装 for Django
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
PDF
Re: ゼロから始める監視設計
PDF
ドメイン駆動設計(DDD)の実践Part2
PDF
Python 3.9からの新定番zoneinfoを使いこなそう
PPTX
初心者向けMongoDBのキホン!
PDF
ChatGPTは思ったほど賢くない
PDF
イミュータブルデータモデルの極意
PDF
全社のデータ活用を一段階上げる取り組み
マルチテナントのアプリケーション実装〜実践編〜
マルチテナント化で知っておきたいデータベースのこと
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
世界一わかりやすいClean Architecture
推薦アルゴリズムの今までとこれから
ビジネスパーソンのためのDX入門講座エッセンス版
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
マイクロにしすぎた結果がこれだよ!
継続的なモデルモニタリングを実現するKubernetes Operator
次世代データ基盤としてのSnowflakeの可能性 SnowDay 20211208
マイクロサービス 4つの分割アプローチ
RLSを用いたマルチテナント実装 for Django
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Re: ゼロから始める監視設計
ドメイン駆動設計(DDD)の実践Part2
Python 3.9からの新定番zoneinfoを使いこなそう
初心者向けMongoDBのキホン!
ChatGPTは思ったほど賢くない
イミュータブルデータモデルの極意
全社のデータ活用を一段階上げる取り組み
Ad

Similar to [Cloud OnAir] GCP 上でストリーミングデータ処理基盤を構築してみよう! 2018年9月13日 放送 (20)

PDF
[Cloud OnAir] オンプレミスにあるデータを GCP で分析する前に知っておきたいアーキテクチャ 2019年5月30日 放送
PDF
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
PPT
Googleの基盤クローン Hadoopについて
PDF
[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送
PDF
[Cloud OnAir] そのデータ、今すぐ分析したくありませんか? クラウドを活用したリアルタイムなデータ分析の方法をお教えします (e-Learni...
PDF
Google Cloud Dataflow を理解する - #bq_sushi
PDF
[Cloud OnAir] Google Kubernetes Engine と Cloud Spanner の紹介 2020 年 1 月 30 日放送
PDF
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
PDF
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
PDF
GoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみよう
PDF
Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28
PDF
[Cloud OnAir] ケーススタディから学ぶ GCP で行うデータ エンジニアリング 2019年6月6日 放送
PDF
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
PDF
CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤
PDF
20170127 JAWS HPC-UG#8
PDF
Participation report of data stax accelerate 2019
PDF
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
PPTX
Myfirst cloudfoundry intro_20161201
PDF
[Cloud OnAir] Google Cloud へのデータ移行 2019年1月24日 放送
PDF
FluentdとRedshiftの素敵な関係
[Cloud OnAir] オンプレミスにあるデータを GCP で分析する前に知っておきたいアーキテクチャ 2019年5月30日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
Googleの基盤クローン Hadoopについて
[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送
[Cloud OnAir] そのデータ、今すぐ分析したくありませんか? クラウドを活用したリアルタイムなデータ分析の方法をお教えします (e-Learni...
Google Cloud Dataflow を理解する - #bq_sushi
[Cloud OnAir] Google Kubernetes Engine と Cloud Spanner の紹介 2020 年 1 月 30 日放送
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
GoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみよう
Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28
[Cloud OnAir] ケーススタディから学ぶ GCP で行うデータ エンジニアリング 2019年6月6日 放送
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤
20170127 JAWS HPC-UG#8
Participation report of data stax accelerate 2019
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Myfirst cloudfoundry intro_20161201
[Cloud OnAir] Google Cloud へのデータ移行 2019年1月24日 放送
FluentdとRedshiftの素敵な関係
Ad

More from Google Cloud Platform - Japan (20)

PDF
ServerlessDays Tokyo 2022 Virtual.pdf
PDF
20221105_GCPUG 女子会 Kubernets 編.pdf
PDF
Google Cloud でアプリケーションを動かす.pdf
PDF
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
PDF
What’s new in cloud run 2021 後期
PDF
【Dialogflow cx】はじめてみよう google cloud dialogflow cx 編
PDF
Google Cloud で実践する SRE
PDF
[Cloud OnAir] 事例紹介 : 株式会社マーケティングアプリケーションズ 〜クラウドへのマイグレーションとその後〜 2020年12月17日 放送
PDF
[Cloud OnAir] 【実演】Google Cloud VMware Engine と VMware ソリューションを組み合わせたハイブリッド環境の...
PDF
[Cloud OnAir] Google Workspace でできる データ分析と業務自動化のご紹介 2020年12月3日 放送
PDF
[Cloud OnAir] Google Cloud へのマイグレーション ツールの紹介 2020年11月26日 放送
PDF
[Cloud OnAir] Google Cloud における RDBMS の運用パターン 2020年11月19日 放送
PDF
[Cloud OnAir] 事例紹介: 株式会社オープンハウス 〜Google サービスを活用したオープンハウスの AI の取り組み〜 2020年11月1...
PDF
[Cloud OnAir] 【Anthos 演習】 解説を聞きながら Anthos を体験しよう 2020年11月5日 放送
PDF
[Cloud OnAir] 【Google Kubernetes Engine 演習】解説を聞きながら GKE を体験しよう 2020年10月29日 放送
PDF
[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送
PDF
[Cloud OnAir] Google Cloud Next '20: OnAir 特別編 〜世界で人気のあったセッション特集〜 2020年9月24日 放送
PDF
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
PDF
明日から役立つ BigQuery ML 活用 5 つのヒント | Google Cloud INSIDE Games & Apps: Online
PDF
今だから知りたい BigQuery 再入門 | Google Cloud INSIDE Games & Apps: Online
ServerlessDays Tokyo 2022 Virtual.pdf
20221105_GCPUG 女子会 Kubernets 編.pdf
Google Cloud でアプリケーションを動かす.pdf
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
What’s new in cloud run 2021 後期
【Dialogflow cx】はじめてみよう google cloud dialogflow cx 編
Google Cloud で実践する SRE
[Cloud OnAir] 事例紹介 : 株式会社マーケティングアプリケーションズ 〜クラウドへのマイグレーションとその後〜 2020年12月17日 放送
[Cloud OnAir] 【実演】Google Cloud VMware Engine と VMware ソリューションを組み合わせたハイブリッド環境の...
[Cloud OnAir] Google Workspace でできる データ分析と業務自動化のご紹介 2020年12月3日 放送
[Cloud OnAir] Google Cloud へのマイグレーション ツールの紹介 2020年11月26日 放送
[Cloud OnAir] Google Cloud における RDBMS の運用パターン 2020年11月19日 放送
[Cloud OnAir] 事例紹介: 株式会社オープンハウス 〜Google サービスを活用したオープンハウスの AI の取り組み〜 2020年11月1...
[Cloud OnAir] 【Anthos 演習】 解説を聞きながら Anthos を体験しよう 2020年11月5日 放送
[Cloud OnAir] 【Google Kubernetes Engine 演習】解説を聞きながら GKE を体験しよう 2020年10月29日 放送
[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送
[Cloud OnAir] Google Cloud Next '20: OnAir 特別編 〜世界で人気のあったセッション特集〜 2020年9月24日 放送
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
明日から役立つ BigQuery ML 活用 5 つのヒント | Google Cloud INSIDE Games & Apps: Online
今だから知りたい BigQuery 再入門 | Google Cloud INSIDE Games & Apps: Online

[Cloud OnAir] GCP 上でストリーミングデータ処理基盤を構築してみよう! 2018年9月13日 放送