Almindelige problemer
Du kan antage, at hvis du sorterer dine data, bevarer alle downstreamhandlinger sorteringsrækkefølgen.
Hvis du f.eks. sorterer en salgstabel, så hver butiks største salg vises først, kan du forvente, at hvis du udfører handlingen "Fjern dubletter", returneres det øverste salg for hver butik kun. Og denne handling kan faktisk synes at virke. Denne funktionsmåde er dog ikke garanteret.
På grund af den måde, Som Power Query optimerer visse handlinger på, herunder at springe dem over eller aflaste dem til datakilder (som kan have deres egen entydige sorteringsfunktion), bevares sorteringsrækkefølgen ikke med sikkerhed via sammenlægninger (f.eks. Table.Group
), fletninger (f.eks. Table.NestedJoin
) eller fjernelse af dubletter (f.eks Table.Distinct
. ).
Der er en række måder at løse dette på. Her er nogle eksempler:
- Udfør en sortering efter anvendelse af downstream-handlingen. Når du f.eks. grupperer rækker, skal du sortere den indlejrede tabel i hver gruppe, før du anvender yderligere trin. Her er et eksempel på M-kode, der demonstrerer denne fremgangsmåde:
Table.Group(Sales_SalesPerson, {"TerritoryID"}, {{"SortedRows", each Table.Sort(_, {"SalesYTD", Order.Descending})}})
- Buffer for dataene (ved hjælp af
Table.Buffer
), før downstream-handlingen anvendes. I nogle tilfælde medfører denne handling, at downstream-handlingen bevarer sorteringsrækkefølgen i buffer. - Brug rangering. I stedet for at bruge
Table.Distinct
kan du f.eks. sortere efter den eller de kolonner, der indeholder dubletværdierne, rangering baseret på en kolonne med tie breaker (f.eksmodified_date
. ) og derefter filtrere for kun at bevare rangering 1 rækker.
Nogle gange kan Power Query fejlagtigt registrere en kolonnes datatype. Dette skyldes, at Power Query udleder datatyper, der kun bruger de første 200 rækker med data. Hvis dataene i de første 200 rækker på en eller anden måde er anderledes end dataene efter række 200, kan Power Query ende med at vælge den forkerte type. Vær opmærksom på, at en forkert type ikke altid medfører fejl. Nogle gange er de resulterende værdier simpelthen forkerte, hvilket gør det sværere at registrere problemet.)
Forestil dig f.eks. en kolonne, der indeholder heltal i de første 200 rækker (f.eks. alle nuller), men som indeholder decimaltal efter række 200. I dette tilfælde udleder Power Query, at kolonnens datatype er Heltal (Int64.Type). Denne konklusion resulterer i, at decimaldelene af alle tal, der ikke er heltal, afkortes.
Eller forestil dig en kolonne, der indeholder tekstdatoværdier i de første 200 rækker og andre typer tekstværdier efter række 200. I dette tilfælde udleder Power Query, at datatypen for kolonnen er Dato. Denne konklusion medfører, at tekstværdier, der ikke er datoværdier, behandles som typekonverteringsfejl.
Da typeregistrering fungerer på de første 200 rækker, men dataprofilering kan fungere over hele datasættet, kan du overveje at bruge funktionen Dataprofilering til at få en tidlig indikation i Power Query-editor om fejl (fra typeregistrering eller et vilkårligt antal andre årsager) ud over de øverste N-rækker.
Når du opretter forbindelse til forskellige API'er, får du muligvis vist følgende advarsel:
Data source error: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host
Hvis du støder på denne fejl, er det sandsynligvis et netværksproblem. Generelt er de første personer, der skal tjekkes med, ejerne af den datakilde, du forsøger at oprette forbindelse til. Hvis de ikke tror, at det er dem, der lukker forbindelsen, er det muligt, at noget undervejs er (f.eks. en proxyserver, mellemliggende routere/gateways osv.).
Uanset om dette kun gengives med data eller kun større datastørrelser, er det sandsynligt, at der er netværkstimeout et eller andet sted på ruten. Hvis det kun er med større data, skal kunderne kontakte ejeren af datakilden for at se, om deres API'er understøtter sideinddeling, så de kan opdele deres anmodninger i mindre dele. Hvis det ikke lykkes, skal du følge alternative måder at udtrække data fra API'en (følgende bedste fremgangsmåder for datakilder).
Fra og med den 30. oktober 2020 bliver følgende krypteringsprogrammer udfaset fra vores servere.
- "TLS_RSA_WITH_AES_256_GCM_SHA384"
- "TLS_RSA_WITH_AES_128_GCM_SHA256"
- "TLS_RSA_WITH_AES_256_CBC_SHA256"
- "TLS_RSA_WITH_AES_128_CBC_SHA256"
Følgende liste er de understøttede krypteringspakker:
- "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
- "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
- "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
- "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
- "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"
- "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"
- "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
- "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
Krypteringsprogrammer bruges til at kryptere meddelelser for at sikre en netværksforbindelse mellem klienter/servere og andre servere. Vi fjerner ovenstående liste over kodepakker for at overholde de aktuelle sikkerhedsprotokoller. Fra 1. marts 2021 kan kunder kun bruge vores standardkrypteringspakker.
Dette er de krypteringspakker, som den server, du opretter forbindelse til, skal understøtte for at oprette forbindelse fra Power Query Online eller Power BI.
I Power Query Desktop (Power BI, Excel) styrer vi ikke dine krypteringspakker. Hvis du forsøger at oprette forbindelse til Power Platform (f.eks. Power Platform Dataflows) eller Power BI-tjenesten, skal du have en af disse krypteringspakker aktiveret på dit operativsystem. Du kan enten opgradere Windows-versionen eller opdatere Windows TLS-registreringsdatabasen for at sikre dig, at serverens slutpunkt understøtter en af disse krypteringer.
Hvis du vil kontrollere, at serveren overholder sikkerhedsprotokollen, kan du udføre en test ved hjælp af et TLS-krypterings- og scannerværktøj. Et eksempel kan være SSLLABS.
Kunder skal opgradere deres servere før 1. marts 2021. Du kan finde flere oplysninger om, hvordan du konfigurerer TLS-krypteringspakken, under Administrere Transport Layer Security (TLS).
En kommende version af Power BI Desktop medfører fejl i SSL-forbindelser fra Desktop, når certifikater i SSL-kæden mangler certifikattilbagekaldelsesstatus. Dette er en ændring fra den aktuelle tilstand, hvor tilbagekaldelsen kun medførte forbindelsesfejl i det tilfælde, hvor certifikatet udtrykkeligt blev tilbagekaldt. Andre certifikatproblemer kan omfatte ugyldige signaturer og certifikatudløb.
Da der er konfigurationer, hvor tilbagekaldelsesstatus kan blive fjernet, f.eks. med virksomhedens proxyservere, giver vi en anden mulighed for at ignorere certifikater, der ikke har tilbagekaldsoplysninger. Denne indstilling gør det muligt for situationer, hvor tilbagekaldelsesoplysninger fjernes i visse tilfælde, men du ikke vil sænke sikkerheden helt, for at fortsætte med at arbejde.
Det anbefales ikke, men brugerne kan fortsat slå tilbagekaldelsestjek helt fra.
Power Query returnerer meddelelsen "Evaluering blev annulleret", når baggrundsanalyse er deaktiveret, og brugeren skifter mellem forespørgsler eller lukker Power Query-editor, mens en forespørgsel er ved at blive opdateret.
Der er mange grunde til, at Power Query kan returnere en fejl om, at nøglen ikke svarede til nogen rækker i tabellen. Når denne fejl opstår, kan Miksprogrammet ikke finde det tabelnavn, der søges efter. Årsager til, at denne fejl kan opstå, omfatter:
- Tabelnavnet er blevet ændret, f.eks. i selve datakilden.
- Den konto, der bruges til at få adgang til tabellen, har ikke tilstrækkelige rettigheder til at læse tabellen.
- Der kan være flere legitimationsoplysninger for en enkelt datakilde, som ikke understøttes i Power BI-tjenesten, når du bruger personlige cloudforbindelser. Denne fejl kan f.eks. ske, når datakilden er en datakilde i skyen, og der bruges flere konti til at få adgang til datakilden på samme tid med forskellige legitimationsoplysninger. Hvis datakilden er i det lokale miljø, skal du bruge datagatewayen i det lokale miljø.
Brug af Windows-godkendelse med en gateway i det lokale miljø kræver, at gatewaycomputeren er domænetilsluttet. Dette gælder for alle forbindelser, der er konfigureret med "Windows-godkendelse via gatewayen*. Windows-konti, der bruges til at få adgang til en datakilde, kan kræve læseadgang til de delte komponenter i Windows-mappen og gatewayinstallationen.
Hvis du vil oprette forbindelse til en datakilde fra Power BI-tjeneste ved hjælp af OAuth2, skal datakilden være i samme lejer som Power BI-tjeneste. I øjeblikket understøttes forbindelsesscenarier med flere lejere ikke med OAuth2.
Muligheden for at bruge et brugerdefineret AD FS-godkendelsesslutpunkt (Active Directory Federation Services) understøttes ikke i Power BI-tjeneste. Brugerne kan støde på følgende fejl: Der er ikke tillid til den tokentjeneste, der er rapporteret af ressourcen.
Brug af gæstekonti for en lejer til at oprette forbindelse til data ved hjælp af Power Query-connectors understøttes ikke i øjeblikket.
Stakoverløbsfejl kan skyldes en fejl i din M-kode. Følgende funktion opretter f.eks. et stakoverløb, fordi den gentagne gange kalder sig selv igen uden nogen form for slutbetingelse. En funktion, der kalder sig selv som denne, kaldes en "rekursiv" funktion.
let f = (x) => @f(x + 1) in f(0)
Her er nogle almindelige måder at løse et stakoverløb i din M-kode på.
- Sørg for, at dine rekursive funktioner faktisk afsluttes, når den forventede slutbetingelse er nået.
- Erstat rekursion med gentagelse (f.eks. ved hjælp af funktioner som List.Transform, List.Generate eller List.Accumulate).
"Der er ikke mere hukommelse" fejl (eller OOMs) kan skyldes, at der udføres for mange hukommelsestunge handlinger i forbindelse med meget store tabeller. Følgende M-kode producerer f.eks. en OOM, fordi den forsøger at indlæse en milliard rækker i hukommelsen på én gang.
Table.Buffer(Table.FromList({1..1000000000}, Splitter.SplitByNothing()))
Du kan løse hukommelsesfejl ved at optimere hukommelsestunge handlinger, f.eks. sorteringer, joinforbindelser, gruppering og distinkte, ved at sikre, at de foldes til kilden, eller ved at fjerne dem helt, hvor det er muligt. Sorteringer er f.eks. ofte unødvendige.
Nogle gange starter du en opdatering af dataflowet, men når du har startet den, indser du, at du vil ændre én ting mere, før du opdaterer dine data. I så fald skal du vente, indtil opdateringen er fuldført. Stop af en opdatering midtvejs, da processen allerede arbejder på at hente dataene og opdatere tabellerne i dit arbejdsområde eller miljø, understøttes ikke i øjeblikket.
Vi planlægger at tilføje understøttelse af annullering af en opdatering af dataflowet i fremtiden.