Hämtning av misslyckade batchar med API:t för dataåtkomst
Adobe Experience Platform har två metoder för att överföra och importera data. Du kan antingen använda gruppinmatning, vilket gör att du kan infoga deras data med olika filtyper (till exempel CSV-filer), eller direktuppspelning, vilket gör att du kan infoga deras data i Platform med direktuppspelningsslutpunkter i realtid.
I den här självstudiekursen beskrivs steg för att hämta information om en misslyckad batch med hjälp av Data Ingestion API:er.
Komma igång
Handboken kräver en fungerande förståelse av följande komponenter i Adobe Experience Platform:
- Experience Data Model (XDM) System: Det standardiserade ramverket som Experience Platform organiserar kundupplevelsedata med.
- Data Ingestion: Metoderna som data kan skickas till Experience Platform.
Läser exempel-API-anrop
I den här självstudiekursen finns exempel-API-anrop som visar hur du formaterar dina begäranden. Det kan vara sökvägar, obligatoriska rubriker och korrekt formaterade begärandenyttolaster. Ett exempel på JSON som returneras i API-svar finns också. Information om de konventioner som används i dokumentationen för exempel-API-anrop finns i avsnittet Så här läser du exempel-API-anrop i felsökningsguiden för Experience Platform.
Samla in värden för obligatoriska rubriker
För att kunna anropa Platform API:er måste du först slutföra autentiseringssjälvstudiekursen. När du slutför självstudiekursen för autentisering visas värdena för var och en av de obligatoriska rubrikerna i alla Experience Platform API-anrop, vilket visas nedan:
Authorization: Bearer {ACCESS_TOKEN}
x-api-key: {API_KEY}
x-gw-ims-org-id: {ORG_ID}
Alla resurser i Experience Platform, inklusive de som tillhör Schema Registry, isoleras till specifika virtuella sandlådor. Alla begäranden till Platform API:er kräver en rubrik som anger namnet på sandlådan som åtgärden ska utföras i:
x-sandbox-name: {SANDBOX_NAME}
Alla begäranden som innehåller en nyttolast (POST, PUT, PATCH) kräver ytterligare en rubrik:
Content-Type: application/json
Samplingen misslyckades
I den här självstudien används exempeldata med en felaktigt formaterad tidsstämpel som anger att månadens värde ska vara 00, vilket visas nedan:
{
"body": {
"xdmEntity": {
"id": "c8d11988-6b56-4571-a123-b6ce74236036",
"timestamp": "2018-00-10T22:07:56Z",
"environment": {
"browserDetails": {
"userAgent": "Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.57 Safari\/537.36 OPR\/16.0.1196.62",
"acceptLanguage": "en-US",
"cookiesEnabled": true,
"javaScriptVersion": "1.6",
"javaEnabled": true
},
"colorDepth": 32,
"viewportHeight": 799,
"viewportWidth": 414
}
}
}
}
Nyttolasten ovan valideras inte korrekt mot XDM-schemat på grund av den felaktiga tidsstämpeln.
Hämta den misslyckade batchen
API-format
GET /batches/{BATCH_ID}/failed
{BATCH_ID}
Begäran
curl -X GET 'https://platform.adobe.io/data/foundation/export/batches/{BATCH_ID}/failed' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Svar
{
"data": [
{
"name": "_SUCCESS",
"length": "0",
"_links": {
"self": {
"href": "https://platform.adobe.io:443/data/foundation/export/batches/{BATCH_ID}/failed?path=_SUCCESS"
}
}
},
{
"name": "part-00000-44c7b669-5e38-43fb-b56c-a0686dabb982-c000.json",
"length": "1800",
"_links": {
"self": {
"href": "https://platform.adobe.io:443/data/foundation/export/batches/{BATCH_ID}/failed?path=part-00000-44c7b669-5e38-43fb-b56c-a0686dabb982-c000.json"
}
}
}
],
"_page": {
"limit": 100,
"count": 2
}
}
Med svaret ovan kan du se vilka delar av gruppen som har slutförts och misslyckats. Från det här svaret kan du se att filen part-00000-44c7b669-5e38-43fb-b56c-a0686dabb982-c000.json
innehåller den misslyckade batchen.
Hämta den misslyckade batchen
När du vet vilken fil i gruppen som misslyckades kan du hämta den misslyckade filen och se vad felmeddelandet är.
API-format
GET /batches/{BATCH_ID}/failed?path={FAILED_FILE}
{BATCH_ID}
{FAILED_FILE}
Begäran
Följande begäran gör att du kan hämta filen som hade fel i inläsningen.
curl -X GET 'https://platform.adobe.io/data/foundation/export/batches/{BATCH_ID}/failed?path={FAILED_FILE}' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Svar
Eftersom den tidigare importerade batchen hade ett ogiltigt datum/tid visas följande valideringsfel.
{
"_validationErrors": [
{
"causingExceptions": [],
"keyword": "format",
"message": "[2018-00-23T22:07:01Z] is not a valid date-time. Expected [yyyy-MM-dd'T'HH:mm:ssZ, yyyy-MM-dd'T'HH:mm:ss.[0-9]{1-9}Z, yyyy-MM-dd'T'HH:mm:ss[+-]HH:mm, yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,9}[+-]HH:mm]",
"pointerToViolation": "#/timestamp",
"schemaLocation": "#/properties/timestamp"
}
]
}
Nästa steg
Efter att ha läst den här självstudiekursen har du lärt dig hur du hämtar fel från misslyckade batchar. Mer information om batchkonsumtion finns i Utvecklarhandboken för batchimport. Mer information om direktuppspelad inmatning finns i självstudiekursen Skapa en direktuppspelad anslutning.
Bilaga
Det här avsnittet innehåller information om andra typer av fel som kan uppstå vid förtäring.
Felaktigt formaterad XDM
Precis som tidsstämpelfelet i det föregående exempelflödet beror dessa fel på felaktigt formaterad XDM. Felmeddelandena varierar beroende på vad problemet är. Därför kan inget specifikt felexempel visas.
Organisations-ID saknas eller är ogiltigt
Det här felet visas om organisations-ID:t saknas i nyttolasten och är ogiltigt.
{
"type": "http://ns.adobe.com/adobecloud/problem/data-collection-service/inlet",
"status": 400,
"title": "Invalid XDM Message Format",
"report": {
"message": "inletId: [{INLET_ID}] imsOrgId: [{ORG_ID}@AdobeOrg] Message has an absent or wrong ims org in the header"
}
}
XDM-schema saknas
Det här felet visas om schemaRef
för xdmMeta
saknas.
{
"type": "http://ns.adobe.com/adobecloud/problem/data-collection-service/inlet",
"status": 400,
"title": "Invalid XDM Message Format",
"report": {
"message": "inletId: [{INLET_ID}] imsOrgId: [{ORG_ID}@AdobeOrg] Message has unknown xdm format"
}
}
Källnamn saknas
Det här felet visas om source
i huvudet saknar sin name
.
{
"_errors":{
"_streamingValidation": [
{
"message": "Payload header is missing Source Name"
}
]
}
}
XDM-entitet saknas
Det här felet visas om det inte finns någon xdmEntity
.
{
"_validationErrors": [
{
"message": "Payload body is missing xdmEntity"
}
]
}