Slutpunkt för scheman
Lär dig hur du skapar, hanterar och övervakar schemalagda frågor programmatiskt med hjälp av API:t för frågetjänstscheman med detaljerad information och exempel.
Krav och krav
Du kan skapa schemalagda frågor antingen med ett tekniskt konto (autentiserat via autentiseringsuppgifter för OAuth Server-till-Server) eller med ett personligt användarkonto (användartoken). Adobe rekommenderar dock starkt att man använder ett tekniskt konto för att säkerställa oavbruten och säker körning av schemalagda frågor, särskilt för långvariga eller produktionsbaserade arbetsbelastningar.
Frågor som skapats med ett personligt användarkonto misslyckas om användarens åtkomst återkallas eller deras konto inaktiveras. Tekniska konton ger större stabilitet eftersom de inte är knutna till en enskild användares anställningssituation eller åtkomsträttigheter.
- Schemalagda frågor misslyckas om kontot (tekniskt eller användarens) som användes för att skapa dem förlorar åtkomst eller behörigheter.
- Schemalagda frågor måste inaktiveras innan de tas bort via API:t eller användargränssnittet.
- Schemaläggning i oändlighet utan slutdatum stöds inte. Ett slutdatum måste alltid anges.
Detaljerad vägledning om kontokrav, behörighetsinställningar och hantering av schemalagda frågor finns i dokumentationen om frågescheman. Stegvisa instruktioner för hur du skapar och konfigurerar ett tekniskt konto finns i Developer Console-konfigurationen och Teknisk kontokonfiguration från början till slut.
Exempel på API-anrop
När du har konfigurerat nödvändiga autentiseringshuvuden (se API-autentiseringsguiden) kan du börja ringa anrop till Query Service API. I följande avsnitt visas olika API-anrop med allmänna format, exempelbegäranden inklusive obligatoriska rubriker och exempelsvar.
Hämta en lista med schemalagda frågor
Du kan hämta en lista över alla schemalagda frågor för din organisation genom att göra en GET-begäran till slutpunkten /schedules
.
API-format
GET /schedules
GET /schedules?{QUERY_PARAMETERS}
{QUERY_PARAMETERS}
&
). De tillgängliga parametrarna visas nedan.Frågeparametrar
Här följer en lista med tillgängliga frågeparametrar för att lista schemalagda frågor. Alla dessa parametrar är valfria. Om du anropar den här slutpunkten utan parametrar hämtas alla schemalagda frågor som är tillgängliga för din organisation.
orderby
created
och updated
. orderby=created
sorterar till exempel resultat efter skapade i stigande ordning. Om du lägger till en -
före skapad (orderby=-created
) sorteras objekt efter att de har skapats i fallande ordning.limit
start
ISO-tidsstämplar tillåter olika nivåer av granularitet för datum och tid. Grundläggande ISO-tidsstämplar har formatet
2020-09-07
för att uttrycka datumet 7 september 2020. Ett mer komplext exempel skrivs som 2022-11-05T08:15:30-05:00
och motsvarar 5 november 2022, 8:15:30 am, US Eastern Standard Time. En tidszon kan anges med en UTC-förskjutning och anges med suffixet Z (2020-01-01T01:01:01Z
). Om ingen tidszon anges är standardvärdet noll.property
created
, templateId
och userId
. Listan med operatorer som stöds är >
(större än), <
(mindre än) och ==
(lika med). userId==6ebd9c2d-494d-425a-aa91-24033f3abeec
returnerar till exempel alla schemalagda frågor där användar-ID:t är angivet.Begäran
Följande begäran hämtar den senaste schemalagda frågan som har skapats för din organisation.
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}'
Svar
Ett lyckat svar returnerar HTTP-status 200 med en lista över schemalagda frågor för den angivna organisationen. Följande svar returnerar den senaste schemalagda frågan som skapats för din organisation.
{
"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
}
Skapa en ny schemalagd fråga
Du kan skapa en ny schemalagd fråga genom att göra en POST-begäran till slutpunkten /schedules
. När du skapar en schemalagd fråga i API:t kan du även se den i Frågeredigeraren. Mer information om schemalagda frågor i användargränssnittet finns i dokumentationen för Frågeredigeraren.
API-format
POST /schedules
Begäran
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.dbName
query.sql
query.name
query.description
schedule.schedule
Kronschemat för frågan. Se Crontab.guru för ett interaktivt sätt att skapa, validera och förstå cron-uttryck. I det här exemplet betyder "30 * * *" att frågan kommer att köras varje timme vid 30 minuters markering.
Du kan också använda följande kortkommandouttryck:
@once
: Frågan körs bara en gång.@hourly
: Frågan körs varje timme i början av timmen. Detta motsvarar cron-uttrycket0 * * * *
.@daily
: Frågan körs en gång om dagen vid midnatt. Detta motsvarar cron-uttrycket0 0 * * *
.@weekly
: Frågan körs en gång i veckan, på söndag, vid midnatt. Detta motsvarar cron-uttrycket0 0 * * 0
.@monthly
: Frågan körs en gång i månaden, den första dagen i månaden, vid midnatt. Detta motsvarar cron-uttrycket0 0 1 * *
.@yearly
: Frågan körs en gång per år, den 1 januari, vid midnatt. Detta motsvarar cron-uttrycket0 0 1 1 *
.
schedule.startDate
Svar
Ett lyckat svar returnerar HTTP-status 202 (Accepterad) med information om din nyligen skapade schemalagda fråga. När den schemalagda frågan har aktiverats ändras state
från REGISTERING
till 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
för att ta bort din skapade schemalagda fråga.Begär information om en angiven schemalagd fråga
Du kan hämta information för en viss schemalagd fråga genom att göra en GET-begäran till slutpunkten /schedules
och ange dess ID i sökvägen för begäran.
API-format
GET /schedules/{SCHEDULE_ID}
{SCHEDULE_ID}
id
för den schemalagda frågan som du vill hämta.Begäran
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}'
Svar
Ett lyckat svar returnerar HTTP-status 200 med information om den angivna schemalagda frågan.
{
"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
för att ta bort din skapade schemalagda fråga.Uppdatera information om en angiven schemalagd fråga
Du kan uppdatera informationen för en angiven schemalagd fråga genom att göra en PATCH-begäran till slutpunkten /schedules
och ange dess ID i sökvägen för begäran.
PATCH-begäran stöder två olika sökvägar: /state
och /schedule/schedule
.
Uppdatera status för schemalagd fråga
Du kan uppdatera tillståndet för den valda schemalagda frågan genom att ange egenskapen path
till /state
och egenskapen value
som antingen enable
eller disable
.
API-format
PATCH /schedules/{SCHEDULE_ID}
{SCHEDULE_ID}
id
för den schemalagda frågan som du vill skicka till PATCH.Begäran
Denna API-begäran använder JSON Patch-syntaxen för sin nyttolast. Mer information om hur JSON Patch fungerar finns i dokumentet om grundläggande API:er.
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"
}
]
}'
op
replace
.path
path
till /state
eftersom du uppdaterar den schemalagda frågans tillstånd.value
/state
. Värdet kan antingen anges som enable
eller disable
för att aktivera eller inaktivera den schemalagda frågan.Svar
Ett lyckat svar returnerar HTTP-status 202 (Accepterad) med följande meddelande.
{
"message": "Request to patch accepted",
"statusCode": 202
}
Uppdatera schemalagt frågeschema
Du kan uppdatera cron-schemat för den schemalagda frågan genom att ange egenskapen path
till /schedule/schedule
i begärandetexten. Mer information om cron-scheman finns i dokumentationen för cron-uttrycksformatet.
API-format
PATCH /schedules/{SCHEDULE_ID}
{SCHEDULE_ID}
id
för den schemalagda frågan som du vill skicka till PATCH.Begäran
Denna API-begäran använder JSON Patch-syntaxen för sin nyttolast. Mer information om hur JSON Patch fungerar finns i dokumentet om grundläggande API:er.
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 * * * *"
}
]
}'
op
replace
.path
path
till /schedule/schedule
eftersom du uppdaterar schemat för den schemalagda frågan.value
/schedule
. Värdet måste anges i form av ett kronschema. I det här exemplet körs den schemalagda frågan varje timme med 45 minuters markering.Svar
Ett lyckat svar returnerar HTTP-status 202 (Accepterad) med följande meddelande.
{
"message": "Request to patch accepted",
"statusCode": 202
}
Ta bort en angiven schemalagd fråga
Du kan ta bort en angiven schemalagd fråga genom att göra en DELETE-begäran till /schedules
-slutpunkten och ange ID:t för den schemalagda frågan som du vill ta bort i sökvägen för begäran.
API-format
DELETE /schedules/{SCHEDULE_ID}
{SCHEDULE_ID}
id
för den schemalagda frågan som du vill DELETE.Begäran
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}'
Svar
Ett lyckat svar returnerar HTTP-status 202 (Accepterad) med följande meddelande.
{
"message": "Schedule deleted successfully",
"statusCode": 202
}