スケジュールエンドポイント
Query Service スケジュール API を使用して、スケジュールされたクエリをプログラムで作成、管理、監視する方法と、詳細な情報および例について説明します。
要件と前提条件
テクニカルアカウント(OAuth サーバー間資格情報を介して認証)または個人用ユーザーアカウント(ユーザートークン)を使用して、スケジュールされたクエリを作成できます。 ただし、Adobeでは、特に長期的なワークロードや実稼動のワークロードのために、中断のない安全なスケジュール済みクエリの実行を確保するために、テクニカルアカウントを使用することを強くお勧めします。
個人のユーザーアカウントで作成されたクエリは、そのユーザーのアクセス権が取り消された場合、またはアカウントが無効になっている場合は失敗します。 テクニカルアカウントは、個々のユーザーの雇用状況やアクセス権に結び付けられないため、安定性が高まります。
- スケジュールされたクエリは、クエリの作成に使用したアカウント(技術またはユーザー)がアクセス権または権限を失った場合に失敗します。
 - スケジュールされたクエリは、API または UI で削除する前に無効にする必要があります。
 - 終了日を指定せずに無期限にスケジュールすることはできません。終了日は必ず指定する必要があります。
 
アカウント要件、権限の設定、スケジュールされたクエリの管理に関する詳しいガイダンスについては、 クエリスケジュールのドキュメント  を参照してください。 テクニカルアカウントの作成と設定に関する詳細な手順については、Developer Consoleの設定  および  エンドツーエンドのテクニカルアカウントの設定  を参照してください。
サンプル API 呼び出し
必要な認証ヘッダーを設定したら(『 API 認証ガイド  を参照)、Query Service API への呼び出しを開始できます。 以下の節では、一般的な形式を持つ様々な API 呼び出し、必要なヘッダーを含むリクエストの例、応答のサンプルを示します。
スケジュールされたクエリのリストの取得
/schedules エンドポイントにGET リクエストを送信すると、組織でスケジュールされたすべてのクエリのリストを取得できます。
API 形式
GET /schedules
GET /schedules?{QUERY_PARAMETERS}
            {QUERY_PARAMETERS}&)で区切ります。使用できるパラメーターは以下のとおりです。クエリパラメータ
次に、スケジュールされたクエリの一覧表示に使用可能なクエリパラメーターのリストを示します。これらのパラメーターはすべてオプションです。パラメーターを指定せずにこのエンドポイントを呼び出すと、組織で使用できる、スケジュールされたクエリがすべて取得されます。
orderbycreated と updated です。例えば、orderby=created は、昇順で結果を並べ替えます。作成前に - を追加する(orderby=-created)と、項目が作成日の降順で並べ替えられます。limitstart使用すると、日付と時間に様々なレベルの精度を設定できます。 基本の ISO タイムスタンプは、2020 年 9 月 7 日を表すために
2020-09-07 の形式を取ります。 より複雑な例は、2022-11-05T08:15:30-05:00 と記述され、2022 年 11 月 5 日午前 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 * * * *」は、クエリが 1 時間ごとに 30 分のマークで実行されることを意味します。
または、次の短縮形の式を使用することもできます。
@once:クエリは 1 回だけ実行されます。@hourly:クエリは 1 時間ごとに、その時間の初めに実行されます。 これは cron 式0 * * * *と同等です。@daily:クエリは 1 日 1 回午前 0 時に実行されます。 これは cron 式0 0 * * *と同等です。@weekly:クエリは、週に 1 回、日曜日、深夜に実行されます。 これは cron 式0 0 * * 0と同等です。@monthly:クエリは月に 1 回、月の初日の午前 0 時に実行されます。 これは cron 式0 0 1 * *と同等です。@yearly: クエリは、年に 1 回、1 月 1 日、深夜に実行されます。 これは 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
}
            スケジュール済みクエリスケジュールの更新
リクエスト本文で path プロパティを /schedule/schedule に設定することで、スケジュールされたクエリの cron スケジュールを更新できます。 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
}