Sedan en kort tid tillbaka använder jag ExactOnlineREST.Incremental.TransactionLinesIncremental@eol via Invantive Bridge Online (OData4) i Excel/Power BI. Jag förväntade mig att efter den första fullständiga inläsningen skulle vid varje uppdatering endast delta hämtas och bearbetas: ändrade och borttagna rader sedan föregående gång. Det jag ser i loggningen avviker från detta. Jag undrar om detta är normalt beteende eller om något är fel.
Miljö
- Invantive Bridge Online 26.0.286
- Bokföring med cirka 170 000 rader för den inkrementella tabellen
- HTTP disk cache 4 timmar, Bridge respons cache 15 minuter
Vad jag ser i IncrementalLoadEventLogEntries
- Efter delta följer vid nästan varje uppdatering en återställning baserad på radantalet: “Full reload of incremental cache … since the current cache row count … deviates too much from the calculated allowed minimum row count …”. Därefter följer “Reconstructing. Do not reuse old data. Full reload…”.
- Vid varje uppdatering står det "Timestamp moved from to " med tomma värden, och “No need to update incremental results since there was no previous version”.
- Flera gånger: “Can’t find all data files for most recent download … Expecting 2 data files, found 0”.
Vad jag ser i Session I/O’s
- Delta i sig verkar fungera bra:
sync/Financial/TransactionLines?$filter=Timestamp gt …Lmed endast ändrade rader. - Därefter följer dock cirka 170 sidor med hela tabellen. Så länge disk cachen är giltig kommer de från cachen, men en uppdatering tar ändå 60 till 80 sekunder.
- Deleted API frågas vid varje uppdatering från
Timestamp gt 0Lochgt 1L, vardera 4 sidor. Jag hade förväntat att även denna skulle starta från senaste observerade tidsstämpel. - Påföljande uppdateringar startar med samma
Timestamp gt …L-värde. Tidsstämpeln verkar alltså inte uppdateras efter ett delta, vilket gör att delta ökar. - Om disk cachen har löpt ut hämtas den fullständiga inkrementella tabellen på nytt från Exact efter delta (cirka 220 faktiska anrop, över 3 till 8 minuter för endast denna tabell).
Mina observationer
Före delta matchar den sparade kopian exakt $count. Efter bearbetning av de drygt 3 000 borttagna ID:n från Deleted API är det cirka 3 000 rader färre. Det verkar som att ID:n som rapporteras som borttagna fortfarande existerar i Exact, vilket orsakar att radkontroll till slut resulterar i en fullständig omladdning. Men kanske tolkar jag detta fel.
Mina frågor
- Är det normalt att hela tabellen rekonstrueras efter varje delta?
- Är det normalt att Deleted API alltid läses från tidsstämpel 0 och att senaste observerade tidsstämpel inte uppdateras?
- Är min misstanke om de borttagna ID:n korrekt, eller finns det någon annan förklaring till det avvikande radantalet?
- Kan detta vara relaterat till det som nämndes i detta ämne om release 26.0 angående inkrementella filer?
Om detta inte är det förväntade beteendet: hur kan jag lösa det, så att endast delta bearbetas?
Jag kan skicka exportfiler från händelselogg och Session I/O på begäran.
