こんにちは。香田です。
今回、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]がアクティブな状態が確認できるはずです。
Datasetのインポート
[Library]より[Import Data]を選択し[GCS]を選択します。
バケットを選択し[Create Dataset with Parameters]をクリックします。
[Add Variable]より[Name]と[Default value]を設定し変数を設定します。
問題なければ、[Save]、[Create]より[Import]をクリックします。
ここではdata_source
を変数名として、デフォルト値をapp
フォルダに設定しています。
Flowの作成
次にFlowを作成していきます。[Flows]より[Create Flow]をクリックします。
[Flow Name]と[Flow Description]を設定し[Create]をクリックします。
[Add Datasets]より先程作成したデータセットを選択します。
[Add New Recipe]をクリックします。今回はAPI実行が目的なのでRecipeの編集はスキップします。
[Create Output to Run]をクリックすると、出力先としてDataprepで作成されたバケットへCSVファイルが出力される設定が確認できるはずです。
次にJob実行時に利用するwrangledDataset
のidを確認します。
[Output]のアイコンをクリックすると、URLのクエリストリングとして出力されているoutupt=<id>
のid
をコピーします。
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のドキュメントに記載されてますので参考にしてみてください。
最後までご覧頂きありがとうございます。