サイトをリニューアルいたしました。(6/1)

Cloud OnAir 第13回 ~ 「クラウドを活用したリアルタイムなデータ分析の方法をお教えします 」~速報まとめ

2017年10月5日より、【隔週木曜 18:00~18:45】に、Google社のエンジニアが、Google Cloud Platformの製品、サービスや導入事例等について解説する番組が始まっています。
ユーザー参加型の生放送番組となっており、視聴者からのリアルタイムQ & Aも受け付けています!

この記事では、動画を見逃した方や、見る時間が無い方向けに、要点をかい摘まんで、クイックに紹介したいと思います。

一般的に「データ分析」と耳にしたとき、思い浮かべるのは「一定期間ごとに、既に蓄積されたデータから、一括で結果を取得する」いわゆるバッチ方式ではないでしょうか。
今回の放送では、バッチ処理にとどまらず、リアルタイムな情報分析の実現を助けるGoogle Cloud Platformのプロダクトについても解説しています。

講師は、Google Cloud カスタマーエンジニアの下田 倫大さんです。

今回のテーマ: そのデータ、今すぐ分析したくありませんか? クラウドを活用したリアルタイムなデータ分析の方法をお教えします

前回『Cloud OnAir 第12回 ~「ビジネスを変革する!クラウドを活用したデータ分析基盤の第一歩」』では、データ分析をはじめるにあたって必要となる「データ活用のための基盤」、つまり材料となる「データ」を「どう取得し、どう格納するか」という観点のご紹介でした。
前回の「データ活用基盤」を受け、いよいよ構築された基盤の上でのデータ分析手法について、Google Cloud Platform(GCP)が提供する機能と、それがもたらすものをご紹介いたします。

おさらい: データレイク・データウェアハウスと対応するGCPサービスについて

未加工データを格納し続けるデータレイク(data lake)。分析用に整形・構造化されたデータを格納し続けるデータウェアハウス(data warehouse・DWH)。
各々に対応するサービスとして、GCPではそれぞれGoogle Cloud Storage(GCS)、BigQueryを提供しています。

アドホック分析と定型分析

一般的に、データ分析の手法としては、次の2種類が考えられます。
アドホック分析 …分析者(人間)が仮説を立て、試行錯誤を繰り返すことで知見を得る手法。非定型処理。
定型分析 … アドホック分析で得られた知見から有用と認めた方式をプログラム化し、定型処理を定期的に実行させる手法。
これらの手法に寄与するBigQueryの機能をご紹介いたします。

BigQueryを活用したデータ分析

バルクロードとストリーミングインサートの両方に対応したBigQuery

BigQueryでは、一般的なバッチ処理を目的とした「バルクロード」方式、ならびにリアルタイム分析処理に適した「ストリーミングインサート」方式の両方を利用することができます。

  • バルクロード(bulk load)
    一定間隔、一括、ファイル単位での入力方式。
  • ストリーミングインサート(streaming insert)
    随時、リアルタイム、ファイルを必要としないレコード単位での入力方式。

アドホック分析、定型分析どちらもBigQueryで!

  • BigQueryのWeb UIを用いて、高速にアドホック分析が可能
  • BigQuery APIを利用することで、BigQueryに蓄積されたデータ、登録したクエリを用いる外部プログラムによる定型分析を実装できる

※分析結果のGoogle DataStudioによる可視化については、次週5/17のe-learning編にて説明

BigQuery で実装するとしたら?

それではここで問題です。3つのユースケースが例示されています。
BigQuery 単体で一番実装が簡単なものはどれでしょうか。
スライドの1~3番からお選びください。

……答えは、1番です。
それでは、1番から3番までのそれぞれについて解説していきます。

大規模な集計処理

1番は、まさにバッチ処理と呼ばれるものです。
BigQuery はデータウェアハウスのサービスであるため、溜まったデータに対して、一括で処理を行うことを得意としています。

ストリーム処理


ストリーム処理について、詳しくは後述しますが、リアルタイムな集計処理についてはBigQuery だけではなく、「BigQueryに向けてデータを処理する」他のGCPサービスと組み合わせる必要があります。
そのため、2番は不正解です。

アプリケーションとのリアルタイムな連携

3番は、入力されたデータに基く判定・アカウントの停止といった他アプリケーションとの連携が必須となるため、BigQuery単体ではなく、後述する『パイプライン』としての構成が必要となります。

バッチ処理とストリーム処理

『パイプライン』は、性質の異なる2つの処理を交じえて構成することができます。

バッチ処理

バッチ処理は、溜まったデータを対象にし、処理する方法です。
一定期間に渡って蓄積したデータを周期的に分析する、という性質上、蓄積の開始~分析結果の出力、のタイムラグが発生します。

ストリーム処理

ストリーム処理は、流れてくるデータに対して、順次、継続的に処理を行います。
近年注目されており、IoT の本格化から年々需要が高まってきている処理方法です。
バッチ処理と異なり、随時蓄積・随時分析が可能なため、タイムラグを最小化することが可能です。

データパイプラインとは、バッチ処理やストリーム処理を組み合わせて実現されるデータ処理の全体像です。

データパイプラインの実現

パイプラインを実現するための構成要素
データパイプラインには、以下4つの構成要素が考えられます。

  • データレイク
  • データウェアハウス
  • バッチ処理・ストリーム処理
  • メッセージング基盤

メッセージング基盤については、後述します。

GCPでパイプラインを実現するには?

パイプラインの構成要素に、それぞれ以下4つのサービスが対応しています。

それでは、Cloud Dataflow、Cloud Pub/Subの2つのサービスについて、詳しく紹介していきます。

GCP 上のメッセージング基盤

リアルタイムに流れてくるデータの受け渡しを行う場合、Cloud Pub/Sub を利用します。
入力されたデータを、様々なシステム・サービスに送る役割を果たします。
Pub/Sub は2語の複合語で、それぞれ

  • Publish (発行・投函する)
  • Subscribe (読む)

の略で、データの送信(Pub/Sub側)と受信(アプリケーション側)に対応しています。

GCP 上のストリーム処理とバッチ処理

Cloud Dataflow では、性質の異なるストリーム処理とバッチ処理の両方を扱うことができます。

データパイプライン

それでは、これまでの説明から、先ほど紹介したデータパイプライン構成要素は、それぞれどのGCPサービスにあたるか確認していきましょう。

  • ファイル(入力): Google Cloud Storage
  • バッチ処理・ストリーム処理:Cloud Dataflow
  • データウェアハウス:BigQuery
  • ログデータ(入力): Cloud Pub/Sub

Dataflow はデータ処理のためにプログラミングを必要とするサービスですが、
より手軽な、プログラミングを伴わない方法として、2つのサービスを利用することができます。

ノンプログラミングでDataflow(1) – Dataprep

Dataprep は処理の裏側で、Dataflow を使用しています。
GUIから処理の内容を定義することができ、GCS上のデータとBigQueryの間でのフィルタ処理を手軽に実装できます。

ノンプログラミングでDataflow(2) -テンプレート

Google が提供するテンプレートを利用して、GUIからDataflow を利用することができます。
利用者自身がテンプレートを作成、使用することも可能です。

Google Cloud 活用事例


Google Cloud 活用事例として、前回も紹介していた2つの企業を紹介していました。
Dataflowと組み合わせることで、BigQueryの持つ可能性を最大限に引き出していることがわかります。

Q & A

2018年度の放送分については、放送中にリアルタイムにコメント欄で質問に対する応答がおこなわれており、どうやらQ & Aコーナーは設けない方針のようです。

まとめ

  • 分析の種類にはアドホック分析と提携分析がある
  • どちらもBigQueryを使うことで実現可能
  • 処理の方式として、バッチ処理とストリーム処理の2つを紹介
  • 従来のデータ処理のイメージは、バッチ処理だが、リアルタイムで流れてくるデータを処理するためにはストリーム処理
  • フルマネージドサービスであるDataflow を利用することでバッチ処理、ストリーム処理を両立
  • 一連の処理を組み合わせ、データパイプラインを構築することで、より強力な分析が可能になる

最後にひとこと

ストリーム処理とバッチ処理を両立する、「Cloud Dataflow」。そしてメッセージング基盤「Cloud Pub/Sub」、アドホック分析も手軽な「BigQuery」。フィルタ処理を簡略化する「Dataprep」。
Google Cloud Platformにはデータ分析に必要となるサービスが揃っています!そして、そのすべてがフルマネージドサービス。
データ分析システムの構築にはやっぱりGCPですね!

参考リンク

Youtube視聴

Cloud OnAirの放送は、今回分含め、バックナンバーも全てYoutubeで視聴できます。
スライドと合わせて進行する解説を、是非ご覧ください!
Youtube URL:https://www.youtube.com/watch?v=J9km0ttAyz8

SlideShare

今回の動画で説明に使用されたスライドについても、SlideShareでいつでも閲覧可能です。
登場した用語について振り返りたい、用語同士の関係性を確認したい等、大変参考になります!
スライドURL:https://www.slideshare.net/GoogleCloudPlatformJP/cloud-onair-live-2018510

Cloud OnAir 速報記事のバックナンバー

過去回はCloud OnAir カテゴリにまとめてありますので、ぜひこちらもチェックしてください!

それでは、次回も5/24(木) 18:00にお会いしましょう。