Realtime OLTP verzoeken via OData4 voor Power Apps en Power BI

Go to English version

Standaard worden OData4-consumenten gebruikt om grote hoeveelheden data te extraheren voor analytische verwerking, zoals een rapport over de verkopen van vorig jaar over alle regio’s in Power BI of Qlik. Invantive Cloud levert deze data in real-time, maar herhaalt dezelfde antwoord op dezelfde vraag na dat moment voor een configureerbare hoeveelheid tijd. Dit verbetert de prestaties aanzienlijk op sommige rapportageproducten die de neiging hebben om dezelfde data te downloaden na elke wijziging in een rapport door een rapportontwerper.

De minimale levensduur voor cache-items wordt bepaald door het abonnementstype en ligt meestal tussen 15 minuten…1 uur voor betaalde abonnementen en langer voor gratis abonnementen. Zie Differentieer OData4 cachegedrag met Power BI.

Dergelijke verzoeken worden “OLAP OData-verzoeken” genoemd.

Echter, voor gebruik met Power Apps en andere interactieve applicaties is de behoefte ontstaan aan real-time queries die actuele data bevatten. Voor dit doel is Invantive Cloud uitgebreid om OData queries met real-time tot bijna real-time actuele data bij elke aanroep mogelijk te maken. Dit stelt gebruikers in staat om operationele rapporten, interactieve applicaties en waardenlijsten te maken voor operationeel gebruik.

Dergelijke kortstondige en real-time verzoeken worden “OLTP OData-verzoeken” genoemd.

Door een Cache-Control-header toe te voegen, wordt een OData-verzoek veranderd van een OLAP- in een OLTP-verzoek. Met deze header kan een andere maximale leeftijd worden opgegeven, zoals hieronder in het eerste rode vak wordt weergegeven aan de hand van een voorbeeld van https://developer.invantive.com:

Het geconfigureerde Invantive-abonnement heeft een minimale cache-levensduur van 30 seconden voor OLTP OData-verzoeken, die wordt weergegeven in het antwoord in het tweede rode vak. De waarde voor uw abonnement kan worden gevonden als de metriek “MaxCacheLifetimeBOLOLTP”. Het is te zien dat dit antwoord real-time is berekend, zoals aangegeven door de “Miss from Invantive Response Cache” in de x-cache-header.

Wanneer een ander verzoek wordt uitgevoerd binnen de minimumwaarde (afhankelijk van het abonnementstype), zal het antwoord uit de cache komen, zoals hieronder te zien is. Anders wordt er nog een “Miss from Invantive Response Cache” met nieuwe gegevens teruggestuurd:

De maximale looptijd van OLTP OData-verzoeken die Cache-Control gebruiken om onder alle omstandigheden actuelere gegevens te krijgen, is beperkt tot een vaste waarde. Momenteel moet een verzoek binnen 60 seconden klaar zijn. Een traditioneel OLAP OData-verzoek kan tot 6 uur duren.

Realtime OLTP-verzoeken configureren in Power BI

Realtime OLTP-verzoeken kunnen in Power BI worden geconfigureerd door het OData.Feed statement te wijzigen.

Bijvoorbeeld in de volgende OData.Feed vraagt de “Cache-Control” om een maximale leeftijd van 0 seconden via #"Cache-Control" = "private,max-age=0":

let
    Source = OData.Feed("https://server/prefix/odata4", null, [Implementation="2.0", ODataVersion=4, OmitValues=ODataOmitValues.Nulls, Headers=[Referer = "MyReport", #"Cache-Control" = "private,max-age=0" ], Timeout=#duration(0,6,0,0)]),
...

Zie OData.Feed - PowerQuery M | Microsoft Learn voor alle details over OData.Feed.

Op dezelfde manier kunt u de maximaal toegestane leeftijd verhogen van de op te halen data in afwijking van hetgeen op databaseniveau in Invantive Cloud is ingesteld, bijvoorbeeld naar meerdere dagen, bijvoorbeeld naar een week met behulp van:

laat
    Bron = OData.Feed("https://server/prefix/odata4", null, [Implementation="2.0", ODataVersion=4, OmitValues=ODataOmitValues.Nulls, Headers=[Referer = "MyReport", #"Cache-Control" ="private,max-age=604800" ], Timeout=#duration(0,6,0,0)]),
...