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

シンプルな Dataflow パイプライン(Python)2.5

ラボ 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 Shell の有効化

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

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

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

    ハイライト表示された Cloud Shell アイコン

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

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

Cloud Shell ターミナルでハイライト表示されたプロジェクト 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 の概要ガイド をご覧ください。

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

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 が有効になっていることを確認する

  • Cloud Shell で以下のコードブロックを実行します。
gcloud services disable dataflow.googleapis.com --force gcloud services enable dataflow.googleapis.com

タスク 2. 準備

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

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

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

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

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

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

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

  • このラボで使用するコード リポジトリをダウンロードします。training-vm の SSH ターミナルで次のように入力します。
git clone https://github.com/GoogleCloudPlatform/training-data-analyst

Cloud Storage バケットを作成する

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

  1. コンソールのナビゲーション メニューで、[Cloud Storage] > [バケット] をクリックします。

  2. [+ 作成] をクリックします。

  3. 次のように指定し、残りの設定はデフォルトのままにします。

プロパティ 値(値を入力するか、指定されたオプションを選択)
名前
ロケーション タイプ マルチ リージョン
  1. [作成] をクリックします。

  2. [公開アクセスの防止] というメッセージが表示されたら、[このバケットに対する公開アクセス禁止を適用する] を選択して [確認] をクリックします。

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

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

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

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

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

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

  2. ファイルの表示には nano を使用します。コードは変更しないでください。

cd ~/training-data-analyst/courses/data_analysis/lab2/python nano grep.py
  1. Ctrl+X キーを押して nano を終了します。

ファイル 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 ターミナルで次のコマンドを入力します。
gcloud storage cp ../javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp/*.java gs://$BUCKET/javahelp
  1. nano で grepc.py の Dataflow パイプラインを編集します。
nano grepc.py
  1. PROJECT、BUCKET、REGION を次の値で置き換えてください。外側の単一引用符はそのまま残します。
PROJECT='{{{project_0.project_id|project_place_holder_text}}}' BUCKET='{{{project_0.project_id|project_place_holder_text}}}' REGION='{{{project_0.startup_script.gcp_region|region_place_holder_text}}}'

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

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

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

  1. コンソールのブラウザタブに戻ります。

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

  3. ジョブ ステータスが [完了] に変わるまで待ちます。

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

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

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

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

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

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

gcloud storage 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 つのラボ

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

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

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