GCP Next: Googleが描く、MapReduceを超えたビッグデータの世界

GCP Next: Googleが描く、MapReduceを超えたビッグデータの世界

GCP Next 2015のセッション「Googleが描く、MapReduceを超えたビッグデータの世界」のスライドです。

0cf0e64940658884ce5d88e10dfb2409?s=128

GoogleCloudPlatformJapan

June 18, 2015
Tweet

Transcript

  1. Google が描く、MapReduce を 超えたビッグデータの世界

  2. +Kazunori Sato @kazunori_279 佐藤 一憲 デベロッパー アドボケイト Cloud Platform, Google Inc.

    クラウド コミュニティ支援 クラウド製品ローンチ支援
  3. Dremel MapReduce 2012 2013 2002 2004 2006 2008 2010 GFS

    MillWheel Flume Cloud Dataflow MapReduceを超えた世界 BigQuery
  4. Google BigQuery

  5. Dremel MapReduce 2012 2013 2002 2004 2006 2008 2010 GFS

    MillWheel Flume Google BigQuery BigQuery
  6. BigQuery: 超並列クエリ サービス

  7. Googleでは簡単な データ解析にMapReduce は使いません 使うのはDremel = Google BigQuery SELECT top(appId, 20)

    AS app, count(*) AS count FROM installlog.2012 ORDER BY count DESC 20秒で1000億行をスキャン可能 インデックスは不使用
  8. BigQueryのデモ

  9. 例: 1000億行に対するRegEx + GROUP BY SELECT language, SUM(views) as views

    FROM ( SELECT title, language, MAX(views) as views FROM [helixdata2:benchmark.Wiki100B] WHERE REGEXP_MATCH(title, "G.*o.*") GROUP EACH BY title, language ) GROUP EACH BY language ORDER BY views desc
  10. 実行時間: ~30秒* • 4 TBのデータを読み込み • 1000億の正規表現を実行 • 278 GBをシャッフル

    1台のサーバーだと (推定数値): • ディスクから4 TBを読み込むのに11.6時間 • 1000億の正規表現を実行するのに27時間 • 278 GBをシャッフルするのに37分 例: 1000億行に対するRegEx + GROUP BY *これらの数字は特定のケースにおけるGoogle BigQuery の性能の一例であり、性能を保証するものでは ありません。
  11. カラム指向ストレージ レコード指向ストレージ カラム指向ストレージ 低帯域、高圧縮

  12. 超並列処理 select top(title), count(*) from publicdata:samples.wikipedia 1 TBを1秒でスキャンするには 5,000台のディスクが必要 個々のクエリを数千のサーバー上で実行

  13. ミキサー0 ミキサー1 ミキサー1 シャード シャード シャード シャード ColumnIO on Colossus

    SELECT state, year COUNT(*) GROUP BY state WHERE year >= 1980 and year < 1990 ORDER BY count_babies DESC LIMIT 10 COUNT(*) GROUP BY state ツリー構造による高速アグリゲーション
  14. BigQuery Analytic Service in the Cloud BigQuery Google アナリティクス 解析

    エクスポート インポート インポート、解析、エクスポート ETLツール コネクター BIツールと可視化 Googleクラウド Googleクラウド スプレッドシート、R、 Hadoop
  15. 驚くほど高速 20秒で1000億行のスキャンが可能 SQL シンプルかつ直感的なSQL 低コスト ストレージ: 1カ月 $0.020/GB クエリ: $5/TB

    フルマネージド 運用コストなしで数千のサーバーを利用 BigQueryのメリット
  16. Google Cloud Dataflow

  17. Dremel MapReduce 2012 2013 2002 2004 2006 2008 2010 GFS

    MillWheel Flume Cloud Dataflow Cloud Dataflow BigQuery
  18. 2014年6月24日: Google I/Oで発表 2014年12月17日: アルファ 2015年4月15日: ベータ 次のマイルストーン: 一般向け提供開始 Cloud

    Dataflowのリリーススケジュール
  19. ETL フィルタリング データ付加 データ変換 バッチ ストリーム処理 コンポジション オーケストレーション Cloud Dataflowの用途

  20. Google Cloud Platform におけるCloud Dataflow ストリーム バッチ Cloud Pub/Sub Cloud

    Logging Cloud Dataflow BigQuery Cloud Storage Cloud Dataflow Bigtable Google Cloud Storage
  21. 関数型プログラミング モデル バッチ処理とストリーム処理を統一 オープンソースのSDK フルマネージドの実行環境を提供 Cloud Dataflowの特長

  22. Cloud Dataflow SDK for Java and Python

  23. Cloud Dataflowのコンセプト

  24. Pipelineはデータの流れを表す有向非循 環グラフ (DAG) : MapReduce/Hadoopジョブ Apache Sparkジョブ 複数の入力と出力 Google Cloud

    Storage Google BigQuery tables Google Pub/Sub Google Cloud Bigtable … およびあらゆる外部システム Pipeline
  25. Pipeline内のデータの集まり 任意のサイズのデータを扱える BoundedとUnbounded (Stream) Key-Valueペアも扱える {Seahawks, NFC, Champions, Seattle, ...}

    {KV<S, {Seahawks, Seattle, …}, KV<N, {NFC, …} KV<C, {Champion, …}} PCollection
  26. Transforms M M M R R GroupByKey ParDo Combine.GroupedValues

  27. オートコンプリートの例 ツイート 予測 読み 込み #argentina scores, my #art project,

    watching #armenia vs #argentina タグの抽出 #argentina #art #armenia #argentina カウント (argentina, 5M) (art, 9M) (armenia, 2M) プレフィクス対応 a->(argentina,5M) ar->(argentina,5M) arg->(argentina,5M) ar->(art, 9M) ... 上位3件抽出 書き 出し a->[apple, art, argentina] ar->[art, argentina, armenia] .apply(TextIO.Read.from(...)) .apply(ParDo.of(new ExtractTags())) .apply(Count.create()) .apply(ParDo.of(new ExpandPrefixes()) .apply(Top.largestPerKey(3) Pipeline p = Pipeline.create(); p.begin(); .apply(TextIO.Write.to(...)); p.run()
  28. 時間 #ar* 順位 試合開始 アルメニアの 勝利! #argyle #armeniarocks 古いデータをエージアウト #argentinagoal

    バッチ処理からストリーム処理へ
  29. Cloud PubSubでストリーム処理 Pipeline p = Pipeline.create(new PipelineOptions()); p.begin() .apply(PubsubIO.Read.topic(“input_topic”)) .apply(Window.into(SlidingWindows.of(

    Duration.standardMinutes(60))) .apply(ParDo.of(new ExtractTags())) .apply(Count.perElement()) .apply(ParDo.of(new ExpandPrefixes()) .apply(Top.largestPerKey(3)) .apply(PubsubIO.Write.topic(“output_topic”)); p.run();
  30. Windowとは: Pcollectionのタイムスライス Fixed: 毎時間、毎日… Sliding: 最後の1分... Session: 各セッション 夜間 日中

    夜間 Window
  31. Cloud Dataflow: フルマネージドの実行環境

  32. Google Cloud Dataflow 最適化 スケジューリ ング GCS GCS ユーザーコード &

    SDK モニタリング UI パイプラインの 流れ
  33. 実行グラフ IN 1 IN 2 IN 3 IN 4 join

    OUT 1 OUT 2 C A D flatten F B = ParallelDo count E
  34. 最適化された実行グラフ IN 1 IN 2 IN 3 IN 4 OUT

    1 OUT 2 GBK = ParallelDo GBK = GroupByKey + = CombineValues J 2 +F + Cnt GBK + C+D+J 1 B+D+J 1 A+J 1 E+J 1
  35. リアルタイム監視用UI

  36. 800 RPS 1,200 RPS 5,000 RPS 50 RPS ワーカーのスケーリング

  37. フルマネージド 何百というノードに対して運用コストゼロ スケーラビリティ、フォールトトレランス、最適化 バッチ + ストリーム処理 単一論理で2つのパラダイムを統合 容易なパイプライン設計 Java/Pythonを使用してパイプラインを定義 Cloud

    Dataflowのメリット
  38. 時間の最適化 プログラミング データを掘り下げる 時間の拡大 Cloud Dataflow を活用するデータ処理 通常のデータ処理 プログラミング リソース

    プロビジョニング 拡大する規模 への対応 信頼性 デプロイメント/設 定 活用の改善 パフォーマンスの 微調整 監視
  39. cloud.google.com/bigquery cloud.google.com/dataflow 始めてみよう

  40. ありがとうございました