Treasure Dataは、Treasure Dataコンソール外で特定のワークフローの詳細を表示するために使用できるAPIを提供しています。以下の図1は、APIによって返されるワークフローオブジェクトの例を示しています。開始日と終了日を含むワークフローのスケジュール情報は、16〜20行目に表示されています。 以下のRESTfulエンドポイントを呼び出すことで、Treasure Data内のワークフローオブジェクトのリストを取得できます:
https://api.treasuredata.com/api/workflows
この呼び出しによって返されるワークフローオブジェクトには、ワークフローのIDとワークフローのスケジュール情報の両方が含まれています(図1を参照)。
このエンドポイントは以下のパラメータで呼び出すことができます:
- パラメータなし–最小のIDから始まる200個のワークフローオブジェクトを返します。これは、システムで定義されているワークフローが少ない場合にのみ適したオプションです。
- count--返される結果を指定された数に制限します。これにより、デフォルトの200ワークフローオブジェクトの制限を克服できますが、大きなcountを指定すると、レスポンスが大幅に遅延し、結果の解析に追加の時間が必要になる場合があります。countはint32として定義されているため、200万以上のオブジェクトを指定できます。
- last_id–結果を、指定された数より大きいIDを持つ最初の200個のワークフローオブジェクトに制限します。これは、ワークフローID番号がどのようなものか大まかに把握している場合に便利です。例えば、現在のワークフローIDが3456のような場合、last_idを約3400に設定して、呼び出しの結果を制限できます。
- name_pattern–結果を、指定したパターンに一致する名前を持つワークフローオブジェクトに制限します。ワークフローオブジェクトの命名規則に従っている場合、またはワークフローの名前がわかっている場合、これがワークフローオブジェクトを表示する最も効率的な方法です。
レスポンスの形式は未フォーマットのJSONです。ただし、読みやすさのために、以下の例のレスポンスはJSONフォーマットツールを通してパイプされています。
$ curl -H 'Authorization: TD1 ${TD_API_KEY}' \
'https://api.treasuredata.com/api/workflows/?count=2000' | python -m json.tool{
"workflows": [
{
"id": "334",
"name": "myredshift",
"project": {
"id": "14",
"name": "myredshift"
},
"revision": "a56dfb4e8eca3214ad520b45b2c2d1ea",
"timezone": "UTC",
"config": {
"_export": {
"user": "awsuser",
"host": "td.ckw8m7vbvvvn.us-east-1.td.amazonaws.com",
"database": "digdag_test",
"table": "td_wf_prod_test"
},
"+prepare_table": {
"redshift>": "queries/create_table.sql"
},
"+load_data": {
"redshift_load>": null,
"from": "s3://digdag-test/td-workflow-test/testdata.csv.gz",
"delimiter": ",",
"gzip": true
},
"+increament_count": {
"redshift>": "queries/increment_count.sql"
},
"+unload_data": {
"redshift_unload>": null,
"query": "select * from ${table}",
"to": "s3://digdag-test/td-workflow-test/testdata.csv.gz",
"allowoverwrite": true,
"delimiter": ",",
"gzip": true
}
}
},
{
"id": "349",
"name": "simple_workflow",
"project": {
"id": "123",
"name": "TestUI"
},
.
.
.curl -H 'Authorization: TD1 1/123456789abcdef0123456789abcdef012345678' 'https://api.treasuredata.com/api/workflows/?last_id=7828860' | python -m json.tool{
"workflows": [
{
"id": "7828866",
"name": "wtt_workflow",
"project": {
"id": "234567",
"name": "wtt_workflow"
},
"revision": "ce2a35ae71a442b6abb3274551fe1692",
"timezone": "UTC",
"config": {
"_export": {
"td": {
"database": "dbname.table"
}
},
"schedule": {
"start": "2022-04-27",
"minutes_interval>": 30,
"end": "2022-04-30"
},
"+task1": {
"td_load>": "my_transfer_unique_id"
},
"+task2": {
"td_run>": "my_saved_query"
}
}
},
{
"id": "7829021",
"name": "syndication",
"project": {
"id": "263789",
"name": "journey_6543"
},
.
.
.$ curl -H 'Authorization: TD1 ${TD_API_KEY}' \
'https://api.treasuredata.com/api/workflows/?name_pattern=wtt' | python -m json.tool{
"workflows": [
{
"id": "7828866",
"name": "wtt_workflow",
"project": {
"id": "234567",
"name": "wtt_workflow"
},
"revision": "ce2a35ae71a442b6abb3274551fe1692",
"timezone": "UTC",
"config": {
"_export": {
"td": {
"database": "dbname.table"
}
},
"schedule": {
"start": "2022-04-27",
"minutes_interval>": 30,
"end": "2022-04-30"
},
"+task1": {
"td_load>": "my_transfer_unique_id"
},
"+task2": {
"td_run>": "my_saved_query"
}
}
}
]
}APIが1つのワークフローオブジェクトのみを返すようにしたい場合は、ワークフローオブジェクトIDを使用してAPIを呼び出すことができます。上記のすべての例では、ワークフローオブジェクトのIDが返されます。ただし、TDコンソールを使用してワークフローIDを確認することもできます:
- TDコンソールでWorkflowsに移動します。
- リストをスクロールするか、リストを検索して、ワークフローを見つけて選択します。
ワークフローのIDはブラウザのURLに表示されます。以下の例では、wtt_workflowのワークフローIDは7828866です。

ワークフローのIDを取得したら、次のようにAPI呼び出しを行うことができます:
curl -H 'Authorization: TD1 ${TD_API_KEY}' \
'https://api.treasuredata.com/api/workflows/7828866' | python -m json.tool{
"id": "7828866",
"name": "wtt_workflow",
"project": {
"id": "234567",
"name": "wtt_workflow"
},
"revision": "ce2a35ae71a442b6abb3274551fe1692",
"timezone": "UTC",
"config": {
"_export": {
"td": {
"database": "dbname.table"
}
},
"schedule": {
"start": "2022-04-27",
"minutes_interval>": 30,
"end": "2022-04-30"
},
"+task1": {
"td_load>": "my_transfer_unique_id"
},
"+task2": {
"td_run>": "my_saved_query"
}
}
}図1:基本的なTreasure Dataワークフローオブジェクトの例
{
"id": "7828866",
"name": "wtt_workflow",
"project": {
"id": "265740",
"name": "wtt_workflow"
},
"revision": "ce2a35ae71a442b6abb3274551fe1692",
"timezone": "UTC",
"config": {
"_export": {
"td": {
"database": "dbname.table"
}
},
"schedule": {
"start": "2022-04-27",
"minutes_interval>": 30,
"end": "2022-04-30"
},
"+task1": {
"td_load>": "my_transfer_unique_id"
},
"+task2": {
"td_run>": "my_saved_query"
}
}
}