Lue englanniksi

Jaa


Yleisiä ongelmia

Power Query

Lajittelun säilyttäminen

Voit olettaa, että jos lajittelet tiedot, kaikki jatkotoiminnot säilyttävät lajittelujärjestyksen.

Jos esimerkiksi lajittelet myyntitaulukon niin, että kunkin myymälän suurin myynti näytetään ensin, saatat olettaa, että Poista kaksoiskappaleet -toiminnon tekeminen palauttaa vain kunkin myymälän ylimmän myynnin. Tämä toiminto saattaa itse asiassa vaikuttaa toimivan. Tämä ei kuitenkaan ole taattua.

Koska Power Query optimoi tietyt toiminnot, kuten niiden ohittaminen tai niiden lataaminen tietolähteisiin (joilla voi olla oma ainutlaatuinen järjestystoimintansa), lajittelujärjestystä ei taata säilytetä koosteiden (kuten Table.Group), yhdistämisten (kuten Table.NestedJoin), tai kaksoiskappaleiden poistamisen (kuten Table.Distinct).

Voit kiertää tämän useilla tavoilla. Tässä muutamia ehdotuksia:

  • Suorita lajittelu sen jälkeen, kun olet soveltanut jatkokäsittelytoiminnon. Jos esimerkiksi ryhmittelet rivejä, lajittele sisäkkäinen taulukko kuhunkin ryhmään, ennen kuin suoritat lisävaiheita. Tässä on joitakin M-mallikoodeja, jotka esittelevät tämän lähestymistavan: Table.Group(Sales_SalesPerson, {"TerritoryID"}, {{"SortedRows", each Table.Sort(_, {"SalesYTD", Order.Descending})}})
  • Puskuroi tiedot (käyttäen Table.Buffer) ennen jatkokäsittelytoiminnon käyttämistä. Joissakin tapauksissa tämä toiminto aiheuttaa sen, että loppuvaiheen toiminto säilyttää puskuroitua lajittelujärjestystä.
  • Käytä sijoitusta. -toiminnon käyttämisen Table.Distinctsijaan voit esimerkiksi järjestää sarakkeiden mukaan, jotka sisältävät arvojen kaksoiskappaleet, sijoittaa sijan tasanvaihtosarakkeen perusteella (kuten modified_date), ja suodattaa sitten, jotta vain yhden rivin sijoitus säilyy.

Tietotyypin tunnistus

Joskus Power Query saattaa tunnistaa virheellisesti sarakkeen tietotyypin. Tämä johtuu siitä, että Power Query päätellä tietotyypit käyttäen vain 200 ensimmäistä tietoriviä. Jos ensimmäisten 200 rivin tiedot poikkeavat jotenkin rivin 200 jälkeisistä tiedoista, Power Query voi lopulta poimia väärän tyypin. (Huomaa, että virheellinen tyyppi ei aina tuota virheitä. Joskus tuloksena saatavat arvot ovat yksinkertaisesti virheellisiä, mikä vaikeuttaa ongelman havaitsemista.)

Kuvitellaan esimerkiksi sarake, joka sisältää kokonaislukuja 200 ensimmäisen rivin sisällä (kuten kaikki nollit), mutta sisältää desimaalilukuja rivin 200 jälkeen. Tässä tapauksessa Power Query päätetään sarakkeen tietotyypiksi Kokonaisluku (Int64.Type). Tämä johtopäätös johtaa kaikkien muiden kuin kokonaislukujen desimaaliosaan, jotka katkaistaan.

Voit myös kuvitella sarakkeen, joka sisältää tekstimuotoisia päivämääräarvoja 200 ensimmäisen rivin sisällä ja muuntyyppisiä tekstiarvoja rivin 200 jälkeen. Tässä tapauksessa Power Query päätetään sarakkeen tietotyypiksi Päivämäärä. Tämä johtopäätös johtaa siihen, että muita kuin päivämäärän tekstiarvoja käsitellään tyypin muuntovirheinä.

Koska tyypin havaitseminen toimii ensimmäisillä 200 rivillä, mutta tietojen profilointi voi toimia koko tietojoukolle, voit harkita tietojen profilointitoiminnon käyttämistä saadaksesi aikaisen ilmoituksen virheistä Päringuredaktor (tyypin tunnistamisesta tai mistä tahansa muista syistä) ylimpien N rivien ulkopuolelle.

Etäisännän väkisin sulkemat yhteydet

Kun muodostat yhteyden eri ohjelmointirajapintoihin, saatat saada seuraavan varoituksen:

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

Jos kohtaat tämän virheen, kyseessä on todennäköisesti verkko-ongelma. Yleensä ensimmäiset, joiden kanssa haluat tarkistaa, ovat sen tietolähteen omistajat, johon yrität muodostaa yhteyden. Jos käyttäjä ei usko olevansa se, joka sulkee yhteyden, se voi olla matkan varrella (esimerkiksi välityspalvelin, välireitittimet/yhdyskäytävät ja niin edelleen).

Riippumatta siitä, toistuuko tämä vain tiedoilla tai vain suuremmilla tietokooilla, on todennäköistä, että reitillä on jossain vaiheessa verkon aikakatkaisua. Jos tietoja on vain enemmän, asiakkaiden tulee neuvotella tietolähteen omistajan kanssa, tukevatko niiden ohjelmointirajapinnat sivutustoimintoa, jotta he voivat jakaa pyyntönsä pienempiin lohkoihin. Jos tämä ei onnistu, on noudatettava vaihtoehtoisia tapoja poimia tietoja ohjelmointirajapinnasta (seuraavat tietolähteen parhaat käytännöt).

TLS RSA cipher -paketit ovat vanhentuneet

30.10.2020 alkaen seuraavat cipher-paketit ovat vanhentuneet palvelimiltamme.

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

Seuraavassa on lueteltu tuetut salakirjoituspaketit:

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

Cipher-pakettien avulla salataan viestit, jotta voidaan suojata verkkoyhteys asiakkaiden ja palvelimien sekä muiden palvelimien välillä. Edellä olevassa luettelossa olevat cipher-paketit poistetaan, sillä ne eivät ole nykyisten suojausprotokollien mukaisia. 1.3.2021 lähtien asiakkaat voivat käyttää vain cipher-standardipakettejamme.

Nämä ovat salakirjoituspaketteja, joihin yhteys muodostetaan, ja joiden avulla muodostetaan yhteys Power Query Onlinesta tai Power BI:stä.

Power Query Desktopissa (Power BI ja Excel) emme hallitse salakirjoituspakettejasi. Jos yrität muodostaa yhteyden Power Platformiin (esimerkiksi Power Platform -tietovuot) tai Power BI -palveluun, tarvitset jonkin näistä cipher-paketeista käytössä käyttöjärjestelmässäsi. Voit joko päivittää Windows-version tai päivittää Windowsin TLS-rekisterin, jotta voit varmistaa, että palvelimen päätepiste tukee jotain näistä salausohjelmistopaketeista.

Jos haluat varmistaa, että palvelin noudattaa suojausprotokollaa, voit suorittaa testin TLS-salaus- ja skannerityökalulla. Yksi esimerkki tästä voi olla SSLLABS.

Asiakkaiden on päivitettävä palvelimensa ennen 1.3.2021. Lisä tietoja TLS Cipher Suite -tilausten määrittämisestä on kohdassa Transport Layer Securityn (TLS) hallinta.

Varmenteen kumoaminen

Tuleva Power BI Desktop -versio aiheuttaa SSL-yhteysvirheen Desktopista, kun SSL-ketjun kaikista varmenteista puuttuu varmenteen kumoamisen tila. Tämä on muutos nykyisestä tilasta, jossa kumoaminen aiheutti vain yhteyden epäonnistumisen tapauksessa, jossa varmenne on nimenomaisesti kumottu. Muita varmenneongelmia voivat olla virheelliset allekirjoitukset ja varmenteen vanhentuminen.

Koska on olemassa määrityksiä, joissa kumoamisen tila saatetaan poistaa, kuten yrityksen välityspalvelimien tapauksessa, annamme toisen vaihtoehdon ohittaa varmenteet, joissa ei ole kumoamistietoja. Tämän asetuksen avulla voi jatkaa työskentelyä tilanteissa, joissa tietojen kumoamisesta poistetaan tietyissä tapauksissa, mutta et halua pienentää suojausta kokonaan.

Tätä ei suositella, mutta käyttäjät voivat edelleen poistaa kumoustarkistukset käytöstä kokonaan.

Virhe: Arviointi peruutettiin

Power Query palauttaa viestin "Arviointi peruutettiin", kun tausta-analyysi on poistettu käytöstä ja käyttäjä vaihtaa kyselyjen välillä tai sulkee Päringuredaktor, kun kyselyä päivitetään.

Virhe: Avain ei täsmännyt taulukon minkään rivien kanssa

On monia syitä, miksi Power Query saattaa palauttaa virheen, jonka vuoksi avain ei vastannut taulukon rivejä. Kun tämä virhe ilmenee, koostemoduuli ei löydä haettavaa taulukon nimeä. Syitä tämän virheen sattumalle ovat seuraavat:

  • Taulukon nimeä on muutettu, esimerkiksi itse tietolähteessä.
  • Tilillä, jota käytetään taulukon käyttämiseen, ei ole riittäviä oikeuksia taulukon lukemiseen.
  • Yhdelle tietolähteelle voi olla useita tunnistetietoja, joita ei tueta Power BI -palvelussa, kun käytät henkilökohtaisia pilviyhteyksiä. Tämä virhe voi tapahtua esimerkiksi silloin, kun tietolähde on pilvipalvelutietolähde ja tietolähteeseen käytetään useita tilejä samaan aikaan eri tunnistetiedoilla. Jos tietolähde on paikallinen, sinun on käytettävä paikallista tietoyhdyskäytävää.

Rajoitus: Toimialueeseen yhdistetty vaatimus yhdyskäytäväkoneille Windows-todennusta käytettäessä

Windows-todennuksen käyttäminen paikallisen yhdyskäytävän kanssa edellyttää, että yhdyskäytäväkone on liitetty toimialueeseen. Tämä koskee kaikkia yhteyksiä, jotka on määritetty "Windows-todennuksella yhdyskäytävän kautta*. Windows-tilit, joita käytetään tietolähteen käyttämiseen, saattavat edellyttää lukuoikeutta Windows-hakemiston jaettuihin osiin ja yhdyskäytävän asennukseen.

Rajoitus: vuokraajien välistä OAuth2-päivitystä ei tueta Power BI teenus

Jos haluat muodostaa yhteyden tietolähteeseen Power BI teenus OAuth2:n avulla, tietolähteen on oltava samassa vuokraajassa kuin Power BI teenus. Tällä hetkellä usean vuokraajan yhteysskenaarioita ei tueta OAuth2:n kanssa.

Rajoitus: mukautetun AD FS -todennuksen päätepistettä ei tueta Power BI teenus

Mukautetun Active Directory -liittoutumispalvelujen (AD FS) todentamisen päätepisteen käyttämistä ei tueta Power BI teenus. Käyttäjät saattavat kohdata seuraavan virheen: resurssin ilmoittama tunnuspalvelu ei ole luotettu.

Rajoitus: Vierastilejä ei tueta

Vuokraajan vierastilien käyttämistä tietoihin yhdistämiseen Power Query -liittimien avulla ei tällä hetkellä tueta.

Expression.Error: Arviointi aiheutti pinon ylivuodon, eikä sitä voi jatkaa

Pinon ylivuotovirheet voivat johtua M-koodin virheestä. Esimerkiksi seuraava funktio tuottaa pinon ylivuodon, koska se kutsuu toistuvasti takaisin itseensä ilman minkäänlaista loppuehtoa. Funktiota, joka kutsuu itseään tämän kaltaiseksi, kutsutaan rekursiiviseksi funktioksi.

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

Seuraavassa on joitakin yleisiä tapoja ratkaista pinon ylivuoto M-koodissasi.

  • Varmista, että rekursiiviset funktiot todella päättyvät, kun odotettu loppuehto täyttyy.
  • Korvaa rekursio iteraatiolla (esimerkiksi käyttämällä funktioita, kuten List.Transform, List.Generate tai List.Accumulate).

Expression.Error: Muisti loppui, eikä sitä voi jatkaa

Muistista loppumisen virheet (taiOOM-virheet) voivat johtua siitä, että teet liian monia muistiin paljon toimintoja erittäin suurille taulukoille. Esimerkiksi seuraava M-koodi tuottaa OOM:n, koska se yrittää ladata miljardi riviä muistiin kerralla.

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

Muistivirheiden ratkaisemiseksi optimoi paljon muistia vaativia toimintoja, kuten lajitteluja, liittämisiä, ryhmittelyjä ja erillisiä toimintoja, varmistamalla, että ne taittuvat lähteeseen, tai poistamalla ne kokonaan, jos se on mahdollista. Esimerkiksi lajittelut ovat usein tarpeettomia.

Tietovuot

Peruuta tietovuon päivitys

Joskus voit käynnistää tietovuon päivityksen, mutta kun olet aloittanut sen, tajuat, että haluat muuttaa vielä yhden asian ennen tietojen päivittämistä. Tässä tapauksessa sinun on odotettava, kunnes päivitys on valmis. Päivityksen pysäyttäminen puolivälissä, koska tietojen noutaminen ja työtilan tai ympäristön taulukoiden päivittäminen on jo käynnissä, ei tällä hetkellä tueta.

Aiomme lisätä tulevaisuudessa tuen tietovuon päivityksen peruuttamiselle.