OData - aanbevolen procedures en probleemoplossing
Haal het beste uit uw OData-client met deze aanbevolen procedures en tips voor probleemoplossing.
Prestaties
De prestaties van de OData-services zijn afhankelijk van het type gegevens dat u opvraagt. Het lezen van 1 miljoen gegevenspunten duurt bijvoorbeeld ongeveer 2,5 tot 3 minuten (6000 gegevenspunten per seconde). Elke volledige aanvraag duurt gemiddeld 120 ms en de OData-client kan extra overhead toevoegen voor (gegevens)verwerking.
Volg deze aanbevolen procedures om de beste en meest betrouwbare prestaties te waarborgen:
- Gebruik geen expressies met
OR
of uitvouwbare tabellen. - Gebruik indien mogelijk meerdere query's.
- Gebruik incrementeel vernieuwen.
- Partitioneer uw gegevenssets indien mogelijk.
- Bewaar alleen de gegevens die u nodig hebt. Verwijder onnodige kolommen en gegevens.
- Bewaar historische gegevens in een afzonderlijk rapport als u ze niet dagelijks nodig hebt. Vernieuw het rapport met historische gegevens wanneer u dat nodig hebt.
Effectieve query's schrijven
De OData-services kunnen meerdere gelijktijdige verzoeken parallel verwerken. OData-clients kunnen wanneer mogelijk ook meerdere query's tegelijk verzenden.
Het is beter om meerdere query's samen te stellen en te gebruiken in plaats van één complexe query met bijvoorbeeld OR
-expressies of uitbreidingen. Een enkele complexe query moet opeenvolgend worden herhaald met de toegevoegde retourlatentie voor elke aanvraag.
Download de gegevens met behulp van meerdere query's en voeg de resulterende tabellen samen in uw OData-client, zodat u met de tabellen kunt werken alsof het één tabel betreft.
Incrementeel vernieuwen gebruiken
Incrementele vernieuwing maakt grote gegevenssets mogelijk met de volgende voordelen:
- Alleen gewijzigde gegevens hoeven te worden vernieuwd.
- U hoeft geen langdurige verbindingen met bronsystemen te onderhouden.
- Er zijn minder gegevens om te vernieuwen, dus geheugen en andere bronnen worden minder belast.
Elke OData-client kan andere functies voor incrementele vernieuwing hebben. Meer informatie over Microsoft Power BI vindt u in Incrementele vernieuwing voor semantische modellen in Power BI.
Grote gegevenssets partitioneren
Als u grote gegevenssets moet downloaden, kunt u deze partitioneren en een afzonderlijke query gebruiken om elke partitie te lezen. Sommige OData-clients, zoals Microsoft Power BI kunnen meerdere query's tegelijkertijd verwerken. Door de gegevensset te partitioneren kunt u de prestaties aanzienlijk verbeteren.
Als u bijvoorbeeld gegevenspunten van de afgelopen twee jaar leest, kunt u proberen de query op te splitsen in twee query's, waarbij elke query één jaar aan gegevens leest. Voeg vervolgens de tabellen samen in Power BI.
Naamgeving van eigenschappen in metagegevens en CDF RAW
De eigenschapssleutels voor metagegevens en het CDF-faseringsgebied (RAW) moeten geldige ID's zijn en mogen alleen letters, cijfers of onderstrepingstekens bevatten. Andere tekens worden door de OData-services omgezet in een onderstrepingsteken. Voor de beste en meest voorspelbare resultaten moeten de ingevoerde gegevens de volgende naamgevingsconventie voor eigenschapssleutels volgen: ^[a-zA-Z][_a-za-z0-9]\*[a-zA-Z0-9]\$
.
Probleemoplossing
Vind informatie die u helpt bij het oplossen van problemen met CDF als gegevensbron voor OData-clients.
Query's duren te lang
Een CDF-project kan honderden miljoenen rijen met gegevens bevatten en het is niet haalbaar om deze allemaal in een OData-client te laden. Als uw query uren duurt, probeert u waarschijnlijk te veel gegevens te laden.
Zie Items in gegevensmodellen filteren en Assetgerichte resourcetypen filteren voor meer informatie over de filtermogelijkheden die door de OData-services worden ondersteund.
Niet alle resultaten worden opgehaald
Als u minder resultaten krijgt dan verwacht, gebruikt u mogelijk een filterfunctie die niet wordt ondersteund door CDF, bijvoorbeeld startswith
voor de kolom Naam voor TimeSeries.
Zie Items in gegevensmodellen filteren en Assetgerichte resourcetypen filteren voor meer informatie over de filtermogelijkheden die door de OData-services worden ondersteund.
Kan geen minimale waarden ophalen van CDF RAW
Als u gegevens uit het CDF-faseringsgebied (CDF RAW) in een OData-client gebruikt, kunnen er problemen optreden bij het ophalen van kleine getallen in exponentiële notatie.
CDF RAW heeft geen schema, maar de OData-bibliotheken in sommige OData-clients, zoals Power BI, proberen de juiste indeling voor de gegevens te selecteren. Momenteel kiest Power BI de verkeerde decoder voor kleine getallen in exponentiële notatie, en mogelijk krijgt u een foutmelding met de volgende strekking:
DataSource,Error: OData: Cannot convert the literal '2.89999206870561 to the expected type 'Edm.Decimal',
U kunt dit probleem als volgt oplossen: voer de waarden in CDF RAW in als tekenreeksen in plaats van getallen en converteer de tekenreeksen vervolgens terug naar getallen in Power BI, bijvoorbeeld via de M-functie Decimal.From
Power Query. De precisie blijft behouden. De meeste JSON-decoders accepteren tekenreeksen als getallen, dus clients die getallen verwachten, zullen nog steeds werken.