ラボの設定手順と要件
アカウントと進行状況を保護します。このラボを実行するには、常にシークレット ブラウジング ウィンドウとラボの認証情報を使用してください。

Serverless Data Analysis with Dataflow: シンプルな Dataflow パイプライン(Python)

ラボ 1時間 30分 universal_currency_alt クレジット: 5 show_chart 上級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

概要

このラボでは、Dataflow プロジェクトを開き、パイプライン フィルタリングを使用し、パイプラインをローカルとクラウド上で実行します。

  • Dataflow プロジェクトを開く

  • パイプラインのフィルタリング

  • パイプラインをローカルとクラウド上で実行する

目的

このラボでは、シンプルな Dataflow パイプラインを記述し、ローカルとクラウド上の両方で実行する方法を学習します。

  • Apache Beam を使用して Python Dataflow プロジェクトを設定する

  • Python でシンプルなパイプラインを作成する

  • ローカルマシンでクエリを実行する

  • クラウドでクエリを実行する

設定

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

  1. Qwiklabs にシークレット ウィンドウでログインします。

  2. ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。
    一時停止機能はありません。必要な場合はやり直せますが、最初からになります。

  3. 準備ができたら、[ラボを開始] をクリックします。

  4. ラボの認証情報(ユーザー名パスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。

  5. [Google Console を開く] をクリックします。

  6. [別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
    他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。

  7. 利用規約に同意し、再設定用のリソースページをスキップします。

プロジェクトの権限を確認する

Google Cloud で作業を開始する前に、Identity and Access Management(IAM)内で適切な権限がプロジェクトに付与されていることを確認する必要があります。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[IAM と管理] > [IAM] を選択します。

  2. Compute Engine のデフォルトのサービス アカウント {project-number}-compute@developer.gserviceaccount.com が存在し、編集者のロールが割り当てられていることを確認します。アカウントの接頭辞はプロジェクト番号で、ナビゲーション メニュー > [Cloud の概要] > [ダッシュボード] から確認できます。

Compute Engine のデフォルトのサービス アカウント名と編集者のステータスがハイライト表示された [権限] タブページ

注: アカウントが IAM に存在しない場合やアカウントに編集者のロールがない場合は、以下の手順に沿って必要なロールを割り当てます。
  1. Google Cloud コンソールのナビゲーション メニューで、[Cloud の概要] > [ダッシュボード] をクリックします。
  2. プロジェクト番号(例: 729328892908)をコピーします。
  3. ナビゲーション メニューで、[IAM と管理] > [IAM] を選択します。
  4. ロールの表の上部で、[プリンシパル別に表示] の下にある [アクセスを許可] をクリックします。
  5. [新しいプリンシパル] に次のように入力します。
{project-number}-compute@developer.gserviceaccount.com
  1. {project-number} はプロジェクト番号に置き換えてください。
  2. [ロール] で、[Project](または [基本])> [編集者] を選択します。
  3. [保存] をクリックします。

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

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

  1. Cloud Console の上部の検索バーに「Dataflow API」と入力します。

  2. 検索結果の「Dataflow API」をクリックします。

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

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

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

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

タスク 2. 準備

SSH ターミナルを開いてトレーニング用 VM に接続する

以後すべてのコードは、特定の整備済みトレーニング VM から実行します。

  1. Cloud Console のナビゲーション メニューナビゲーション メニュー アイコン)で、[Compute Engine] > [VM インスタンス] の順にクリックします。

  2. training-vm という名前のインスタンスがある行を確認します。

  3. 右端の [接続] の下にある [SSH] をクリックしてターミナル ウィンドウを開きます。

  4. このラボでは、training-vm 上で CLI コマンドを入力します。

コード リポジトリをダウンロードする

  1. このラボで使用するコード リポジトリをダウンロードします。training-vm の SSH ターミナルで次のように入力します。

git clone https://github.com/GoogleCloudPlatform/training-data-analyst

Cloud Storage バケットを作成する

次の手順に沿ってバケットを作成します。

  1. Cloud Console のナビゲーション メニューで、[ホーム] をクリックします。

  2. プロジェクト ID を選択してコピーします。

わかりやすいように、すでにグローバルに一意である Qwiklabs プロジェクト ID をバケット名として使用します。

  1. Cloud Console のナビゲーション メニューで、[Cloud Storage] > [ブラウザ] の順にクリックします。
  2. [バケットを作成] をクリックします。
  3. 次のように指定し、残りの設定はデフォルトのままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択)
名前 <使用する一意のバケット名(プロジェクト ID)>
ロケーション タイプ Multi-Region
ロケーション <使用するロケーション>
  1. [作成] をクリックします。

バケット名をメモしておきます。これは後のタスクで必要になります。

  1. training-vm の SSH ターミナルで次のように入力して「BUCKET」という名前の環境変数を作成し、echo コマンドを使用してその変数が存在することを確認します。

BUCKET="<使用する一意のバケット名(プロジェクト ID)>" echo $BUCKET

ターミナル コマンドでは $BUCKET を使用できます。Console でテキスト フィールドにバケット名 <使用するバケット> を入力する必要がある場合は、echo $BUCKET を使って簡単にバケット名を取得できます。

タスク 3. パイプラインのフィルタリング

このラボの目標は、Dataflow プロジェクトの構造を理解し、Dataflow パイプラインを実行する方法を学習することです。

  1. training-vm の SSH ターミナルに戻り、/training-data-analyst/courses/data_analysis/lab2/python ディレクトリに移動して、grep.py ファイルを表示します。

ファイルの表示には nano を使用します。コードは変更しないでください。Ctrl+X キーを押して nano を終了します。

cd ~/training-data-analyst/courses/data_analysis/lab2/python nano grep.py

ファイル grep.py に関する次の質問に回答してください。

  • 読み込まれているファイルは何ですか。
  • 検索キーワードは何ですか。
  • どこに出力されますか。

パイプライン内には 3 つの変換があります。

  • 変換で何が行われますか。

  • 2 つ目の変換で何が行われますか。

  • 入力元は何ですか。

  • この入力値に対し何が行われますか。

  • 出力に書き込まれる内容は何ですか。

  • 出力先はどこですか。

  • 3 つ目の変換で何が行われますか。

タスク 4. パイプラインをローカルで実行する

  1. training-vm の SSH ターミナルで、grep.py をローカルで実行します。

python3 grep.py

出力ファイルは output.txt です。出力サイズが大きければ、output-00000-of-00001 といった名前が付いた複数のファイルに分割されます。

  1. ファイルの時刻から目的のファイルを見つけます。

ls -al /tmp
  1. 出力ファイルを調べます。

  2. 以下の「-*」は該当するサフィックスに置き換えてください。

cat /tmp/output-*

出力内容に問題がないかを確認します。

タスク 5. パイプラインをクラウド上で実行する

  1. いくつかの Java ファイルをクラウドにコピーします。training-vm の SSH ターミナルで次のコマンドを入力します。

gsutil cp ../javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp/*.java gs://$BUCKET/javahelp

[進捗状況を確認] をクリックして進捗状況を確認します。

Java ファイルをクラウドにコピーする
  1. nano で grepc.py の Dataflow パイプラインを編集します。

nano grepc.py
  1. PROJECT と BUCKET をそれぞれ実際のプロジェクト ID とバケット名に置き換えます。

編集前の文字列の例:

PROJECT='cloud-training-demos' BUCKET='cloud-training-demos'

編集後の文字列の例(実際の値を使用してください):

PROJECT='qwiklabs-gcp-your-value' BUCKET='qwiklabs-gcp-your-value'

ファイルを保存してから Ctrl+X キーを押して nano を閉じ、次に Y キーを押してから Enter キーを押します。

  1. Dataflow ジョブをクラウドに送信します。

python3 grepc.py 注:WARNING:root:Make sure that locally built Python SDK docker image has Python 3.7 interpreter.」というメッセージは無視してかまいません。Dataflow のジョブが正常に開始されます。

これは小さなジョブなので、クラウドで実行するほうがローカルで実行する場合よりもかなり長く(7~10 分ほど)時間がかかります。

  1. Console のブラウザタブに戻ります。

  2. ナビゲーション メニューで [Dataflow] をクリックし、今回のジョブをクリックして進行状況をモニタリングします。

例:

Dataflow ジョブの詳細

[進捗状況を確認] をクリックして進捗状況を確認します。

Dataflow ジョブをクラウドに送信する
  1. ジョブ ステータスが [完了] に変わるまで待ちます。

  2. Cloud Storage バケットで出力を調べます。

  3. ナビゲーション メニュー[Cloud Storage] > [ブラウザ] をクリックして、該当するバケットをクリックします。

  4. javahelp ディレクトリをクリックします。

今回のジョブによってファイル output.txt が作成されます。ファイルのサイズが大きければ、output-0000x-of-000y といった名前が付いた複数のファイルに分割されます。最新のファイルは、名前または [最終更新] フィールドで特定できます。

  1. そのファイルをクリックして表示します。

または、training-vm の SSH ターミナルからファイルをダウンロードして表示することもできます。

gsutil cp gs://$BUCKET/javahelp/output* . cat output*

ラボを終了する

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

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

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

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

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

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

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

始める前に

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

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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