スケジュールのエンドポイント
詳細な情報と例を含むQuery Service スケジュール APIを使用して、スケジュールされたクエリをプログラムで作成、管理、監視する方法について説明します。
要件と前提条件
スケジュールされたクエリは、テクニカルアカウント(OAuth サーバー間の資格情報を介して認証)または個人ユーザーアカウント(ユーザートークン)を使用して作成できます。 ただし、Adobeでは、スケジュールされたクエリを中断なく安全に実行できるように、特に長期的なワークロードや実稼動ワークロードに対しては、テクニカルアカウントを使用することを強くお勧めします。
個人ユーザーアカウントで作成されたクエリは、そのユーザーのアクセス権が取り消されたり、アカウントが無効になったりすると、失敗します。 テクニカルアカウントは、個々のユーザーの雇用ステータスやアクセス権に結びついていないため、より安定性が高まります。
31.12.9999などの将来の日付で表示される場合があります。- スケジュールされたクエリは、スケジュールの作成に使用されるアカウントがアクセス権または権限を失った場合に失敗します。
- APIまたはUIを使用してスケジュールされたクエリを削除する前に、スケジュールされたクエリを無効にする必要があります。
アカウント要件、権限の設定、スケジュールされたクエリの管理に関する詳細なガイダンスについては、 クエリスケジュールのドキュメント を参照してください。 テクニカルアカウントの作成と設定に関する手順については、Developer Console setupおよび エンドツーエンドのテクニカルアカウントの設定を参照してください。
サンプル API 呼び出し
必要な認証ヘッダーを設定したら(API認証ガイド を参照)、Query Service APIの呼び出しを開始できます。 次の節では、一般的な形式を使用した様々なAPI呼び出し、必要なヘッダーを含むリクエストの例、および応答の例を示します。
スケジュールされたクエリのリストの取得
組織のすべてのスケジュール済みクエリのリストを取得するには、/schedules エンドポイントにGET リクエストを実行します。
API 形式
GET /schedules
GET /schedules?{QUERY_PARAMETERS}
{QUERY_PARAMETERS}&)で区切ります。 使用できるパラメーターは以下のとおりです。クエリパラメータ
次に、スケジュールされたクエリの一覧表示に使用可能なクエリパラメーターのリストを示します。 これらのパラメーターはすべてオプションです。 パラメーターを指定せずにこのエンドポイントを呼び出すと、組織で使用できる、スケジュールされたクエリがすべて取得されます。
orderbycreated と updated です。 例えば、orderby=created は、昇順で結果を並べ替えます。 作成前に - を追加する(orderby=-created)と、項目が作成日の降順で並べ替えられます。limitstartISO タイムスタンプを使用すると、日付と時刻の詳細レベルを変えることができます。 基本的なISO タイムスタンプは、2020年9月7日の日付を表すために
2020-09-07の形式になります。 より複雑な例では、2022-11-05T08:15:30-05:00と書かれ、2022年11月5日(PT)午前8:15:30、米国東部標準時に対応します。 タイムゾーンはUTC オフセットで指定でき、サフィックス「Z」(2020-01-01T01:01:01Z)で示されます。 タイムゾーンが指定されていない場合、デフォルトは0になります。propertycreated、templateId、および userId です。 サポートされる演算子のリストは >(より大きい)、<(より小さい)、および ==(等しい)です。 例えば、userId==6ebd9c2d-494d-425a-aa91-24033f3abeec は、指定されたものと同じたユーザー ID を持つスケジュール済みクエリをすべて返します。リクエスト
次のリクエストは、組織に対して作成された最新のスケジュール済みクエリを取得します。
curl -X GET https://platform.adobe.io/data/foundation/query/schedules?limit=1
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
応答
応答が成功すると、HTTP ステータス 200が、指定した組織のスケジュール済みクエリのリストとともに返されます。 次の応答は、組織に対して作成された最新のスケジュール済みクエリを返します。
{
"schedules": [
{
"state": "ENABLED",
"query": {
"dbName": "prod:all",
"sql": "SELECT * FROM accounts;",
"name": "Sample Scheduled Query",
"description": "A sample of a scheduled query."
},
"updatedUserId": "{USER_ID}",
"version": 2,
"id": "e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"updated": "1578523458919",
"schedule": {
"schedule": "30 * * * *",
"startDate": "2020-01-08T12:30:00.000Z",
"maxActiveRuns": 1
},
"userId": "{USER_ID}",
"created": "1578523458919",
"_links": {
"enable": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"method": "PATCH",
"body": "{ \"op\": \"enable\" }"
},
"runs": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm/runs",
"method": "GET"
},
"self": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"method": "GET"
},
"delete": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"method": "DELETE"
},
"disable": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"method": "PATCH",
"body": "{ \"op\": \"disable\" }"
},
"trigger": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm/runs",
"method": "POST"
}
}
}
],
"_page": {
"orderby": "+created",
"start": "2020-01-08T22:44:18.919Z",
"count": 1
},
"_links": {},
"version": 2
}
新しいスケジュール済みクエリの作成
/schedules エンドポイントにPOST リクエストを行うことで、新しいスケジュール済みクエリを作成できます。 APIでスケジュールされたクエリを作成すると、クエリエディターでも確認できます。 UIでスケジュールされたクエリについて詳しくは、 クエリエディターのドキュメント を参照してください。
API 形式
POST /schedules
リクエスト
curl -X POST https://platform.adobe.io/data/foundation/query/schedules
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '
{
"query": {
"dbName": "prod:all",
"sql": "SELECT * FROM accounts;",
"name": "Sample Scheduled Query",
"description": "A sample of a scheduled query."
},
"schedule": {
"schedule": "30 * * * *",
"startDate": "2020-01-08T12:30:00.000Z"
}
}
'
query.dbNamequery.sqlquery.namequery.descriptionschedule.scheduleクエリの cron スケジュール。 cron式を作成、検証、理解するインタラクティブな方法については、Crontab.guruを参照してください。 この例では、「30 * * * *」とは、クエリが30分ごとに実行されることを意味します。
または、次の簡略式を使用することもできます。
@once: クエリは1回のみ実行されます。@hourly: クエリは、時間の先頭で毎時間ごとに実行されます。 これは、cron式0 * * * *と同じです。@daily: クエリは1日1回、午前0時に実行されます。 これは、cron式0 0 * * *と同じです。@weekly: クエリは週に1回、日曜日、午前0時に実行されます。 これは、cron式0 0 * * 0と同じです。@monthly: クエリは月に1回、月の最初の日、午前0時に実行されます。 これは、cron式0 0 1 * *と同じです。@yearly: クエリは年に1回、1月1日の午前0時に実行されます。 これは、cron式0 0 1 1 *と同じです。
schedule.startDate応答
成功応答は HTTP ステータス(許可済み)とともに、作成したスケジュール済みクエリの詳細を返します。 スケジュール済みクエリのアクティブ化が完了すると、state は REGISTERING から ENABLED に変更されます。
{
"state": "REGISTERING",
"query": {
"dbName": "prod:all",
"sql": "SELECT * FROM accounts;",
"name": "Sample Scheduled Query",
"description": "A sample of a scheduled query."
},
"updatedUserId": "{USER_ID}",
"version": 2,
"id": "e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"schedule": {
"schedule": "30 * * * *",
"startDate": "2020-01-08T12:30:00.000Z",
"maxActiveRuns": 1
},
"userId": "{USER_ID}",
"_links": {
"enable": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"method": "PATCH",
"body": "{ \"op\": \"enable\" }"
},
"runs": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm/runs",
"method": "GET"
},
"self": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"method": "GET"
},
"delete": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"method": "DELETE"
},
"disable": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"method": "PATCH",
"body": "{ \"op\": \"disable\" }"
},
"trigger": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm/runs",
"method": "POST"
}
}
}
_links.deleteの値を使用して、作成したスケジュール済みクエリ 🔗を削除できます。指定したスケジュール済みクエリの詳細のリクエスト
特定のスケジュール済みクエリの情報を取得するには、/schedules エンドポイントに GET リクエストを送信し、リクエストパスでその ID を指定します。
API 形式
GET /schedules/{SCHEDULE_ID}
{SCHEDULE_ID}id 値。リクエスト
curl -X GET https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
応答
成功応答は、HTTP ステータス 200 とともに、指定されたスケジュール済みクエリの詳細を返します。
{
"state": "ENABLED",
"query": {
"dbName": "prod:all",
"sql": "SELECT * FROM accounts;",
"name": "Sample Scheduled Query",
"description": "A sample of a scheduled query."
},
"updatedUserId": "{USER_ID}",
"version": 2,
"id": "e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"updated": "1578523458919",
"schedule": {
"schedule": "30 * * * *",
"startDate": "2020-01-08T12:30:00.000Z",
"maxActiveRuns": 1
},
"userId": "{USER_ID}",
"created": "1578523458919",
"_links": {
"enable": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"method": "PATCH",
"body": "{ \"op\": \"enable\" }"
},
"runs": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm/runs",
"method": "GET"
},
"self": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"method": "GET"
},
"delete": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"method": "DELETE"
},
"disable": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm",
"method": "PATCH",
"body": "{ \"op\": \"disable\" }"
},
"trigger": {
"href": "https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm/runs",
"method": "POST"
}
}
}
_links.deleteの値を使用して、作成したスケジュール済みクエリ 🔗を削除できます。指定したスケジュール済みクエリの詳細の更新
指定したスケジュール済みクエリの詳細を更新するには、/schedules エンドポイントに PATCH リクエストを送信し、リクエストパスでその ID を指定します。
PATCH リクエストは、/state と /schedule/schedule の 2 つのパスをサポートします。
スケジュール済みクエリの状態の更新
選択したスケジュール済みクエリの状態を更新するには、path プロパティを/stateに、value プロパティをenableまたはdisableに設定します。
API 形式
PATCH /schedules/{SCHEDULE_ID}
{SCHEDULE_ID}id値。リクエスト
この API リクエストは、ペイロードに JSON パッチ構文を使用します。 JSON パッチの仕組みについて詳しくは、API の基本ドキュメントを参照してください。
curl -X PATCH https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"body": [
{
"op": "replace",
"path": "/state",
"value": "disable"
}
]
}'
opreplaceです。pathpath の値を /state に設定する必要があります。value/state の更新された値。 この値は、enable または disable に設定して、スケジュール済みクエリを有効または無効にすることができます。応答
成功応答は、HTTP ステータス 202(許可済み)とともに次のメッセージを返します。
{
"message": "Request to patch accepted",
"statusCode": 202
}
スケジュール済みクエリスケジュールの更新
スケジュールされたクエリのcron スケジュールを更新するには、リクエスト本文でpath プロパティを/schedule/scheduleに設定します。 cron スケジュールの詳細については、cron 式形式のドキュメントを参照してください。
API 形式
PATCH /schedules/{SCHEDULE_ID}
{SCHEDULE_ID}id値。リクエスト
この API リクエストは、ペイロードに JSON パッチ構文を使用します。 JSON パッチの仕組みについて詳しくは、API の基本ドキュメントを参照してください。
curl -X PATCH https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"body": [
{
"op": "replace",
"path": "/schedule/schedule",
"value": "45 * * * *"
}
]
}'
opreplaceです。pathpath の値を /schedule/schedule に設定する必要があります。value/schedule の更新された値。 この値は、cron スケジュールの形式で指定する必要があります。 この例では、スケジュールされたクエリは毎時 45 分に実行されます。応答
成功応答は、HTTP ステータス 202(許可済み)とともに次のメッセージを返します。
{
"message": "Request to patch accepted",
"statusCode": 202
}
指定したスケジュール済みクエリの削除
/schedules エンドポイントに DELETE リクエストを送信し、リクエストパスで削除するスケジュール済みクエリの ID を指定することで、指定したスケジュール済みクエリを削除できます。
API 形式
DELETE /schedules/{SCHEDULE_ID}
{SCHEDULE_ID}id値。リクエスト
curl -X DELETE https://platform.adobe.io/data/foundation/query/schedules/e95186d65a28abf00a495d82_28e74200-e3de-11e9-8f5d-7f27416c5f0d_sample_scheduled_query7omob151bm_birvwm
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
応答
成功応答は、HTTP ステータス 202(許可済み)とともに次のメッセージを返します。
{
"message": "Schedule deleted successfully",
"statusCode": 202
}