Cloud Dataflow コマンドライン インターフェースを使用する

Dataflow マネージド サービスを使用してパイプラインを実行すると、Dataflow ジョブの情報を Dataflow コマンドライン インターフェースを使用して取得できます。Dataflow コマンドライン インターフェースは、Cloud SDKgcloud コマンドライン ツールの一部です。

注: ウェブベースの UI を使用して Dataflow ジョブの表示と操作を行う場合は、Dataflow Monitoring Interface を使用してください。

Cloud Dataflow コマンドライン コンポーネントをインストールする

Dataflow コマンドライン インターフェースを使用するには、まず gcloud ツールをインストールする必要があります。

使用可能なコマンドを実行する

使用可能なコマンドを実行して、Dataflow コマンドライン インターフェースを操作します。コマンドを実行するには、次のコマンドをシェルまたはターミナルに入力します。

  gcloud dataflow

Dataflow コマンドライン インターフェースには、3 つの主要なサブコマンド(jobslogsmetrics)があります。

jobs コマンド

jobs サブコマンド グループを使用すると、Google Cloud プロジェクトの Dataflow ジョブを表示して操作できます。これらのコマンドを使用して、ジョブのリストの表示、ジョブのキャンセル、特定のジョブの説明の表示などを行うことができます。たとえば、すべての Dataflow ジョブのリストを表示するには、シェルまたはターミナルに次のコマンドを入力します。

gcloud dataflow jobs list

gcloud ツールは、次のように現在のジョブのリストを返します。

  ID                                        NAME                                    TYPE   CREATION_TIME        STATE   REGION
  2015-06-03_16_39_22-4020553808241078833   wordcount-janedoe-0603233849            Batch  2015-06-03 16:39:22  Done    us-central1
  2015-06-03_16_38_28-4363652261786938862   wordcount-johndoe-0603233820            Batch  2015-06-03 16:38:28  Done    us-central1
  2015-05-21_16_24_11-17823098268333533078  bigquerytornadoes-johndoe-0521232402    Batch  2015-05-21 16:24:11  Done    europe-west1
  2015-05-21_13_38_06-16409850040969261121  bigquerytornadoes-johndoe-0521203801    Batch  2015-05-21 13:38:06  Done    us-central1
  2015-05-21_13_17_18-18349574013243942260  bigquerytornadoes-johndoe-0521201710    Batch  2015-05-21 13:17:18  Done    europe-west1
  2015-05-21_12_49_37-9791290545307959963   wordcount-johndoe-0521194928            Batch  2015-05-21 12:49:37  Done    us-central1
  2015-05-20_15_54_51-15905022415025455887  wordcount-johndoe-0520225444            Batch  2015-05-20 15:54:51  Failed  us-central1
  2015-05-20_15_47_02-14774624590029708464  wordcount-johndoe-0520224637            Batch  2015-05-20 15:47:02  Done    us-central1

ジョブ ID を使用して describe コマンドを実行し、ジョブに関する情報を表示できます。

export JOBID=<X>
gcloud dataflow jobs describe $JOBID

たとえば、ジョブ ID 2015-02-09_11_39_40-15635991037808002875 でコマンドを実行すると、gcloud ツールは次の情報を返します。

createTime: '2015-02-09T19:39:41.140Z'
currentState: JOB_STATE_DONE
currentStateTime: '2015-02-09T19:56:39.510Z'
id: 2015-02-09_11_39_40-15635991037808002875
name: tfidf-bchambers-0209193926
projectId: google.com:clouddfe
type: JOB_TYPE_BATCH

--format=json オプションを使用してコマンドを実行し、結果を JSON 形式に整形できます。

gcloud --format=json dataflow jobs describe $JOBID

gcloud ツールは、次のように整形された情報を返します。

{
  "createTime": "2015-02-09T19:39:41.140Z",
  "currentState": "JOB_STATE_DONE",
  "currentStateTime": "2015-02-09T19:56:39.510Z",
  "id": "2015-02-09_11_39_40-15635991037808002875",
  "name": "tfidf-bchambers-0209193926",
  "projectId": "google.com:clouddfe",
  "type": "JOB_TYPE_BATCH"
}

jobs コマンドの一覧については、Cloud SDK ドキュメントの gcloud dataflow ジョブコマンドをご覧ください。

logs コマンド

logs コマンドを使用すると、Dataflow サービスで実行されるジョブのログエントリが表示されます。

たとえば、list コマンドを使用して、ジョブの実行内容に関する情報を提供するログを出力できます。

export JOBID=<X>
gcloud dataflow logs list $JOBID

ジョブ ID 2015-02-09_11_39_40-15635991037808002875 に対しては、gcloud ツールは次のように返します。

Listed 0 items.

この例では、デフォルトの重要度(Warning)のログは表示されません。list コマンドを --importance=detailed オプションで実行して BASIC ログを含めることができます。

gcloud dataflow logs list $JOBID --importance=detailed

gcloud ツールは、次のログを出力します。

d 2016-08-29T09:33:28 2015-02-09_11_39_40-15635991037808002875_00000156d72606f7 (39b2a31f5e883423): Starting worker pool synchronously
d 2016-08-29T09:33:28 2015-02-09_11_39_40-15635991037808002875_00000156d7260871 (39b2a31f5e883ce9): Worker pool is running
d 2016-08-29T09:33:28 2015-02-09_11_39_40-15635991037808002875_00000156d7260874 (39b2a31f5e883b77): Executing operation Count.PerElement/Sum.PerKey/GroupByKey/GroupByKeyOnly…
...

logs コマンドの一覧については、Cloud SDK ドキュメントの gcloud dataflow ログコマンドをご覧ください。

metrics コマンド

metrics コマンドを使用すると、特定の Cloud Dataflow ジョブの指標を表示できます。

注: metric コマンド名は変更される場合があり、一部の指標は削除の対象となります。

list コマンドを使用すると、ジョブのステップに関する情報を取得できます。

gcloud dataflow metrics list $JOBID

このコマンドに対して、gcloud ツールは次のように返します。

---
name:
  name: s09-s14-start-msecs
  origin: dataflow/v1b3
scalar: 137
updateTime: '2016-08-29T16:35:50.007Z'
---
name:
  context:
    output_user_name: WordCount.CountWords/Count.PerElement/Init-out0
  name: ElementCount
  origin: dataflow/v1b3
scalar: 26181
updateTime: '2016-08-29T16:35:50.007Z'
---
name:
  context:
    step: s2
  name: emptyLines
  origin: user
scalar: 1080
updateTime: '2016-08-29T16:35:50.007Z'
...

gcloud dataflow metrics list コマンドを使用すると、ジョブの実行中(または完了直後)に仮指標を取得できます。仮指標を表示するには、--tentative フラグを指定してコマンドを実行します。tentative とマークされた指標はワーカー インスタンスがパイプラインのデータを処理するときに頻繁に更新されます。ワーカーでエラーが発生した場合は減少することがあります。tentative 指標は、ワーカーが作業を完了し、結果を commit すると committed 値になります。

metrics コマンドの一覧については、Cloud SDK ドキュメントの gcloud dataflow metrics コマンドをご覧ください。

コマンドを使用してリージョン エンドポイントを指定する

gcloud ツール バージョン 176 以降、Dataflow コマンドライン インターフェースでは、リージョン エンドポイントを指定できるようになっています。どのコマンドでも、--region オプションを使用して、ジョブを管理するリージョン エンドポイントを指定できます。

たとえば、gcloud dataflow jobs list はすべてのリージョンのジョブを一覧表示しますが、gcloud dataflow jobs list --region=europe-west1 は、europe-west1 で管理されるジョブだけを一覧表示します。

注: リージョン・エンドポイントからジョブ情報を取得するには、--region オプションが必要です。リージョン エンドポイントを指定しない場合は、us-central1 がデフォルトのエンドポイントとして使用されます。