Läs på engelska

Dela via


Vanliga problem

Power Query

Bevara sortering

Du kan anta att om du sorterar dina data bevaras sorteringsordningen om du sorterar dina data.

Om du till exempel sorterar en försäljningstabell så att varje butiks största försäljning visas först, kan du förvänta dig att åtgärden "Ta bort dubbletter" endast returnerar den översta försäljningen för varje butik. Och den här åtgärden kan faktiskt verka fungera. Det här beteendet är dock inte garanterat.

På grund av hur Power Query optimerar vissa åtgärder, inklusive att hoppa över dem eller avlasta dem till datakällor (som kan ha sitt eget unika ordningsbeteende), är sorteringsordningen inte garanterad att bevaras genom sammansättningar (till exempel Table.Group), sammanslagningar (till exempel Table.NestedJoin) eller duplicerad borttagning (till exempel Table.Distinct).

Det finns ett antal sätt att kringgå detta. Här är några förslag:

  • Utför en sortering efter att nedströmsåtgärden har tillämpats. När du till exempel grupperar rader sorterar du den kapslade tabellen i varje grupp innan du utför ytterligare steg. Här är några exempel på M-kod som visar den här metoden: Table.Group(Sales_SalesPerson, {"TerritoryID"}, {{"SortedRows", each Table.Sort(_, {"SalesYTD", Order.Descending})}})
  • Buffrar data (med ) Table.Bufferinnan du tillämpar nedströmsåtgärden. I vissa fall gör den här åtgärden att nedströmsåtgärden bevarar den buffrade sorteringsordningen.
  • Använd rangordning. I stället för att till exempel använda Table.Distinctkan du sortera efter de kolumner som innehåller dubblettvärdena, rangordna baserat på en kolumn med bindningsbrytare (till exempel modified_date) och sedan filtrera för att behålla bara rangordningen 1 rader.

Slutsatsdragning av datatyp

Ibland kan Power Query felaktigt identifiera en kolumns datatyp. Detta beror på att Power Query härleder datatyper med endast de första 200 raderna med data. Om data i de första 200 raderna på något sätt skiljer sig från data efter rad 200 kan Power Query i slutändan välja fel typ. (Tänk på att en felaktig typ inte alltid skapar fel. Ibland är de resulterande värdena helt enkelt felaktiga, vilket gör problemet svårare att identifiera.)

Tänk dig till exempel en kolumn som innehåller heltal i de första 200 raderna (till exempel alla nollor), men som innehåller decimaltal efter rad 200. I det här fallet härleder Power Query datatypen för kolumnen till Heltal (Int64.Type). Den här slutsatsdragningen resulterar i att decimaldelarna i alla icke-heltalsnummer trunkeras.

Eller tänk dig en kolumn som innehåller textdatumvärden i de första 200 raderna och andra typer av textvärden efter rad 200. I det här fallet härleder Power Query datatypen för kolumnen till Datum. Den här slutsatsdragningen resulterar i att textvärden som inte är datum behandlas som typkonverteringsfel.

Eftersom typidentifiering fungerar på de första 200 raderna, men dataprofilering kan användas över hela datauppsättningen, kan du använda funktionen Dataprofilering för att få en tidig indikation i Uređivač upita om fel (från typidentifiering eller valfritt antal andra orsaker) utöver de översta N raderna.

Anslutningar som stängs med två skäl av fjärrvärden

När du ansluter till olika API:er kan du få följande varning:

Data source error: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host

Om du stöter på det här felet är det troligtvis ett nätverksproblem. I allmänhet är de första som ska kontrolleras med ägarna till den datakälla som du försöker ansluta till. Om de inte tror att det är de som stänger anslutningen är det möjligt att något på vägen är (till exempel en proxyserver, mellanliggande routrar/gatewayer och så vidare).

Oavsett om detta bara återskapas med data eller bara större datastorlekar är det troligt att det finns en tidsgräns för nätverket någonstans på vägen. Om det bara är med större data bör kunderna rådgöra med datakällans ägare för att se om deras API:er stöder växling, så att de kan dela upp sina begäranden i mindre segment. Annars bör alternativa sätt att extrahera data från API:et (enligt metodtips för datakällor) följas.

TLS RSA chiffersvit är inaktuella

Från och med 30 oktober 2020 används följande chiffersviter från våra servrar.

  • "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öljande lista är de chiffersviter som stöds:

  • "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"

Chiffersviter används för att kryptera meddelanden för att säkra en nätverksanslutning mellan klienter och servrar och andra servrar. Vi tar bort ovanstående lista med chiffersviter för att följa våra aktuella säkerhetsprotokoll. Från och med 1 mars 2021 kan kunder endast använda våra standard chiffersviter.

Det här är chiffersviterna som servern du ansluter till måste ha stöd för att ansluta från Power Query Online eller Power BI.

I Power Query Desktop (Power BI, Excel) kontrollerar vi inte dina chiffersviter. Om du försöker ansluta till Power Platform (till exempel Power Platform Dataflows) eller Power BI-tjänsten behöver du någon av dessa chiffersviter aktiverade i operativsystemet. Du kan antingen uppgradera Windows-version eller uppdatera Windows TLS-registret för att se till att din server slutpunkt stöder en av dessa chiffer.

För att kontrollera att servern uppfyller säkerhetsprotokollet kan du utföra ett test med hjälp av ett TLS-chiffer- och skannerverktyg. Ett exempel kan vara SSLLABS.

Kunderna måste uppgradera sina servrar före den 1 mars 2021. Mer information om hur du konfigurerar överföring av TLS-chiffersvitorder finns i hantera TLS (Transport Layer Security).

Återkallande av certifikat

En kommande version av Power BI Desktop orsakar fel i SSL-anslutningar från Desktop när certifikat i SSL-kedjan saknar status för återkallade certifikat. Det här är en ändring från det aktuella tillståndet, där återkallningen endast orsakade anslutningsfel om certifikatet uttryckligen återkallades. Andra certifikatproblem kan vara ogiltiga signaturer och certifikatets giltighetstid.

Eftersom det finns konfigurationer där återkallningsstatus kan tas bort, till exempel med företagsproxyservrar, ger vi ett annat alternativ för att ignorera certifikat som inte har återkallningsinformation. Med det här alternativet kan situationer där återkallningsinformation tas bort i vissa fall, men du inte vill sänka säkerheten helt och hållet, att fortsätta arbeta.

Det rekommenderas inte, men användarna kan fortsätta att kunna inaktivera återkallningskontroller helt och hållet.

Fel: Utvärderingen avbröts

Power Query returnerar meddelandet "Utvärderingen avbröts" när bakgrundsanalysen inaktiveras och användaren växlar mellan frågor eller stänger Uređivač upita medan en fråga håller på att uppdateras.

Fel: Nyckeln matchade inte några rader i tabellen

Det finns många orsaker till att Power Query kan returnera ett fel som inte matchar några rader i tabellen. När det här felet inträffar kan mashupmotorn inte hitta tabellnamnet som den söker efter. Orsaker till varför det här felet kan inträffa är:

  • Tabellnamnet har ändrats, till exempel i själva datakällan.
  • Kontot som används för att komma åt tabellen har inte tillräcklig behörighet för att läsa tabellen.
  • Det kan finnas flera autentiseringsuppgifter för en enskild datakälla, som inte stöds i Power BI-tjänsten när du använder personliga molnanslutningar. Det här felet kan till exempel inträffa när datakällan är en molndatakälla och flera konton används för att komma åt datakällan samtidigt med olika autentiseringsuppgifter. Om datakällan är lokal måste du använda den lokala datagatewayen.

Begränsning: Domänanslutna krav för gateway-datorer när windows-autentisering används

Om du använder Windows-autentisering med en lokal gateway måste gatewaydatorn vara domänansluten. Detta gäller alla anslutningar som har konfigurerats med "Windows-autentisering via gatewayen*. Windows-konton som används för att komma åt en datakälla kan kräva läsåtkomst till de delade komponenterna i Windows-katalogen och gatewayinstallationen.

Begränsning: OAuth2-uppdatering mellan klientorganisationer stöds inte i usluga Power BI

Om du vill ansluta till en datakälla från usluga Power BI med OAuth2 måste datakällan finnas i samma klientorganisation som usluga Power BI. Anslutningsscenarier för flera klientorganisationer stöds för närvarande inte med OAuth2.

Begränsning: Anpassad AD FS-autentiseringsslutpunkt stöds inte i usluga Power BI

Möjligheten att använda en autentiseringsslutpunkt för anpassad Active Directory usluge za ujedinjavanje (AD FS) stöds inte i usluga Power BI. Användare kan stöta på följande fel: Tokentjänsten som rapporteras av resursen är inte betrodd.

Begränsning: Gästkonton stöds inte

Det finns för närvarande inte stöd för att använda gästkonton för en klientorganisation för att ansluta till data med hjälp av Power Query-anslutningsappar.

Expression.Error: Utvärderingen resulterade i ett stackspill och kan inte fortsätta

Stackspillfel kan orsakas av en bugg i M-koden. Följande funktion skapar till exempel ett stackspill eftersom den upprepade gånger anropar tillbaka till sig själv utan någon form av slutvillkor. En funktion som anropar sig själv så här kallas för en "rekursiv" funktion.

let f = (x) => @f(x + 1) in f(0)

Här följer några vanliga sätt att lösa ett stackspill i M-koden.

  • Se till att dina rekursiva funktioner faktiskt avslutas när det förväntade slutvillkoret har nåtts.
  • Ersätt rekursion med iteration (till exempel med hjälp av funktioner som List.Transform, List.Generate eller List.Accumulate).

Expression.Error: Minnet tog slut och det går inte att fortsätta

"Slut på minne" kan orsakas av för många minnesintensiva åtgärder mot mycket stora tabeller. Följande M-kod genererar till exempel en OOM eftersom den försöker läsa in en miljard rader i minnet samtidigt.

Table.Buffer(Table.FromList({1..1000000000}, Splitter.SplitByNothing()))

För att lösa minnesfel kan du optimera minnesintensiva åtgärder som sortering, kopplingar, gruppering och distinkta objekt genom att se till att de viks till källan eller genom att ta bort dem helt och hållet där det är möjligt. Sortering är till exempel ofta onödiga.

Dataflöden

Avbryta dataflödesuppdatering

Ibland startar du en dataflödesuppdatering, men när du har startat den inser du att du vill ändra en sak till innan du uppdaterar dina data. I så fall måste du vänta tills uppdateringen är klar. Det finns för närvarande inte stöd för att stoppa en uppdatering halvvägs eftersom processen redan fungerar med att hämta data och uppdatera tabellerna i din arbetsyta eller miljö.

Vi planerar att lägga till stöd för att avbryta en dataflödesuppdatering i framtiden.