Čítať v angličtine

Zdieľať cez


Bežné problémy

Power Query

Zachovanie zoradenia

Možno predpokladajme, že ak zoraďujete údaje, akékoľvek následné operácie zachovajú spôsob zoradenia.

Ak napríklad zoradíte tabuľku predaja tak, aby sa najprv zobrazil najväčší predaj každého obchodu, možno by ste očakávali, že operácia "Odstrániť duplikáty" vráti iba najvyšší predaj pre každú predajňu. A zdá sa, že táto operácia v skutočnosti funguje. Toto správanie však nie je zaručené.

Vzhľadom na spôsob, akým Power Query optimalizuje určité operácie vrátane ich vynechania alebo vyloženia do zdrojov údajov (ktoré môžu mať vlastné jedinečné správanie pri zoraďovaní), nie je zaručené, že sa poradie zoradenia zachová prostredníctvom agregácií (ako Table.Groupnapríklad ), zlučovaní (ako Table.NestedJoinnapríklad ) alebo duplicitného odstránenia (napríklad Table.Distinct).

Existuje niekoľko spôsobov, ako to obísť. Tu je niekoľko návrhov:

  • Vykonajte zoradenie po použití operácie po prúde. Napríklad pri zoskupovaní riadkov zoraďte vnorenú tabuľku v každej skupine pred použitím ďalších krokov. Tu je niekoľko vzorových kódov jazyka M, ktoré demonštrujú tento prístup: Table.Group(Sales_SalesPerson, {"TerritoryID"}, {{"SortedRows", each Table.Sort(_, {"SalesYTD", Order.Descending})}})
  • Pred použitím následných operácií do medzipamäte údaje (pomocou Table.Buffer) do medzipamäte. V niektorých prípadoch táto operácia spôsobuje, že následná operácia zachová spôsob zoradenia vo medzipamäte.
  • Použite poradie. Namiesto použitia Table.Distinctmôžete napríklad zoradiť hodnoty podľa stĺpcov obsahujúcich duplicitné hodnoty, zoradiť hodnoty na základe stĺpca s väzbami (napríklad modified_date), a potom filtrovať, aby sa zachovalo len poradie 1 riadky.

Inferencia typu údajov

Niekedy môže Power Query nesprávne zistiť typ údajov stĺpca. Je to spôsobené tým, že Power Query odvodzuje typy údajov iba s použitím prvých 200 riadkov údajov. Ak sú údaje v prvých 200 riadkoch nejako odlišné ako údaje po riadku 200, doplnok Power Query môže vybrať nesprávny typ. (Uvedomte si, že nesprávny typ nebude vždy spôsobovať chyby. Výsledné hodnoty sú niekedy jednoducho nesprávne, takže sa problém ťažšie zisťuje.)

Predstavte si napríklad stĺpec, ktorý obsahuje celé čísla v prvých 200 riadkoch (napríklad všetky nuly), ale obsahuje desatinné čísla po riadku 200. V tomto prípade Power Query odvodí typ údajov stĺpca ako Celé číslo (Int64.Type). Výsledkom tejto inferencie je, že sa skrátia všetky desatinné čísla, ktoré nie sú celými číslami.

Alebo si predstavte stĺpec, ktorý obsahuje textové hodnoty dátumu v prvých 200 riadkoch a iné druhy textových hodnôt po riadku 200. V tomto prípade doplnok Power Query odvodí typ údajov stĺpca, ktorý má byť Dátum. Výsledkom tejto inferencie je, že textové hodnoty, ktoré nie sú dátumové, sa považujú za chyby konverzie typu.

Keďže detekcia typu funguje v prvých 200 riadkoch, ale profilovanie údajov môže fungovať v celej množine údajov, môžete zvážiť použitie funkcie profilovania údajov na získanie rýchleho označenia Editor Power Query o chybách (z detekcie typu alebo z akéhokoľvek iného dôvodu) mimo horných N riadkov.

Pripojenia násilne uzavreté vzdialeným hostiteľom

Pri pripájaní k rôznym rozhraniam API sa môže zobraziť nasledujúce upozornenie:

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

Ak sa vyskytne táto chyba, pravdepodobne ide o problém s sieťou. Vo všeobecnosti platí, že prvými ľuďmi, ktorí sa o to pokúsia, sú vlastníci zdroja údajov, ku ktorému sa pokúšate pripojiť. Ak si nemyslím, že ide o pripojenia, je možné, že ide o niečo, čo sa deje (napríklad server proxy, stredne pokročilý smerovače,brány a podobne).

Je pravdepodobné, že na trase je časový limit siete, či už reprodukuje len pri nejakých údajoch alebo len väčších objemoch údajov. Ak ide len o väčšie údaje, zákazníci by si mali poradiť s vlastníkom zdroja údajov, aby zistili, či ich rozhrania API podporujú stránkovanie, aby mohli rozdeliť svoje požiadavky na menšie bloky. V opačnom prípade je potrebné postupovať podľa alternatívnych spôsobov extrahovania údajov z rozhrania API (najvhodnejších postupov pre zdroj údajov).

Podpora šifrovacích balíkov TLS RSA je zastaraná

S účinnosťou od 30. októbra 2020 sa na našich serveroch končí podpora nasledujúcich šifrovacích balíkov.

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

V nasledujúcom zozname sú podporované balíky Cipher:

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

Šifrovacie balíky sa používajú na šifrovanie správ na zabezpečenie sieťového spojenia medzi klientmi/servermi a inými servermi. Odstraňujeme vyššie uvedený zoznam balíkov šifrovania, aby sme vyhoveli našim súčasným bezpečnostným protokolom. Od 1. marca 2021 môžu zákazníci používať iba naše štandardné šifrovacie balíky.

Toto sú šifrovacie balíky, ktoré server, ku ktorému sa pripájate, musia podporovať pripojenie z Power Query Online alebo Power BI.

V aplikácii Power Query Desktop (Power BI, Excel) nekontrolujeme vaše šifrovacie balíky. Ak sa pokúšate pripojiť k službám Power Platform (napríklad Toky údajov Power Platformy) alebo k službe Power BI, v OS potrebujete mať povolený jeden z týchto balíkov cipher. Môžete buď inovovať verziu systému Windows, alebo aktualizovať databázu Registry systému Windows TLS, aby ste sa uistili, že koncový bod servera podporuje niektorú z týchto šifrovačiek.

Ak chcete overiť, či je váš server v súlade s protokolom zabezpečenia, môžete vykonať test pomocou nástroja na šifrovanie protokolu TLS a skener. Jedným z príkladov môže byť SSLLABS.

Zákazníci musia inovovať svoje servery do 1. marca 2021. Viac informácií o konfigurácii objednávky TLS Cipher Suite nájdete v časti Správa zabezpečenia transportnej vrstvy (TLS).

Zrušenie certifikátu

Pripravovaná verzia aplikácie Power BI Desktop spôsobí zlyhanie pripojení SSL z aplikácie Desktop, keď chýbajú certifikáty v reťazci SSL. Ide o zmenu oproti aktuálnemu stavu, kedy zrušenie spôsobilo iba zlyhanie pripojenia v prípade, keď bol certifikát explicitne zrušený. Medzi ďalšie problémy s certifikátom môžu patriť neplatné podpisy a uplynutie platnosti certifikátu.

Keďže existujú konfigurácie, v ktorých by sa mohol stav zrušenia odstrániť, napríklad pri podnikových proxy serveroch, poskytneme ďalšiu možnosť na ignorovanie certifikátov, ktoré nemajú informácie o zrušení. Táto možnosť umožňuje situácie, keď sa informácie o zrušení v niektorých prípadoch odstránia, ale nechcete úplne znížiť zabezpečenie, ak chcete pokračovať v práci.

Neodporúča sa, ale používatelia môžu aj naďalej úplne vypnúť kontroly zrušenia.

Chyba: Vyhodnocovanie bolo zrušené

Keď je analýza na pozadí zakázaná, Power Query vráti správu "Vyhodnocovanie bolo zrušené" a používateľ prepína medzi dotazmi alebo zavrie Editor Power Query, keď sa dotaz práve obnovuje.

Chyba: Kľúč sa nezhodoval so žiadnymi riadkami v tabuľke

Existuje mnoho dôvodov, prečo by power query mohol vrátiť chybu, že kľúč sa nezhodoval so žiadnymi riadkami v tabuľke. Keď sa vyskytne táto chyba, nástroj hybridnej webovej aplikácie nedokáže nájsť názov tabuľky, ktorý hľadá. Dôvody, prečo sa táto chyba môže vyskytnúť, sú:

  • Názov tabuľky sa zmenil, napríklad v samotnom zdroji údajov.
  • Konto použité na prístup k tabuľke nemá dostatočné oprávnenia na prečítanie tabuľky.
  • Pre jeden zdroj údajov môže existovať viac prihlasovacích údajov, čo sa v službe Power BI nepodporuje pri používaní osobných cloudových pripojení. Táto chyba sa môže vyskytnúť napríklad vtedy, keď je zdroj údajov cloudovým zdrojom údajov a na prístup k zdroju údajov sa súčasne používajú viaceré kontá s rôznymi prihlasovacími údajmi. Ak je zdroj údajov lokálny, budete musieť použiť lokálnu bránu údajov.

Obmedzenie: Požiadavka spojená s doménou pre počítače s bránou pri používaní overovania systému Windows

Používanie overovania systému Windows s lokálnou bránou vyžaduje, aby bol počítač brány pripojený k doméne. Vzťahuje sa to na všetky pripojenia, ktoré sú nastavené pomocou overovania systému Windows prostredníctvom brány*. Kontá Systému Windows, ktoré sa používajú na prístup k zdroju údajov, môžu vyžadovať prístup na čítanie zdieľaných súčastí v adresári systému Windows a inštaláciu brány.

Obmedzenie: Obnovenie OAuth2 medzi nájomníkmi nie je podporované v služba Power BI

Ak sa chcete pripojiť k zdroju údajov z služba Power BI pomocou OAuth2, zdroj údajov sa musí nachádzať v tom istom nájomníkovi ako služba Power BI. Scenáre pripojenia s viacerými nájomníkmi v súčasnosti nie sú podporované pre OAuth2.

Obmedzenie: Vlastný koncový bod overovania AD FS nie je v službe služba Power BI podporovaný

Možnosť použiť vlastný koncový bod overovania služby Active Directory Federation Services (ADFS) (AD FS) nie je v službe služba Power BI podporovaná. Používateľom sa môže zobraziť nasledujúca chyba: Služba tokenu hlásená prostriedkom nie je dôveryhodná.

Obmedzenie: Hosťovské kontá nie sú podporované

Používanie hosťovských kont nájomníka na pripojenie k údajom pomocou konektorov Power Query nie je momentálne podporované.

Chyba výrazu: Vyhodnocovanie vyústilo do pretečenia zásobníka a nemôže pokračovať

Chyby pretečenia zásobníka môžu byť spôsobené chybou v kóde jazyka M. Nasledujúca funkcia napríklad vytvorí pretečenie zásobníka, pretože opakovane volá späť do seba bez akéhokoľvek druhu koncovej podmienky. Funkcia, ktorá sa volá podobne ako táto, je známa ako "rekurzívna" funkcia.

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

Tu je niekoľko bežných spôsobov, ako vyriešiť pretečenie zásobníka v kóde jazyka M.

  • Skontrolujte, či sa rekurzívne funkcie po dosiahnutí očakávanej koncovej podmienky skutočne ukončia.
  • Nahraďte rekurzie iteráciou (napríklad pomocou funkcií ako List.Transform, List.Generate alebo List.Accumulate).

Chyba výrazu: Pri vyhodnocovaní sa nedostatok pamäte a nemôžu pokračovať

Chyby nedostatku pamäte (alebo OOM) môžu byť spôsobené príliš veľkými operáciami náročné na pamäť vo veľmi veľkých tabuľkách. Nasledujúci kód jazyka M napríklad vytvorí OOM, pretože sa pokúsi načítať do pamäte miliardu riadkov naraz.

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

Ak chcete vyriešiť chyby nedostatku pamäte, optimalizujte operácie náročné na pamäť, ako sú napríklad druhy, spojenia, zoskupenia a odlišné funkcie tým, že zabezpečíte, že sa zbalia k zdroju, alebo ich úplne odstránite tam, kde je to možné. Napríklad druhy sú často nepotrebné.

Toky údajov

Zrušenie obnovenia toku údajov

Niekedy môžete spustiť obnovenie toku údajov, ale po spustení si uvedomíte, že ste chceli pred obnovením údajov zmeniť ešte jednu vec. V takom prípade musíte počkať, kým sa obnovenie nedokončí. Zastavenie obnovenia v polovici procesu už pracuje na získavaní údajov a aktualizácia tabuliek v pracovnom priestore alebo prostredí nie je momentálne podporovaná.

V budúcnosti plánujeme pridať podporu na zrušenie obnovenia toku údajov.