• tech系
8分で読める

Cloud OnAir 第3回 ~No-ops で大量データ処理基盤を簡単に構築する~ 速報まとめ

こちらの記事は弊社技術ブログに掲載していた内容となります。一部を除き、投稿当時の情報となりますので、紹介内容の最新情報については別途公式情報等をご参照下さい。

こんにちは。クラウドエース編集部です。

2017年10月5日より、隔週木曜 18:00~18:45にGoogle社のエンジニアがGoogle Cloud Platformの製品、サービスや導入事例等を解説する番組が始まりました。動画を見逃した方、見る時間が無い方向けにどのようなことを配信したのかについてクィックに紹介したいと思います。

第3回目のCloudOnAirはビッグデータ処理基盤についてです!
BigQuery や Cloud Dataflow、Pub/Subを使って No-Ops でデータ処理基盤を構築する方法を紹介します。GCPのプロダクトだけで数十GBのデータを数秒でクエリし、あっという間に可視化するデモは圧巻です!講師はグーグルクラウドジャパン合同会社の村上大河さんです。

はじめに

no-opsとは、「アプリケーションを提供する際に発生するメンテナンス(運用作業)から解放されていること」です。

大量データ処理とは

データ処理とは何でしょうか?例えば、表形式スプレッドシートで集計したデータを分類したり、グラフ化するような作業です。年月日で分類したり、目で見て気づきを得るような作業がデータ分析に相当します。データ処理は、「収集→保存→加工/分析→可視化」の段階があります。
データ量が少なければスプレッドシートで十分ですが、一般的な企業が保有するデータサイズは、563~100,000TB(10,000,000スプレッドシート)に相当すると考えられています。

大量のデータをどうやって処理・利用するか

これまでのやり方では、「大量・高性能のサーバ」+「アプリケーション(データベース等)」を用意して分析を行って居ました。これらを用意すると、データ分析する前段の作業として以下のようなことが必要になります。

  • サーバ機器の用意
  • クラスタの作成・運用
  • データベース・アプリケーションのセットアップ
  • 稼働サーバが故障したときの修理対応、等

結果として、データ処理作業における分析作業の割合は15%くらいになります。

大量データに対するGoogleのアプローチ

大量データを分析するための論文を数多く発表し、オープンソースソフトウェアとして公開してきました。(例:MapReduce) それらをGCP上でサービスとして提供しています。その結果、インフラ等の作業ではなくデータを分析して気づきを得ることに集中できるようサービスを利用することができます。

簡単に構築するには

まず、簡単という言葉にどのようなイメージを持っていますでしょうか?ここでは「すぐ+安価」と捉えます。すぐ使えるサービスはよくありますが、安価に使える、というのも非常に重要だと思います。GCPでデータ処理を実現するために、以下のサービスがあります。

  • 収集:Pub/Sub, Stackdriver Logging, BQ Streaming, App Engine
  • 保存: Cloud Storage, Cloud SQL, BigQuery Storage, Bigtable, Datastore, Spanner
  • 加工: Dataflow, BigQuery, Machine Learning
  • 可視化: Cloud Datalab, Data Studio, Tableau

これらのサービスは使った分だけお金がかかるため、ちょっと使ってみて試しやすい状態になっています。なるべく安く良心的に使えるようにしています。

リファレンスアーキテクチャ

代表的なデータ分析のやり方、サービスについてご紹介致します。
これらのサービスはGCPに申し込むことですぐ使える状態になります。

Cloud Storage

オブジェクトストレージ。外部システムが出力するファイルのGCPへのエントリーポイントとなる。分析対象とする大量にあるデータの置き場所に使って頂くことを想定しています。例えば、1日に1回集計したデータをアップロードするような使い方になります。

Cloud Pub/Sub

At Least Oneの信頼性を持つ、スケーラブルなグローバル分散メッセージキュー。リアルタイムにデータを受けるための機能。
Cloud Storageは誰かがデータを入力として使うことができますが、誰がデータを使っているかが分かりません。そのため、違う人が同じデータを処理して作業が重複してしまうことがあります。Pub/Subを使うと誰がどのデータにアクセスしたかを把握することが可能ですので、より効率よくデータ処理することができます。

Stackdriver Logging

GCPおよびAWS(EC2)からログイベントを収集。APIを介して任意のアプリケーションログも収集。

Cloud Dataflow

バッチ/ストリーム両方に対応したデータ処理エンジン。Dataprocよりリアルタイムに処理するようなデータ入力に最適なサービスになります。

Cloud Dataproc

Spark/Hadoopのマネージドサービス。ある程度きまった量や形式のデータを扱う場合(バッチ処理)に最適なサービスになります。

BigQuery

大規模データセットに対する高性能クエリーエンジン。大量データ処理における重要な要素になります。大量のデータを入れたり、大量のデータを取ってくることに特化したサービスです。入力して加工したデータを最終的に分析処理する際に利用します。

可視化

GCPでは、「Cloud Datalab」と「Data Studio」というデータ可視化ツールを用意しています。また、BigQueryからスプレッドシートにデータを持って行くこともできます。GCPの可視化ツールを使うと、全てクラウド上で処理できます。そのため、端末のスペックに依存せず、いろんな分析を行うことができます。また、パソコン上で起動して使うアプリからBigQueryに接続して使うこともできます。ただ、その場合はアプリを動かすための処理能力が端末に必要となります。

実際のデモ

今回のデモは、米国の出生率のデータを使用してRUN QUERYするようなデモになっていました。21.9GBのデータを2.9秒でQuery完了するようなことを実施しています。このデモでは単純に全カラムを抜き出しているだけのQueryでしたが、分析に必要なカラムのみを抜き出すことも可能です。また、データ量が非常に大きくなっても時間がかからないということが特徴、ということもデモで説明していました。Queryに使う言語は一般的なデータベースで使用するSQLが使えます。

次にデータ可視化としてDataStudioでBigQueryのデータを表示するデモが実施されました。出生率のデータを、年代別で新生児の体重の推移グラフを表示したり、州毎の新生児の平均体重を表示しました。また、地球儀のアイコンをクリックしレポート領域でドラッグするだけで、州毎のデータがプロットされた地図が表示されました。また、各グラフはデータの分類項目を簡単に変更することができ、表示する内容を変えることが可能でした。

デモのまとめは「No-opsで自動的にスケールするビッグデータ処理基盤」であり、サーバーの事は一切考えずにすぐ分析に入ることができるということになっていました。

Google Cloud 事例

Spotifyという、音楽のストリーミングサービスを提供している事例紹介です。

  • 世界中に7500万人以上のユーザ
  • 20億を超えるプレイリスト
  • 3000万曲のデータ
  • パーソナライズされたプレイリストを提供

という内容を、今まで自前のインフラで支えてきたが、サーバーのメンテナンスなどのオペレーションに時間がかかっていたので、最も重要なことである分析にフォーカスするためにGCPへ移行しました。

音楽ストリーミングサービスという特徴上、リアルタイムでお客様にいい音楽を、望んでいるお客様に届けたいという要望があります。
お客様が、こういったプレイリストを作成しましたとか、こういう音楽を再生しました、と言った情報は、1か月に1回や、1日に1回という単位ではちょっと遅いという事で、先ほど紹介したリアルタイムの情報を蓄積するPub/Subというサービスとリアルタイムにデータを処理するDataflowを活用した事例になります。

Pub/Subのスケール

この事例で使用される、Pub/Subも自動的にスケールするので、大量のデータが来た時にも処理は滞りなく行われます、使用する側からしたら、サーバの事など全く気にすることなく使用する事が可能となっています。

BigQueryにより分析処理をスピードアップ

今まで4000秒や18000秒などかかっていた分析の処理はBigQueryを使用する事によって、30秒や500秒といった、とても短い時間での分析が可能になりました。
Spotifyのエンジニアは「BigQueryが私にとって人生最高のものだと、ついに世界に伝えることができる。」といった事も発言していて、今までとの違いを実感しています。

Spotifyのコメント

  • クラウドプロバイダは成熟してきた。コストが下がり、信頼性が増し、様々なサービスを提供するようになってきた。
    • 今までのクラウドサービスはセキュリティとかどうなの?とか本当に安心できるの?とか言われる事が多かったが、クラウドサービスとして成熟してきているので今ではそういった事に対する信頼性がかなり大きくなってきている。
  • 物理マシンを所有して運用することは、我々にとっては競争優位ではない
    • ストリーミングで音楽を提供するというサービスをしているので、実際にマシンをもって、メンテナンスするという事は競争的に優位になっている訳ではなく、サービスに集中していった方がより良くなっていく。
  • 我々はビッグデータ技術におけるGoogleの先進性が、我々のデータ処理に優位をもたらしてくれると信じている
    • SpotifyがGCPを選んだ最も大きな理由は、データ分析に関する所。それは、Googleもお客様もデータ分析といった所に面白さを感じている。

といった事例紹介になります。

やはりデータ分析を始める為の「前提」の段階に時間が取られている現実が存在しているので、そういった時間を大幅に短縮してくれるBigQueryは強いと思います。どういった事を分析すればいいのか、今あるデータをどう生かせばいいのか、といった事は難しい問題ではあります。しかし、今まで分析に使っていなかった時間を、分析の時間に使うことで見えてくるもの、例えばサービスの改善、システムの改善を生かすデータを見つけ出すという、一歩進んだ所に行けるのではないでしょうか。

Questions

配信中に投稿された、質問を一部紹介します。

  • Q:BigQueryを試すためのサンプルデータはあるのでしょうか?
  • A:BigQueryをちょっと触ってみたいというお客様向けにサンプルデータを用意してある。今回デモで紹介した米国の出生率のデータや、Wikipediaの記事のデータなどがありますので、自分がやりたいことに近いデータを探してみるのが良い。
  • Q:DataStudioを使う際の使用料金はいくらでしょうか?
  • A:DataStudioは「無料」で使える。ちょっとデータを可視化して見てみたい、という場合は、DataStudioは良いと思う。
  • Q:BigQueryに保存したデータを取得・分析する具体的なやりかたについて教えて下さい。
  • A:SQLを使ってデータを集計することが可能。SQLを触ったことが無い人にはチュートリアルをする事で、学習していける無いようになっています。
  • Q:BigQueryにデータを入れる簡単な方法は何があるでしょうか?
  • A:CSVファイル(カンマで区切ったデータが入ったテキストファイル)をアップロード・インポートすることができる。
  • Q:データ分析を始める第1歩としてオススメのやり方について
  • A:企業には様々なシステムが存在していると思うので、それらをひとまず全てBigQueryに入れてみる。BigQueryでデータ統合できるので、例えば、社員の動きを分析したり、お客様の動きを分析したり、システムの動きを分析したりする事が第1歩としてのオススメです。

まとめ

今までは、データ処理を始める場合は「調査→PoC→機器購入→セットアップ」を経て分析できる状態になりました。Google Cloudだと、GCPに申し込むことですぐ分析が始められます。
まずは無料でお試し下さい。GCPには300$分の無料枠があり、今回紹介したBigQueryを含むデータ分析でも利用頂くことが可能です。データ分析の第一歩はBigQueryから、クイックスタートチュートリアルを見て、やってみて頂きたいと思います。

最後に

次回のCloud OnAirは11月16日です。テーマは「今話題の機械学習・GCPで何ができるのか?」です。興味のある方はOnAirの予約を!
当連載では今後も翌日には速報まとめをご提供しますので、是非ブックマークを!

弊社クラウドエースで提供している代行サービスには、BigQuery等利用料金を使い過ぎないようにする定額パックサービスがございますので、運用フェーズでもご安心頂けます。GCPに関する相談から、データ処理・分析のご相談もクラウドエースに全ておまかせください!!

参考リンク

この記事を共有する

合わせて読みたい