読み込んでいます...
一致する結果は見つかりませんでした。

Google Cloud コンソールでスキルを試す

Google Cloud Big Data and Machine Learning Fundamentals - 日本語版

700 以上のラボとコースにアクセス

Dataflow を使用してリアルタイム ダッシュボード用のストリーミング データ パイプラインを作成する

ラボ 1時間 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

概要

このラボでは、ニューヨーク市のタクシー車両を多数所有しているものと仮定して、リアルタイムでビジネスの状況をモニタリングします。タクシーの収益、乗客数、乗車状況などを把握し、その結果を管理ダッシュボードで視覚化するためのストリーミング データ パイプラインを構築します。

目標

このラボでは、次の方法について学びます。

  • テンプレートからの Dataflow ジョブの作成
  • BigQuery への Dataflow パイプラインのストリーミング
  • BigQuery での Dataflow パイプラインのモニタリング
  • SQL を使用した結果の分析
  • Looker Studio での主要指標の可視化

設定と要件

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] パネルでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] パネルでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスのリストを含むメニューを表示するには、左上のナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。

Google Cloud Shell の有効化

Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。

Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。

  2. [続行] をクリックします。

環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  • 次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list

出力:

Credentialed accounts: - @.com (active)

出力例:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • 次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project =

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: gcloud ドキュメントの全文については、 gcloud CLI の概要ガイド をご覧ください。

タスク 1. BigQuery データセットを作成する

このタスクでは、taxirides データセットを作成します。Google Cloud Shell か Google Cloud コンソールを使用してこのデータセットを作成できます。

このラボでは、NYC Taxi & Limousine Commission の公開データセットの抜粋を使用します。小さなカンマ区切りのデータファイルは、タクシーに関するデータの定期的な更新をシミュレートするために使用されます。

BigQuery はサーバーレス データ ウェアハウスです。BigQuery 内のテーブルは、データセットに編成されます。このラボでは、タクシーに関するデータがスタンドアロン ファイルから Dataflow 経由で流れ、BigQuery に保存されます。この設定では、ソースの Cloud Storage バケットに付与された新しいデータファイルはすべて、読み込み用に自動処理されます。

次のいずれかの方法で新しい BigQuery データセットを作成します。

方法 1: コマンドライン ツール

  1. Cloud Shell)で、次のコマンドを実行して taxirides データセットを作成します。
bq --location={{{project_0.default_region|Region}}} mk taxirides
  1. 以下のコマンドを実行して taxirides.realtime テーブルを作成します(この空のスキーマに後でデータをストリーミングします)。
bq --location={{{project_0.default_region|Region}}} mk \ --time_partitioning_field timestamp \ --schema ride_id:string,point_idx:integer,latitude:float,longitude:float,\ timestamp:timestamp,meter_reading:float,meter_increment:float,ride_status:string,\ passenger_count:integer -t taxirides.realtime

方法 2: BigQuery コンソール UI

注: コマンドラインを使用してテーブルを作成した場合、この手順はスキップしてください。
  1. Google Cloud コンソールのナビゲーション メニュー)で、[BigQuery] をクリックします。

  2. ようこそのダイアログが表示されたら、[完了] をクリックします。

  3. プロジェクト ID の横に表示される [アクションを表示] ()をクリックし、[データセットを作成] をクリックします。

  4. [データセット ID] に「taxirides」と入力します。

  5. データのロケーション で以下を選択します。

{{{project_0.default_region|Region}}}

次に、[データセットを作成] をクリックします。

  1. [エクスプローラ] ペインで [ノードを展開します]()をクリックして新しい taxirides データセットを表示します。

  2. taxirides データセットの横の アクションを表示)をクリックして、次に [開く] をクリックします。

  3. [テーブルを作成] をクリックします。

  4. [テーブル] に「realtime」と入力します。

  5. [スキーマ] で [テキストとして編集] をクリックし、以下のスキーマを貼り付けます。

ride_id:string, point_idx:integer, latitude:float, longitude:float, timestamp:timestamp, meter_reading:float, meter_increment:float, ride_status:string, passenger_count:integer
  1. [パーティションとクラスタの設定] で [タイムスタンプ] を選択します。

  2. [テーブルを作成] をクリックします。

タスク 2. ラボに必要なアーティファクトをコピーする

このタスクでは、必要なファイルをプロジェクトに移動します。

Cloud Storage では、世界中のどこからでも、いつでもデータを保存、取得できます。データの量に制限はありません。ウェブサイト コンテンツの提供、アーカイブと障害復旧のためのデータの保存、直接ダウンロードによるユーザーへの大きなデータ オブジェクトの配布など、さまざまなシナリオで Cloud Storage を使用できます。

Cloud Storage バケットは、ラボの開始時に作成されています。

  1. Cloud Shell)で、次のコマンドを実行して Dataflow ジョブに必要なファイルを移動します。
gcloud storage cp gs://cloud-training/bdml/taxisrcdata/schema.json gs://{{{project_0.project_id|Project_ID}}}-bucket/tmp/schema.json gcloud storage cp gs://cloud-training/bdml/taxisrcdata/transform.js gs://{{{project_0.project_id|Project_ID}}}-bucket/tmp/transform.js gcloud storage cp gs://cloud-training/bdml/taxisrcdata/rt_taxidata.csv gs://{{{project_0.project_id|Project_ID}}}-bucket/tmp/rt_taxidata.csv

タスク 3. Dataflow パイプラインを設定する

このタスクでは、Cloud Storage バケットからファイルを読み取り、BigQuery にデータを書き込むストリーミング データ パイプラインを設定します。

Dataflow では、サーバーレスでデータ分析を行うことができます。

Dataflow API への接続を再起動する

  1. Cloud Shell で次のコマンドを実行して、Dataflow API がプロジェクト内でスムーズに有効化されるようにします。
gcloud services disable dataflow.googleapis.com gcloud services enable dataflow.googleapis.com

新しいストリーミング パイプラインを作成する

  1. Cloud コンソールのナビゲーション メニュー)で、[すべてのプロダクトを表示] > [アナリティクス] > [Dataflow] をクリックします。

  2. 上部のメニューバーの [テンプレートからジョブを作成] をクリックします。

  3. Dataflow ジョブのジョブ名として「streaming-taxi-pipeline」と入力します。

  4. [リージョン エンドポイント] で、以下を選択します。

{{{project_0.default_region|Region}}}
  1. [Dataflow テンプレート] で、[Process Data Continuously (stream)] にある [Cloud Storage Text to BigQuery (Stream)] テンプレートを選択します。
: 以下のパラメータと一致するテンプレート オプションを選択してください。
  1. [Cloud Storage 入力ファイル] に、以下のコマンドを貼り付けるか入力します。
{{{project_0.project_id|Project_ID}}}-bucket/tmp/rt_taxidata.csv
  1. [BigQuery スキーマ ファイルの Cloud Storage の場所。JSON 形式で記述します] に、以下のコマンドを貼り付けるか入力します。
{{{project_0.project_id|Project_ID}}}-bucket/tmp/schema.json
  1. [BigQuery 出力テーブル] に、次のコマンドを貼り付けるか入力します。
{{{project_0.project_id|Project_ID}}}:taxirides.realtime
  1. [BigQuery 読み込みプロセスで使用する一時ディレクトリ] に、以下のコマンドを貼り付けるか入力します。
{{{project_0.project_id|Project_ID}}}-bucket/tmp
  1. [必須パラメータ] をクリックします。

  2. 一時ファイルの書き込みに使用する [一時的な場所] に、以下のコマンドを貼り付けるか入力します。

{{{project_0.project_id|Project_ID}}}-bucket/tmp
  1. [Cloud Storage 内の JavaScript UDF パス] に、以下のコマンドを貼り付けるか入力します。
{{{project_0.project_id|Project_ID}}}-bucket/tmp/transform.js
  1. [JavaScript UDF 名] に、以下を貼り付けるか入力します。
transform
  1. [最大ワーカー数] に「2」と入力します。

  2. [ワーカーの数] に「1」と入力します。

  3. [デフォルトのマシンタイプを使用する] チェックボックスをオフにします。

  4. [汎用] で次の設定を選択します。

シリーズ: E2
マシンタイプ: e2-medium(2 個の vCPU、4 GB メモリ)

  1. [ジョブを実行] をクリックします。

新しいストリーミング ジョブが開始されます。これで、データ パイプラインを視覚的に表示できるようになりました。BigQuery へのデータ移行が開始されるまで 3~5 分かかります。

注: Dataflow ジョブが初めて失敗した場合は、別のジョブ名で新しいジョブ テンプレートを再作成し、ジョブを実行します。

タスク 4. BigQuery を使用してタクシーデータを分析する

このタスクでは、ストリーミング中のデータを分析します。

  1. Google Cloud コンソールのナビゲーション メニュー)で [BigQuery] をクリックします。

  2. ようこそのダイアログが表示されたら、[完了] をクリックします。

  3. クエリエディタに次のクエリを入力して、[実行] をクリックします。

SELECT * FROM taxirides.realtime LIMIT 10 注: レコードが返されない場合は、しばらく待ってから上記のクエリを再実行します(Dataflow によるストリームの設定には 3~5 分かかります)。

出力は次のようになります。

タスク 5. レポート用にストリームの集計を実行する

このタスクでは、レポート用にストリームの集計を行います。

  1. クエリエディタで現在のクエリを削除します。

  2. 以下のクエリをコピーして貼り付け、[実行] をクリックします。

WITH streaming_data AS ( SELECT timestamp, TIMESTAMP_TRUNC(timestamp, HOUR, 'UTC') AS hour, TIMESTAMP_TRUNC(timestamp, MINUTE, 'UTC') AS minute, TIMESTAMP_TRUNC(timestamp, SECOND, 'UTC') AS second, ride_id, latitude, longitude, meter_reading, ride_status, passenger_count FROM taxirides.realtime ORDER BY timestamp DESC LIMIT 1000 ) # レポート用にストリームの集計を行います。 SELECT ROW_NUMBER() OVER() AS dashboard_sort, minute, COUNT(DISTINCT ride_id) AS total_rides, SUM(meter_reading) AS total_revenue, SUM(passenger_count) AS total_passengers FROM streaming_data GROUP BY minute, timestamp : 次のタスクに進む前に、Dataflow が BigQuery にデータを登録していることを確認してください。

結果には、タクシーの降車ごとの主な指標が分単位で表示されます。

  1. [保存] > [クエリを保存] をクリックします。

  2. [クエリを保存] ダイアログの [名前] フィールドに「My Saved Query」と入力します。

  3. [リージョン] で、リージョンが Qwiklabs ラボのリージョンと一致していることを確認します。

  4. [保存] をクリックします。

タスク 6. Dataflow ジョブを停止する

このタスクでは、Dataflow ジョブを停止して、プロジェクト用のリソースを開放します。

  1. Cloud コンソールのナビゲーション メニュー)で、[すべてのプロダクトを表示] > [アナリティクス] > [Dataflow] をクリックします。

  2. [streaming-taxi-pipeline] または新しいジョブ名をクリックします。

  3. [停止] をクリックし、[キャンセル] > [ジョブの停止] を選択します。

タスク 7. リアルタイム ダッシュボードを作成する

このタスクでは、リアルタイム ダッシュボードを作成して、データを可視化します。

  1. Google Cloud コンソールのナビゲーション メニュー)で [BigQuery] をクリックします。

  2. [エクスプローラ] ペインでプロジェクト ID を展開します。

  3. [クエリ] を展開し、[My Saved Query] をクリックします。

クエリがクエリエディタに読み込まれます。

  1. [実行] をクリックします。

  2. [クエリ結果] セクションで、[次で開く] > [Looker Studio] をクリックします。

    Looker Studio が開きます。[Get started] をクリックします。

  3. Looker Studio ウィンドウで棒グラフをクリックします。

(

[グラフ] ペインが表示されます。

  1. [グラフを追加] をクリックし、[複合グラフ] を選択します。

  2. [設定] ペインの [期間のディメンション] で、[minute (Date)] にカーソルを合わせて [X] をクリックして削除します。

  3. [データ] ペインで、[dashboard_sort] をクリックして、[設定] > [期間のディメンション] > [ディメンションを追加] にドラッグします。

  4. [設定] > [ディメンション] で、[] をクリックし、[dashboard_sort] を選択します。

  5. [設定] > [指標] で、[dashboard_sort] をクリックし、[total_rides] を選択します。

  6. [設定] > [指標] で、[Record Count] をクリックし、[total_passengers] を選択します。

  7. [設定] > [指標] で、[指標を追加] をクリックし、[total_revenue] を選択します。

  8. [設定] > [並べ替え] で、[total_rides] をクリックし、[dashboard_sort] を選択します。

  9. [設定] > [並べ替え] で、[昇順] をクリックします。

グラフの表示は次のようになります。

注: Looker Studio では現在、タイムスタンプとしてデータを分単位で可視化することはできません。Google では対策として、独自の dashboard_sort ディメンションを作成しています。
  1. ダッシュボードに問題がなければ、[保存して共有] をクリックしてこのデータソースを保存します。

  2. アカウント設定を完了するダイアログが表示されたら、国と会社の詳細を入力し、利用規約に同意してから [続行] をクリックします。

  3. どの更新情報を受け取るかを答えるように求められたら、すべて「いいえ」で回答して [続行] をクリックします。

  4. [データアクセスを確認してから保存] ウィンドウが表示されたら、[同意して保存する] をクリックします。

  5. アカウントを選択するよう求められたら、[Student Account] を選択します。

  6. ダッシュボードにいつ誰がアクセスしても、最新のトランザクションが表示されます。その他のオプション)の [データを更新] をクリックして試してみてください。

タスク 8. 時系列ダッシュボードを作成する

このタスクでは、期間グラフを作成します。

  1. こちらの Looker Studio リンクをクリックして、新しいブラウザタブで Looker Studio を開きます。

  2. [レポート] ページの [テンプレートを使って開始] で、[[+] 空のレポート] テンプレートをクリックします。

  3. 新しい空白のレポートと [データのレポートへの追加] ウィンドウが表示されます。

  4. [Google Connectors] のリストから、[BigQuery] タイルを選択します。

  5. [カスタムクエリ] をクリックして、プロジェクト ID を選択します。これは qwiklabs-gcp-xxxxxxx の形式で表示されます。

  6. [カスタムクエリを入力] に以下のクエリを貼り付けます。

SELECT * FROM taxirides.realtime WHERE ride_status='enroute'
  1. [追加] > [レポートに追加] をクリックします。

    無題の新しいレポートが表示されます。画面の更新には最長で 1 分かかる場合があります。

期間グラフを作成する

  1. [データ] ペインで、[フィールドを追加] > [計算フィールドを追加] をクリックします。

  2. 左隅で [すべてのフィールド] をクリックします。

  3. [タイムスタンプ] フィールドのタイプを [日付と時刻] > [日付、時、分(YYYYMMDDhhmm)] に変更します。

  4. タイムスタンプの変更ダイアログで、[続行] をクリックし、[完了] をクリックします。

  5. トップメニューで [グラフを追加] をクリックします。

  6. [期間グラフ] を選択します。

  7. グラフをページ左下隅の何もない場所に配置します。

  8. [設定] > [ディメンション] で、[timestamp (Date)] をクリックし、[timestamp] を選択します。

  9. [設定] > [ディメンション] で、[timestamp] をクリックし、[calendar] を選択します。

  10. [データタイプ] で、[日付と時刻] > [日付、時、分] を選択します。

  11. ダイアログの外側をクリックして閉じます。名前を追加する必要はありません。

  12. [設定] > [指標] で、[Record Count] をクリックし、[meter reading] を選択します。

お疲れさまでした

このラボでは、Dataflow を使用して、パイプライン経由で BigQuery にデータをストリーミングしました。

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。

前へ 次へ

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
プレビュー