OData – anbefalte fremgangsmåter og feilsøking
Få mest mulig ut av OData-klienten med disse tipsene om anbefalte fremgangsmåter og feilsøking.
Ytelse
Ytelsen til OData-tjenesten avhenger av typen data du bruker. Det tar for eksempel rundt 2,5 til 3 minutter å lese 1 million datapunkter (6000 datapunkter per sekund). Hver komplette forespørsel tar 120 ms i gjennomsnitt, og OData-klienten kan komme til å legge til ekstra responstid for behandling og datahåndtering.
Følg disse tipsene til anbefalte fremgangsmåter for å sikre at du får den beste og mest pålitelige ytelsen:
- Ikke bruk
OR
-uttrykk eller utvidbare tabeller. - Bruk flere spørringer når det er mulig.
- Bruk inkrementell oppdatering.
- Del opp datasett hvis det er mulig.
- Behold bare dataene du trenger. Fjern unødvendige kolonner og data.
- Oppbevar historiske data i en egen rapport hvis du ikke trenger dem daglig. Oppdater rapporten med historiske data når du trenger dataene.
Skriv effektive spørringer
OData-tjenestene godtar flere samtidige forespørsler og behandler forespørslene parallellt. OData-klienter kan også sende ut flere spørringer samtidig når det er mulig.
Det er bedre å skrive og bruke flere spørringer i stedet for én kompleks spørring med for eksempel OR
-uttrykk eller utvidelser. Én enkelt kompleks spørring må repeteres sekvensielt med den ekstra rundtur-ventetiden for hver forespørsel.
Last ned dataene ved hjelp av flere spørringer, og koble resultattabellene sammen i OData-klienten, slik at du kan jobbe med tabellene som om de var én enkelt tabell.
Bruke inkrementell oppdatering
Inkrementell oppdatering gjør det mulig å ha store datasett, noe som har følgende fordeler:
- Bare data som er endret, må oppdateres.
- Du trenger ikke å opprettholde langtidskjørende tilkoblinger til kildesystemer.
- Færre data å oppdatere reduserer den samlede minnebruken og bruken av andre ressurser.
Hver OData-klient kan ha ulike funksjoner for inkrementell oppdatering. For Microsoft Power BI kan du se Trinnvis oppdatering og sanntidsdata for semantiske modeller.
Del opp store datasett
Hvis du trenger å laste ned store datasett, kan du dele dem opp og ha en egen spørring for å lese hver partisjon. Enkelte OData-klienter, for eksempel Microsoft Power BI, kan behandle flere spørringer samtidig. Det å dele opp datasettet kan øke ytelsen betydelig.
Hvis du for eksempel avleser datapunkter fra de siste to årene, kan du prøve å dele opp spørringen i to spørringer, der hver spørring avleser ett år med data. Deretter binder du sammen tabellene i Power BI.
Gi navn til egenskaper i metadata og CDF RAW
Egenskapsnøkler for metadata og CDF-landingssonen (RAW) må være gyldige identifikatorer og kan bare inneholde bokstaver, tall eller understreker. OData-tjenesten skriver om andre tegn til understrek. For å få de beste og mest forutsigbare resultatene må du sørge for at dataene som er lagt inn, følger disse navnereglene for egenskapsnøkler: ^[a-zA-Z][_a-za-z0-9]\*[a-zA-Z0-9]\$
.
Feilsøking
Finn informasjon som kan hjelpe deg med å feilsøke problemer med CDF som datakilde for OData-klienter.
Spørringer tar for lang tid
Et CDF-prosjekt kan inneholde hundrevis eller millioner av rader med data, og det er ikke mulig å laste alle inn i en OData-klient. Dersom spørringen tar flere timer, er det trolig fordi du prøver å laste inn for mye data.
Se Filtrere elementer i datamodeller og Filtrere asset-centric ressurstyper for å lære om hvilke filtreringsfunksjoner som støttes av OData-tjenestene.
Du får ikke alle resultatene
Hvis du får færre resultater enn forventet, kan det hende du bruker en filtreringsfunksjon som CDF ikke støtter, for eksempel startswith
i kolonnen Navn for Tidsserier.
Se Filtrere elementer i datamodeller og Filtrere asset-centric ressurstyper for å lære om hvilke filtreringsfunksjoner som støttes av OData-tjenestene.
Kan ikke hente minimumsverdier fra CDF RAW
Hvis du bruker data fra CDF-landingssonen, CDF RAW, i en OData-klient, kan du få problemer med å hente små tall i eksponentiell notasjon.
CDF RAW har ikke noe skjema, men OData-bibliotekene i noen OData-klienter, for eksempel Power BI, prøver å velge riktig format for dataene. Nå velger Power BI feil dekoder for små tall i eksponentiell notasjon, og det kan hende du får en feil som ligner på denne:
DataSource,Error: OData: Cannot convert the literal '2.89999206870561 to the expected type 'Edm.Decimal',
Du kan løse problemet ved å hente verdiene inn i CDF RAW som strenger i stedet for tall, og konvertere strengene tilbake til tall i Power BI, for eksempel med Decimal.From
Power Query M-funksjonen. Du mister ikke presisjon, og ettersom de fleste JSON-dekodere godtar strenger for tall, vil klienter som forventer tall, fortsatt fungere.