Hopp til hovedinnhold

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.