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

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

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

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

Dataflow コマンドライン インターフェースを使用するには、最初にベータ版コンポーネントを gcloud ツールにインストールする必要があります。シェルまたはターミナル ウィンドウで、次のように入力します。

      gcloud components update beta
    

続行するよう求められたら「y」と入力します。

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

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

      gcloud beta dataflow
    

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

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 beta dataflow jobs describe $JOBID
    

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

    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 beta 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 beta dataflow ジョブ コマンドをご覧ください。

logs コマンド

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

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

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

求人 ID 2015-02-09_11_39_40-15635991037808002875 の場合、gcloud ツールは以下を返します。

    Listed 0 items.
    

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

    gcloud beta 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 beta dataflow ログ コマンドをご覧ください。

metrics コマンド

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

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

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

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

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

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

gcloud ツール バージョン 176 から、Dataflow コマンドライン インターフェースでリージョン エンドポイントを指定できます。任意のコマンドで--regionオプションを使用して、ジョブを管理するリージョンエンドポイントを指定します。

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

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