DataprepのAPIを使用してJobを実行する

こんにちは。香田です。

今回、DataprepのAPIを使用したジョブ実行方法について紹介していきます。

DataprepのDatasetとして利用するGCSは下記のような構成になっています。

gs://<bucket-name>
├── app
│   └── raw.csv
├── sensor
│   └── raw.csv
└── tracking
    └── raw.csv

認証設定

はじめにDataprepのページへ移動し、Tokenを発行します。

[Preferences]の[Access tokens]より[Generate New Token]をクリックします。

[Lifetime]と[Description]を設定し[Generate]をクリックすると、Tokenが発行されるのでコピーします。

下記のように[Status]がアクティブな状態が確認できるはずです。

d1

Datasetのインポート

[Library]より[Import Data]を選択し[GCS]を選択します。

バケットを選択し[Create Dataset with Parameters]をクリックします。

[Add Variable]より[Name]と[Default value]を設定し変数を設定します。

d2

問題なければ、[Save]、[Create]より[Import]をクリックします。

ここではdata_sourceを変数名として、デフォルト値をappフォルダに設定しています。

Flowの作成

次にFlowを作成していきます。[Flows]より[Create Flow]をクリックします。

[Flow Name]と[Flow Description]を設定し[Create]をクリックします。

[Add Datasets]より先程作成したデータセットを選択します。

d3

[Add New Recipe]をクリックします。今回はAPI実行が目的なのでRecipeの編集はスキップします。

d4

[Create Output to Run]をクリックすると、出力先としてDataprepで作成されたバケットへCSVファイルが出力される設定が確認できるはずです。

d5

次にJob実行時に利用するwrangledDatasetのidを確認します。

[Output]のアイコンをクリックすると、URLのクエリストリングとして出力されているoutupt=<id>idをコピーします。

d6

Dataprep JobのAPI実行

curlコマンドでDataprepのAPIを使用しジョブ実行していきます。

認証情報を環境変数に設定します。

export TOKEN="xxxxx"

実行するJOSNの内容は下記のような内容になります。wrangledDatasetのidは先程コピーしたoutputのidを指定します。

{
  "wrangledDataset": {
    "id": 1496810
  },
  "overrides": {
    "runParameters": {
      "overrides": {
        "data": [{
          "key": "data_source",
          "value": "sensor"
        }
      ]}
    }
  }
}

下記でJobを実行し、Dataprepの[Jobs]画面より実行したJobが確認できれば成功です。

curl -X POST https://api.clouddataprep.com/v4/jobGroups \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d @request.json

さいごに

DataprepのAPIを使用したジョブ実行いかがでしたでしょうか。

他のジョブ実行方法については、GCPのドキュメントに記載されてますので参考にしてみてください。

最後までご覧頂きありがとうございます。

SNSでもご購読できます。