arrow_back

Dataflow: Qwik Start - テンプレート

ログイン 参加
知識をテストして、コミュニティで共有しましょう
done
700 を超えるハンズオンラボ、スキルバッジ、コースへのアクセス

Dataflow: Qwik Start - テンプレート

ラボ 45分 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
知識をテストして、コミュニティで共有しましょう
done
700 を超えるハンズオンラボ、スキルバッジ、コースへのアクセス

GSP192

Google Cloud セルフペース ラボ

概要

このラボでは、Google の Dataflow テンプレートの一つを使用してストリーミング パイプラインを作成する方法を学習します。具体的には、Pub/Sub to BigQuery テンプレートを使用して、Pub/Sub トピックから JSON 形式のメッセージを読み取り、BigQuery テーブルに push します。このテンプレートに関するドキュメントは、Google 提供のテンプレートの使用に関するガイドでご確認いただけます。

BigQuery データセットとテーブルを作成するには、Cloud Shell コマンドラインまたは Cloud コンソールを使用します。いずれかの方法を選択して、ラボの作業を進めてください。両方の方法を試したい場合は、このラボを 2 回行ってください。

演習内容

  • BigQuery データセットとテーブルを作成する
  • Cloud Storage バケットを作成する
  • Pub/Sub to BigQuery Dataflow テンプレートを使用してストリーミング パイプラインを作成する

設定

[ラボを開始] ボタンをクリックする前に

こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。

このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
  • ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。アカウントへの追加料金が発生する可能性があります。

ラボを開始して 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 のプロダクトやサービスのリストを含むメニューを表示するには、左上のナビゲーション メニューをクリックします。ナビゲーション メニュー アイコン

Cloud Shell をアクティブにする

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

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

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

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

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

出力:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = <project_ID>

出力例:

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

タスク 1. Dataflow API が再度有効になったことを確認する

必要な API にアクセスできることを確認するには、Dataflow API に接続し直します。

  1. Cloud コンソールの上部の検索バーに「Dataflow API」と入力します。検索結果の「Dataflow API」をクリックします。

  2. [管理] をクリックします。

  3. [API を無効にする] をクリックします。

確認を求められたら、[無効にする] をクリックします。

  1. [有効にする] をクリックします。

API が再度有効になると、ページに無効にするオプションが表示されます。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。

Dataflow API を無効にし、再度有効にする

タスク 2. Cloud Shell を使用して BigQuery データセット、BigQuery テーブル、Cloud Storage バケットを作成する

まず BigQuery のデータセットとテーブルを作成します。

注: このタスクでは bq コマンドライン ツールを使用します。Cloud コンソールを使用してこれらの手順を完了する場合は、タスク 3 までスキップしてください。
  1. 次のコマンドを実行して、taxirides というデータセットを作成します。
bq mk taxirides

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

Dataset '' successfully created

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。BigQuery データセットが正常に作成されている場合は、評価スコアが表示されます。

BigQuery データセット(名前: taxirides)を作成する

これでデータセットが作成されました。次のステップでこれを使用して、BigQuery テーブルをインスタンス化します。

  1. 以下のコマンドを実行します。
bq 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

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

Table 'myprojectid:taxirides.realtime' successfully created

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。BigQuery データセットにテーブルが正常に作成されている場合は、評価スコアが表示されます。

BigQuery データセットにテーブルを作成する

一見すると、bq mk コマンドは少し複雑に見えますが、BigQuery コマンドラインのドキュメントを参照するとその内容を理解できます。たとえば、スキーマについては次のような説明が記載されています。

  • ローカルの JSON スキーマ ファイルへのパス、または [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] 形式の列定義のカンマ区切りリスト。

この例では、後者のカンマ区切りのリストを使用します。

Cloud Shell を使用して Cloud Storage バケットを作成する

テーブルをインスタンス化できたら、次はバケットを作成します。

プロジェクト ID をバケット名として使用し、グローバルに一意の名前を確保します。

  • 作成するには、次のコマンドを実行します。
export BUCKET_NAME={{{project_0.project_id | "Bucket Name"}}} gsutil mb gs://$BUCKET_NAME/

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。Cloud Storage バケットが正常に作成されている場合は、評価スコアが表示されます。

Cloud Storage バケットを作成する

バケットを作成したら、「パイプラインを実行する」セクションまで下にスクロールします。

タスク 3. Google Cloud コンソールを使用して BigQuery データセット、BigQuery テーブル、Cloud Storage バケットを作成する

注: タスク 2 を完了した場合は、同じタスクをコマンド ラインで実行するタスク 3 を完了しないでください。
  1. 左側のメニューの [ビッグデータ] セクションで [BigQuery] をクリックします。

  2. 次に [完了] をクリックします。

  3. [エクスプローラ] でプロジェクト名の横にあるその他アイコンをクリックし、[データセットを作成] をクリックします。

  4. データセット ID として「taxirides」を入力します。

  5. [データのロケーション] で、[US(米国の複数のリージョン)] を選択します。

  6. その他のデフォルト設定はすべてそのままにし、[データセットを作成] をクリックします。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。BigQuery データセットが正常に作成されている場合は、評価スコアが表示されます。

BigQuery データセット(名前: taxirides)を作成する
  1. コンソールの左側にあるプロジェクト ID の下に 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. 次に、[テーブルを作成] をクリックします。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。BigQuery データセットにテーブルが正常に作成されている場合は、評価スコアが表示されます。

BigQuery データセットにテーブルを作成する

Cloud コンソールを使用して Cloud Storage バケットを作成する

  1. Cloud コンソールに戻り、[Cloud Storage] > [バケット] > [作成] に移動します。

  2. プロジェクト ID をバケット名として使用し、グローバルに一意の名前を確保します。

  3. その他のデフォルト設定はそのままにして、[作成] をクリックします。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。Cloud Storage バケットが正常に作成されている場合は、評価スコアが表示されます。

Cloud Storage バケットを作成する

タスク 4. パイプラインを実行する

Dataflow テンプレートをデプロイします。

gcloud dataflow jobs run iotflow \ --gcs-location gs://dataflow-templates-{{{project_0.default_region | "Region"}}}/latest/PubSub_to_BigQuery \ --region {{{project_0.default_region | "Region"}}} \ --worker-machine-type e2-medium \ --staging-location gs://{{{project_0.project_id | "Bucket Name"}}}/temp \ --parameters inputTopic=projects/pubsub-public-data/topics/taxirides-realtime,outputTableSpec={{{project_0.project_id | "Table Name"}}}:taxirides.realtime

Google Cloud コンソールナビゲーション メニュー[Dataflow] > [ジョブ] をクリックすると Dataflow ジョブが表示されます。

詳しくは、ドキュメントをご覧ください。

注: アクティビティ追跡には 1 分ほどかかる場合があります。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。Dataflow パイプラインが正常に実行されている場合は、評価スコアが表示されます。

パイプラインを実行する

リソースがビルドされ、使用できる状態になります。

それでは、ナビゲーション メニューにある [BigQuery] をクリックして、BigQuery に書き込まれたデータを見てみましょう。

  • BigQuery UI が開くと、プロジェクト名の下に taxirides データセット、その下に realtime テーブルが表示されます。
注: BigQuery テーブルにデータが入力されるまでに数分かかる場合があります。

タスク 5. クエリを送信する

クエリは、標準 SQL を使用して送信できます。

  1. BigQuery エディタに以下を追加し、プロジェクト内のデータにクエリを実行します。
SELECT * FROM `{{{project_0.project_id | "Bucket Name"}}}.taxirides.realtime` LIMIT 1000
  1. [実行] をクリックします。

問題やエラーが発生した場合は、クエリを再実行してください(パイプラインの起動には数分かかります)。

  1. クエリが正常に実行されると、次のように [クエリ結果] パネルに出力が表示されます。

[クエリ結果] ページ

これで Pub/Sub トピックから 1,000 件のタクシー乗車データが pull され、BigQuery テーブルに push されました。実際に確認したように、テンプレートは Dataflow ジョブを実行するための実用的で使いやすい方法です。Dataflow ドキュメントの Google 提供のテンプレートの使用に関するガイドで、他の Google テンプレートについてもぜひご確認ください。

タスク 6. 理解度チェック

今回のラボで学習した内容の理解を深めていただくため、以下の多肢選択問題を用意しました。正解を目指して頑張ってください。

お疲れさまでした

Pub/Sub to BigQuery Dataflow テンプレートを使用してストリーミング パイプラインを作成しました。このパイプラインは、Pub/Sub トピックから JSON 形式のメッセージを読み取り、BigQuery テーブルに push します。

次のステップと詳細情報

このラボは Qwik Start と呼ばれるラボシリーズの一部です。これらのラボでは、Google Cloud で利用できる多くの機能を体験できます。Google Cloud Skills Boost カタログで「Qwik Start」を検索し、興味のあるラボを探してみてください。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2024 年 2 月 4 日

ラボの最終テスト日: 2023 年 11 月 10 日

Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

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

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

ありがとうございます。

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