Felsökningsguide för batchimport

Den här dokumentationen hjälper dig att svara på vanliga frågor om Adobe Experience Platform Batch Data Ingestion API:er.

Batch-API-anrop

Är batchar omedelbart aktiva efter att HTTP 200 OK har tagits emot från CompleteBatch-API:t?

The 200 OK svar från API:t innebär att batchen har godkänts för bearbetning - den är inte aktiv förrän den övergår till det slutliga tillståndet, till exempel Aktiv eller Fel.

Är det säkert att försöka köra API-anropet CompleteBatch igen när det inte fungerar?

Ja - det är säkert att försöka köra API-anropet igen. Trots felet är det möjligt att åtgärden lyckades och att batchen accepterades. Klienter förväntas dock ha återförsöksfunktioner om API-fel uppstår, och de uppmuntras att försöka igen. Om åtgärden lyckades returneras API:t, även efter nya försök.

När ska API:t för stor filöverföring användas?

Den rekommenderade filstorleken för API:t för stor filöverföring är 256 MB eller större. Mer information om hur du använder API:t för stor filöverföring finns här.

Varför misslyckas anropet till API:t för slutförd stor fil?

Om segment av en stor fil hittas som överlappar eller saknas svarar servern med en felaktig HTTP 400-begäran. Detta kan inträffa eftersom det är möjligt att överföra överlappande segment, eftersom intervallvalideringar görs när filen slutförs, när filen sammanfogas.

Inmatningssupport

Vilka importformat stöds?

För närvarande stöds både Parquet och JSON. CSV stöds i äldre versioner - data kommer att befordras till överordnad och preliminära kontroller, men inga moderna funktioner som konvertering, partitionering eller radvalidering kommer att stödjas.

Var ska batchindataformatet anges?

Indataformatet ska anges när gruppen skapas i nyttolasten. Ett exempel på hur du anger batchindataformatet finns nedan:

curl -X POST "https://platform.adobe.io/data/foundation/import/batches" \
  -H "accept: application/json" \
  -H "x-gw-ims-org-id: {ORG_ID}" \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  -H "x-api-key: {API_KEY}"
  -d '{
          "datasetId": "{DATASET_ID}",
           "inputFormat": {
                "format": "json"
           }
    }'

Varför visas inte de överförda data i datauppsättningen?

För att data ska kunna visas i datauppsättningen måste gruppen markeras som slutförd. Alla filer som du vill importera måste överföras innan du kan markera gruppen som slutförd. Ett exempel på hur du markerar en batch som slutförd visas nedan:

curl -X POST "https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}?action=COMPLETE" \
  -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}'

Hur importeras flerradig JSON?

Om du vill importera flerradig JSON, isMultiLineJson Flagga måste anges när gruppen skapas. Ett exempel på detta visas nedan:

curl -X POST "https://platform.adobe.io/data/foundation/import/batches" \
  -H "accept: application/json" \
  -H "x-gw-ims-org-id: {ORG_ID}" \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  -H "x-api-key: {API_KEY}"
  -d '{
          "datasetId": "{DATASET_ID}",
           "inputFormat": {
                "format": "json",
                "isMultiLineJson": true
           }
      }'

Vad är skillnaden mellan JSON-rader (enradig JSON) och flerradig JSON?

För JSON-rader finns det ett JSON-objekt per rad. Exempel:

{"string":"string1","int":1,"array":[1,2,3],"dict": {"key": "value1"}}
{"string":"string2","int":2,"array":[2,4,6],"dict": {"key": "value2"}}
{"string":"string3","int":3,"array":[3,6,9],"dict": {"key": "value3", "extra_key": "extra_value3"}}

För JSON med flera rader kan ett objekt uppta flera rader, medan alla objekt kapslas in i en JSON-array. Exempel:

[
    {"string":"string1","int":1,"array":[1,2,3],"dict": {"key": "value1"}},
    {"string":"string2","int":2,"array":[2,4,6],"dict": {"key": "value2"}},
    {
        "string": "string3",
        "int": 3,
        "array": [
            3,
            6,
            9
        ],
        "dict": {
            "key": "value3",
            "extra_key": "extra_value3"
        }
    }
]

Som standard Batch Data Ingestion använder enkelradig JSON.

Stöds CSV-förtäring?

CSV-inmatning stöds bara för platta scheman. Inmatning av hierarkiska data i CSV stöds för närvarande inte.

För att få alla dataöverföringsfunktioner måste formaten JSON och Parquet användas.

Vilka typer av validering utförs på data?

Det finns tre valideringsnivåer för data:

  • Schema - Batchmatning säkerställer att schemat för de inmatade data matchar datasetens schema.
  • Datatyp - gruppinmatning säkerställer att typen för varje inmatat fält matchar typen som definieras i datasetens schema.
  • Begränsningar - Gruppinmatning säkerställer att begränsningar som"Obligatorisk","Uppräkning" och"format" definieras korrekt i schemadefinitionen.

Hur kan en redan skickad batch ersättas?

En inkapslad batch kan ersättas med funktionen Uppspelning i grupp. Mer information om batchrepriser finns här.

Hur övervakas batchintaget?

När en batch har signalerats för batchbefordran kan batchbearbetningsförloppet övervakas med följande begäran:

curl -X GET "https://platform.adobe.io/data/foundation/catalog/batches/{BATCH_ID}" \
  -H "x-gw-ims-org-id: {ORG_ID}" \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  -H "x-api-key: {API_KEY}"

Med den här förfrågan får du ett svar som liknar detta:

200 OK
{
    "{BATCH_ID}":{
        "imsOrg":"{ORG_ID}",
        "created":1494349962314,
        "createdClient":"{API_KEY}",
        "createdUser":"{USER_ID}",
        "updatedUser":"{USER_ID}",
        "completed":1494349963467,
        "externalId":"{EXTERNAL_ID}",
        "status":"staging",
        "errors":[],
    }
}

Batchlägen

Vilka är de möjliga batchtillstånden?

En batch kan i sin livscykel gå igenom följande lägen:

Status Data skrivna till Överordnad Beskrivning
Övergiven Klienten kunde inte slutföra batchen inom den förväntade tidsramen.
Avbruten Klienten har explicit anropat via Batch Data Ingestion API:er, en avbrottsåtgärd för den angivna gruppen. När en batch är i inläst tillstånd kan gruppen inte avbrytas.
Aktiv/Slutförd x Batchen har befordrats från fas till överordnad och är nu tillgänglig för nedladdning. Obs! Aktiv och Slutfört används omväxlande.
Arkiverad Batchen har arkiverats i kylförvaring.
Misslyckades/misslyckades Ett terminaltillstånd som antingen beror på felaktig konfiguration och/eller felaktiga data. Ett åtgärdbart fel registreras, tillsammans med gruppen, så att klienter kan korrigera och skicka data igen. Obs! Misslyckades och Misslyckades används omväxlande.
Inaktiv x Batchen befordrades, men har antingen återställts eller gått ut. Batchen kommer inte längre att vara tillgänglig för nedströmsförbrukning, men underliggande data kommer att vara Överordnad tills de har sparats, arkiverats eller på annat sätt tagits bort.
Läser in Klienten skriver för närvarande data för gruppen. Batchen är not redo för befordran, nu.
Inläst Klienten har slutfört skrivningen av data för batchen. Batchen är klar för befordran.
Bevarad Data har tagits bort från Överordnad och i ett särskilt arkiv i Adobe Data Lake.
Mellanlagring Klienten har signalerat batchen för befordran och data mellanlagras för förbrukning nedströms.
Försöker igen Klienten har signalerat batchen för befordran, men på grund av ett fel görs ett nytt försök att bearbeta batchen av en tjänst för batchövervakning. Det här läget kan användas för att tala om för kunderna att det kan dröja med inhämtningen av data.
Stängd Klienten har signalerat batchen för befordran, men efter n försök av en batchövervakningstjänst har batchkampanjen avstannat.

Vad betyder "Förproduktion" för batchar?

När en batch är i"Förproduktion" innebär det att batchen har signalerats för befordran och att data mellanlagras för förbrukning nedströms.

Vad innebär det när en batch är"Försöker igen"?

När en batch är i "Försöker igen" betyder det att batchens dataintag tillfälligt har stoppats på grund av tillfälliga problem. När detta händer behöver kunden inte göra något.

Vad innebär det när en batch är"förlamad"?

När en batch är i "Staplad" betyder det att Data Ingestion Services har problem med att importera batchen och alla återförsök har uttömts.

Vad innebär det om en batch fortfarande är"Läser in"?

När en batch är i"Loading" betyder det att API:t CompleteBatch inte har anropats för att befordra gruppen.

Finns det något sätt att veta om en batch har importerats utan problem?

När batchstatusen är Aktiv har batchen importerats. Följ de detaljerade stegen för att ta reda på batchstatus tidigare.

Vad händer efter att en batch har misslyckats?

När en batch misslyckas kan orsaken till att den misslyckas identifieras i errors nyttolastens sektion. Exempel på fel finns nedan:

    "errors":[
        {
            "code":"106",
            "description":"Dataset file is empty. Please upload file with data.",
            "rows":[]
        },
        {
            "code":"118",
            "description":"CSV file contains empty header row.",
            "rows":[]
        }
    ]

När felen har korrigerats kan batchen överföras igen.

Gruppsupport

Hur ska grupper tas bort?

Istället för att ta bort direkt från Catalogbör satser tas bort med någon av metoderna nedan:

  1. Om batchen pågår bör batchen avbrytas.
  2. Om batchen kan mastras bör batchen återställas.

Vilka batchnivåmätvärden finns tillgängliga?

Följande batchnivåmått är tillgängliga för batchar i tillståndet Aktiv/Slutfört:

Mått Beskrivning
inputByteSize Det totala antalet byte som mellanlagrats för Data Ingestion Services att bearbeta.
inputRecordSize Det totala antalet rader som mellanlagrats för Data Ingestion Services att bearbeta.
outputByteSize Det totala antalet byte som skickats ut av Data Ingestion Services till Data Lake.
outputRecordSize Det totala antalet rader som matats ut av Data Ingestion Services till Data Lake.
partitionCount Det totala antalet partitioner som skrivs till Data Lake.

Varför är mätvärden inte tillgängliga för vissa batchar?

Det finns två anledningar till att mätvärden kanske inte är tillgängliga i din batch:

  1. Batchen kunde aldrig konvertera den till tillståndet Aktiv/Slutfört.
  2. Batchen befordrades med en äldre befordringssökväg, till exempel CSV-inmatning.

Vad betyder de olika statuskoderna?

Statuskod Beskrivning
106 Datauppsättningsfilen är tom.
118 CSV-filen innehåller en tom rubrikrad.
200 Batchen har godkänts för bearbetning och kommer att övergå till ett slutligt tillstånd, till exempel Aktiv eller Misslyckad. När batchen har skickats kan den övervakas med GetBatch slutpunkt.
400 Felaktig begäran. Returneras om det finns några segment som saknas eller överlappar varandra i en grupp.

På denna sida