Megosztás a következőn keresztül:


Lekérdezés-összecsukási példák

Ez a cikk néhány példaforgatókönyvet tartalmaz a lekérdezések összecsukásának három lehetséges kimenetére vonatkozóan. Emellett néhány javaslatot is tartalmaz arra vonatkozóan, hogyan lehet a lehető legtöbbet kihozni a lekérdezés-összecsukási mechanizmusból, és hogy milyen hatással lehet a lekérdezésekre.

Esetleírás

Képzeljen el egy forgatókönyvet, amelyben az Azure Synapse Analytics SQL-adatbázis Wide World Importers adatbázisának használatával létre kell hoznia egy lekérdezést a Power Queryben, amely csatlakozik a fact_Sale táblához, és az utolsó 10 értékesítést csak a következő mezőkkel kéri le:

  • Értékesítési kulcs
  • Ügyfélkulcs
  • Számladátumkulcs
  • Leírás
  • Mennyiség

Feljegyzés

Bemutató célokra ez a cikk a Wide World Importers adatbázis Azure Synapse Analyticsbe való betöltéséről szóló oktatóanyagban ismertetett adatbázist használja. A cikk fő különbsége az, hogy a fact_Sale táblázat csak a 2000-es évre vonatkozó adatokat tartalmazza, összesen 3 644 356 sort tartalmaz.

Bár az eredmények nem feltétlenül felelnek meg az Azure Synapse Analytics dokumentációjában található oktatóanyagnak, a cikk célja, hogy bemutassa azokat az alapvető fogalmakat és hatásokat, amelyeket a lekérdezések összecsukása okozhat a lekérdezésekben.

Minta kimeneti tábla, amely a Wide World Importers Azure Synapse Analytics-adatbázis fact_Sale táblájából származik.

Ez a cikk három módszert mutat be arra, hogy ugyanazt a kimenetet különböző lekérdezés-összecsukási szintekkel érje el:

  • Nincs lekérdezéshajtogatás
  • Részleges lekérdezés-összecsukás
  • Teljes lekérdezés-összecsukás

Nincs példa lekérdezés-összecsukási példára

Fontos

Azok a lekérdezések, amelyek kizárólag strukturálatlan adatforrásokra támaszkodnak, vagy amelyek nem rendelkeznek számítási motorral(például CSV- vagy Excel-fájlokkal), nem rendelkeznek lekérdezés-összecsukási képességekkel. Ez azt jelenti, hogy a Power Query a Power Query motor használatával kiértékeli az összes szükséges adatátalakítást.

Az adatbázishoz való csatlakozás és a fact_Sale táblázatra való navigálás után a Kezdőlap lap Sorcsökkentés csoportjában található Alsó sorok megtartása átalakítás lehetőséget választja.

Az alsó sorok átalakítása a Kezdőlap lap Sorcsökkentés csoportjában található.

Az átalakítás kiválasztása után megjelenik egy új párbeszédpanel. Ebben az új párbeszédpanelen megadhatja a megtartani kívánt sorok számát. Ebben az esetben adja meg a 10 értéket, majd kattintson az OK gombra.

Adja meg a 10 értéket az Alsó sorok megtartása párbeszédpanelen.

Tipp.

Ebben az esetben a művelet végrehajtása az utolsó tíz értékesítés eredményét eredményezi. A legtöbb esetben azt javasoljuk, hogy adjon meg egy explicitebb logikát, amely meghatározza, hogy mely sorok tekinthetők utolsónak egy rendezési művelet alkalmazásával a táblán.

Ezután válassza a Kezdőlap lap Oszlopkezelés csoportjában található Oszlopok kiválasztása átalakítás lehetőséget. Ezután kiválaszthatja a táblából megtartani kívánt oszlopokat, és eltávolíthatja a többit.

Válassza ki a Select columns transform for the no query folding example(Oszlopok kiválasztása) átalakítást a lekérdezés-összecsukási példa esetében.

Végül az Oszlopok kiválasztása párbeszédpanelen jelölje ki a Sale Key, Customer Key, Invoice Date Key, , Descriptionés Quantity oszlopokat, majd kattintson az OK gombra.

Válassza ki az értékesítési kulcsot, az ügyfélkulcsot, a számladátumkulcsot, a leírást és a mennyiség oszlopot a nem lekérdezés összecsukható példához.

A következő kódminta a létrehozott lekérdezés teljes M-szkriptje:

let
  Source = Sql.Database(ServerName, DatabaseName),
  Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
  #"Kept bottom rows" = Table.LastN(Navigation, 10),
  #"Choose columns" = Table.SelectColumns(#"Kept bottom rows", {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"})
in
  #"Choose columns""

Nincs lekérdezés-összecsukás: A lekérdezés kiértékelése

A Power Query-szerkesztő Alkalmazott lépések csoportjában láthatja, hogy a Fenntartott alsó sorok és a Kiválasztás oszlopok lekérdezés összecsukható mutatói olyan lépésekként vannak megjelölve, amelyeket az adatforráson vagy más szóval a Power Query motoron kívül fognak kiértékelni.

A lekérdezés alkalmazott lépések panelje a lekérdezés összecsukható mutatóival, amely a megtartott alsó sorokat és az Eltávolított többi oszlop lépést jeleníti meg.

Kattintson a jobb gombbal a lekérdezés utolsó lépésére, az Oszlopok kiválasztása elemre, és válassza ki azt a beállítást, amely beolvassa a Lekérdezésterv megtekintése lehetőséget. A lekérdezési terv célja, hogy részletes áttekintést nyújtson a lekérdezés futtatásáról. Ha többet szeretne megtudni erről a funkcióról, lépjen a Lekérdezési csomagra.

A létrehozott lekérdezés lekérdezési terve több csomóponttal, amelyek közül kettő egy téglalapban található, amely a Power Query-motor által kiértékelendő csomópontokat jelöli.

Az előző lemezkép minden mezőjét csomópontnak nevezzük. A csomópont a lekérdezés végrehajtásához szükséges műveletlebontást jelöli. Az adatforrásokat ( például a fenti példában az SQL Servert és a Value.NativeQuery csomópontot) képviselő csomópontok a lekérdezés melyik részét töltik ki az adatforrásba. Ebben az esetben Table.LastN a többi csomópontot, amely Table.SelectColumns az előző képen látható téglalapban van kiemelve, a Power Query motorja értékeli ki. Ez a két csomópont a hozzáadott két átalakítást, az alsó sorokat megtartva és az Oszlopok kiválasztása lehetőséget jelöli. A többi csomópont az adatforrás szintjén végrehajtott műveleteket jelöli.

Az adatforrásnak küldött pontos kérés megtekintéséhez válassza a Részletek megtekintése lehetőséget a Value.NativeQuery csomóponton.

Az SQL-utasítás a Value.NativeQueryben található, amely az adatbázis fact_Sale táblájából származó összes mező és rekord kérését jelöli.

Ez az adatforrás-kérés az adatforrás anyanyelvén található. Ebben az esetben ez a nyelv SQL, és ez az utasítás a tábla összes sorára és mezőjére vonatkozó kérést fact_Sale jelent.

Az adatforrás-kéréssel való konzultáció segíthet jobban megérteni a lekérdezési terv által közvetített történetet:

  • Sql.Database: Ez a csomópont az adatforrás-hozzáférést jelöli. Csatlakozás az adatbázisba, és metaadat-kéréseket küld annak képességeinek megértéséhez.
  • Value.NativeQuery: A Power Query által a lekérdezés teljesítéséhez létrehozott kérést jelöli. A Power Query natív SQL-utasításban küldi el az adatkéréseket az adatforrásnak. Ebben az esetben ez a tábla összes rekordját és mezőjét (oszlopát fact_Sale ) jelöli. Ebben a forgatókönyvben ez az eset nem kívánatos, mivel a táblázat több millió sort tartalmaz, és a kamat csak az utolsó 10-ben van.
  • Table.LastN: Miután a Power Query minden rekordot megkap a fact_Sale táblából, a Power Query-motorral szűri a táblát, és csak az utolsó 10 sort tartja meg.
  • Table.SelectColumns: A Power Query a csomópont kimenetét Table.LastN fogja használni, és egy új, úgynevezett Table.SelectColumnsátalakítást alkalmaz, amely kiválasztja a táblából tartani kívánt oszlopokat.

A kiértékeléshez a lekérdezésnek le kellett töltenie az összes sort és mezőt a fact_Sale táblából. Ez a lekérdezés átlagosan 6 percet és 1 másodpercet vett igénybe a Power BI-adatfolyamok szabványos példányában (amely az adatok kiértékelését és adatfolyamokba való betöltését teszi lehetővé).

Részleges lekérdezés-összecsukási példa

Miután csatlakozott az adatbázishoz, és navigált a fact_Sale táblához, először jelölje ki azokat az oszlopokat, amelyeket meg szeretne tartani a táblától. Válassza ki a Kezdőlap lap Oszlopok kezelése csoportjában található Oszlopok kiválasztása átalakítást. Ezzel az átalakítással explicit módon kiválaszthatja a táblából megtartani kívánt oszlopokat, és eltávolíthatja a többit.

Az Oszlopok kiválasztása átalakítás kiválasztása a részleges lekérdezés-összecsukási példához.

Az Oszlopok kiválasztása párbeszédpanelen jelölje ki a Sale Key, Customer Key, Invoice Date Key, Description, és Quantity oszlopokat, majd kattintson az OK gombra.

Az értékesítési kulcs, az ügyfélkulcs, a számladátumkulcs, a leírás és a Mennyiség oszlop kiválasztása a részleges lekérdezés-összecsukási példához.

Most létrehoz egy logikát, amely rendezi a táblát, hogy az utolsó értékesítések a tábla alján legyen. Jelölje ki azt az Sale Key oszlopot, amely a tábla elsődleges kulcsa és növekményes sorozata vagy indexe. Rendezze a táblázatot úgy, hogy csak ezt a mezőt használja növekvő sorrendben az oszlop helyi menüjéből.

Az automatikus szűrési mező helyi menüjével növekvő sorrendbe rendezheti a tábla Értékesítési kulcs mezőjét.

Ezután válassza ki a táblázat helyi menüjét, és válassza az Alsó sorok megtartása átalakítást.

Válassza az Alsó sorok megtartása lehetőséget a táblázat helyi menüjében.

Az Alsó sorok megtartása mezőben adja meg a 10 értéket, majd kattintson az OK gombra.

Az alsó sorok párbeszédpanelen a 10-es értéket adja meg bemeneti értékként, hogy csak a táblázat alsó tíz sorát tartsa meg.

A következő kódminta a létrehozott lekérdezés teljes M-szkriptje:

let
  Source = Sql.Database(ServerName, DatabaseName),
  Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
  #"Choose columns" = Table.SelectColumns(Navigation, {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"}),
  #"Sorted rows" = Table.Sort(#"Choose columns", {{"Sale Key", Order.Ascending}}),
  #"Kept bottom rows" = Table.LastN(#"Sorted rows", 10)
in
  #"Kept bottom rows"

Részleges lekérdezés-összecsukási példa: A lekérdezés kiértékelése

Az alkalmazott lépések ablaktábláján láthatja, hogy a lekérdezés összecsukható mutatói azt mutatják, hogy az utolsó hozzáadott átalakítás olyan lépésként van megjelölve, Kept bottom rowsamelyet az adatforráson vagy más szóval a Power Query motoron kívül fog kiértékelni.

A lekérdezés alkalmazott lépések panelje a lekérdezés összecsukható mutatóival azt mutatja, hogy a Megtartott alsó sorok olyan lépésként vannak megjelölve, amelyet az adatforráson kívül értékelnek ki.

Kattintson a jobb gombbal a lekérdezés utolsó lépésére, az elnevezettreKept bottom rows, és válassza a Lekérdezésterv lehetőséget a lekérdezés kiértékelésének jobb megértéséhez.

Több csomópontot ábrázoló lekérdezési terv, ahol a Table.LastN csomópont egy téglalapon belül látható csomópont, amelyet a Power Query motor kiértékel, nem pedig az adatforrás.

Az előző lemezkép minden mezőjét csomópontnak nevezzük. A csomópontok minden olyan folyamatot jelölnek, amelyet (balról jobbra) kell elvégezni a lekérdezés kiértékeléséhez. Ezen csomópontok némelyike kiértékelhető az adatforrásban, míg mások, például a Megtartott alsó sorok lépés által képviselt csomópont Table.LastNa Power Query motor használatával lesz kiértékelve.

Az adatforrásnak küldött pontos kérés megtekintéséhez válassza a Részletek megtekintése lehetőséget a Value.NativeQuery csomóponton.

A Value.NativeQuery sql utasítása az összes rekordra vonatkozó kérést jelöli, és csak az adatbázis fact_Sales táblájának kért mezői vannak növekvő sorrendbe rendezve az Értékesítési kulcs mező alapján.

Ez a kérés az adatforrás anyanyelvén található. Ebben az esetben ez a nyelv AZ SQL, és ez az utasítás az összes sorra vonatkozó kérést jelenti, és csak a mező által Sale Key rendezett táblából származó fact_Sale kért mezőket tartalmazza.

Ezzel az adatforrás-kéréssel jobban megértheti a teljes lekérdezési terv által közvetített történetet. A csomópontok sorrendje egy szekvenciális folyamat, amely az adatforrásból származó adatok lekérésével kezdődik:

  • Sql.Database: Csatlakozás az adatbázisba, és metaadat-kéréseket küld annak képességeinek megértéséhez.
  • Value.NativeQuery: A Power Query által a lekérdezés teljesítéséhez létrehozott kérést jelöli. A Power Query natív SQL-utasításban küldi el az adatkéréseket az adatforrásnak. Ebben az esetben ez az összes rekordot jelöli, az adatbázis táblájából csak fact_Sale a kért mezőket rendezi növekvő sorrendbe a Sales Key mező szerint.
  • Table.LastN: Miután a Power Query minden rekordot megkap a fact_Sale táblából, a Power Query-motorral szűri a táblát, és csak az utolsó 10 sort tartja meg.

A kiértékeléshez a lekérdezésnek le kellett töltenie az összes sort és csak a szükséges mezőket a fact_Sale táblából. A Feldolgozás átlagosan 3 percet és 4 másodpercet vett igénybe a Power BI-adatfolyamok szabványos példányában (amely az adatok kiértékelését és adatfolyamokba való betöltését teszi lehetővé).

Teljes lekérdezés-összecsukási példa

Miután csatlakozott az adatbázishoz, és navigált a fact_Sale táblához, először jelölje ki azokat az oszlopokat, amelyeket meg szeretne tartani a táblától. Válassza ki a Kezdőlap lap Oszlopok kezelése csoportjában található Oszlopok kiválasztása átalakítást. Ezzel az átalakítással explicit módon kiválaszthatja a táblából megtartani kívánt oszlopokat, és eltávolíthatja a többit.

Az Oszlopok kiválasztása átalakítás kiválasztása a teljes lekérdezés-összecsukási példához.

Az Oszlopok kiválasztása területen jelölje ki a Sale Key, Customer Key, Invoice Date Key, Descriptionés Quantity oszlopokat, majd kattintson az OK gombra.

Az értékesítési kulcs, az ügyfélkulcs, a számladátumkulcs, a leírás és a mennyiség oszlop kiválasztása a teljes lekérdezés összecsukható példájához.

Most létrehoz egy logikát, amely rendezi a táblát, hogy az utolsó értékesítés a tábla tetején legyen. Jelölje ki azt az Sale Key oszlopot, amely a tábla elsődleges kulcsa és növekményes sorozata vagy indexe. Rendezze a táblázatot csak ezzel a mezővel csökkenő sorrendben az oszlop helyi menüjéből.

A táblázat Értékesítési kulcs mezőjének rendezése csökkenő sorrendben a helyi menü használatával.

Ezután válassza a táblázat helyi menüjét, és válassza a Felső sorok megtartása átalakítást.

A felső sorok lehetőség megtartása a táblázat helyi menüjében.

A Felső sorok megtartása mezőben adja meg a 10 értéket, majd kattintson az OK gombra.

A felső sorok párbeszédpanelen a tíz beírt értéket adja meg bemeneti értékként, hogy csak a táblázat első tíz sorát tartsa meg.

A következő kódminta a létrehozott lekérdezés teljes M-szkriptje:

let
  Source = Sql.Database(ServerName, DatabaseName),
  Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
  #"Choose columns" = Table.SelectColumns(Navigation, {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"}),
  #"Sorted rows" = Table.Sort(#"Choose columns", {{"Sale Key", Order.Descending}}),
  #"Kept top rows" = Table.FirstN(#"Sorted rows", 10)
in
  #"Kept top rows"

Teljes lekérdezés-összecsukási példa: A lekérdezés kiértékelése

Az alkalmazott lépések ablaktáblájának ellenőrzésekor láthatja, hogy a lekérdezés összecsukható mutatói azt mutatják, hogy a hozzáadott átalakítások, az Oszlopok kiválasztása, a Rendezett sorok és a Megtartott felső sorok az adatforrásban kiértékelt lépésekként vannak megjelölve.

Az összes lekérdezési lépésben megtalálható az az ikon, amely azt mutatja, hogy visszahajthatók az adatforráshoz.

Kattintson a jobb gombbal a lekérdezés utolsó lépésére, a Felső sorok megtartva nevűre, és válassza ki a Lekérdezésterv olvasási lehetőséget.

Az SQL-utasítás a Value.NativeQuery fájlban található, amely a fact_Sale tábla első tíz rekordjának kérését jelöli az Értékesítési kulcs mezővel rendezve, és csak az Értékesítési kulcs, az Ügyfélkulcs, a Számladátumkulcs, a Leírás és a Mennyiség mezővel.

Ez a kérés az adatforrás anyanyelvén található. Ebben az esetben ez a nyelv SQL, és ez az utasítás a tábla összes sorára és mezőjére vonatkozó kérést fact_Sale jelent.

Az adatforrás-lekérdezés használatával jobban megértheti a teljes lekérdezési terv által közvetített történetet:

  • Sql.Database: Csatlakozás az adatbázisba, és metaadat-kéréseket küld annak képességeinek megértéséhez.
  • Value.NativeQuery: A Power Query által a lekérdezés teljesítéséhez létrehozott kérést jelöli. A Power Query natív SQL-utasításban küldi el az adatkéréseket az adatforrásnak. Ebben az esetben ez csak a tábla 10 első 10 rekordjára fact_Sale vonatkozó kérelmet jelent, és csak a szükséges mezőket, miután csökkenő sorrendbe rendezték a Sale Key mezőt.

Feljegyzés

Bár nincs olyan záradék, amellyel Standard kiadás LECT a táblázat alsó sorait a T-SQL nyelvben, van egy TOP záradék, amely lekéri a tábla felső sorait.

A kiértékeléshez ez a lekérdezés csak 10 sort tölt le, és csak a táblából fact_Sale kért mezőket. Ez a lekérdezés átlagosan 31 másodpercet vett igénybe a Power BI-adatfolyamok szabványos példányában (amely az adatok kiértékelését és adatfolyamokba való betöltését teszi lehetővé).

Teljesítmény-összehasonlítás

A lekérdezések összecsukásának ezen lekérdezésekben gyakorolt hatásának jobb megértése érdekében frissítheti a lekérdezéseket, rögzítheti az egyes lekérdezések teljes frissítéséhez szükséges időt, és összehasonlíthatja őket. Az egyszerűség kedvéért ez a cikk a Power BI-adatfolyamok frissítési mechanikával rögzített átlagos frissítési időzítéseket ismerteti, miközben egy dedikált Azure Synapse Analytics-környezethez csatlakozik a DW2000c szolgáltatásszinttel.

Az egyes lekérdezések frissítési ideje a következő volt:

Példa Címke Idő másodpercben
Nincs lekérdezéshajtogatás Egyik sem 361
Részleges lekérdezés-összecsukás Részleges 184
Teljes lekérdezés-összecsukás Teljes 31

A nem összecsukható lekérdezés frissítési idejét 361 másodperccel, a részleges lekérdezést 184 másodperccel, a teljesen összecsukott lekérdezést pedig 31 másodperccel hasonlítja össze.

Gyakran előfordul, hogy egy olyan lekérdezés, amely teljesen visszahajt az adatforráshoz, felülmúlja a hasonló lekérdezéseket, amelyek nem hajtanak vissza teljesen az adatforráshoz. Ennek több oka is lehet. Ezek az okok a lekérdezés által végrehajtott átalakítások összetettségétől kezdve az adatforráson végrehajtott lekérdezésoptimalizálásokon át, például az indexeken és a dedikált számítástechnikán át a hálózati erőforrásokig terjednek. Ennek ellenére a lekérdezés-összecsukás két konkrét kulcsfolyamatot próbál használni, amelyek minimálisra csökkentik a Power Queryben a két folyamat hatását:

  • Átvitt adatok
  • A Power Query-motor által végrehajtott átalakítások

Az alábbi szakaszok ismertetik, hogy ez a két folyamat milyen hatással van a korábban említett lekérdezésekre.

Átvitt adatok

Amikor egy lekérdezést végrehajt, az első lépések egyikeként megpróbálja lekérni az adatokat az adatforrásból. Az adatforrásból lekérhető adatokat a lekérdezés-összecsukási mechanizmus határozza meg. Ez a mechanizmus azonosítja az adatforrásba betölthető lekérdezés lépéseit.

Az alábbi táblázat az adatbázis táblájából fact_Sale kért sorok számát sorolja fel. A táblázat tartalmazza az adatforrásból történő adatkéréshez küldött SQL-utasítás rövid leírását is.

Példa Címke Kért sorok Leírás
Nincs lekérdezéshajtogatás Egyik sem 3644356 A tábla összes mezőjének és összes rekordjának kérése fact_Sale
Részleges lekérdezés-összecsukás Részleges 3644356 Az összes rekord kérése, de csak a fact_Sale tábla kötelező mezőinek megadása a mező szerinti Sale Key rendezés után
Teljes lekérdezés-összecsukás Teljes 10 Csak a szükséges mezők és a tábla TOP 10 rekordjainak kérése, fact_Sale miután a mező csökkenő Sale Key sorrendben lett rendezve

Diagram az adatbázisból összegyűjtött sorok mennyiségével lekérdezés-összecsukás, részleges lekérdezés-összecsukás és teljes lekérdezés-összecsukás nélkül.

Amikor adatokat kér egy adatforrástól, az adatforrásnak ki kell számítania a kérés eredményeit, majd el kell küldenie az adatokat a kérelmezőnek. Bár már említettük a számítási erőforrásokat, az adatoknak az adatforrásból a Power Querybe való áthelyezésének hálózati erőforrásai, majd a Power Query képes lesz hatékonyan fogadni az adatokat, és előkészíteni őket a helyi átalakításokra, az adatok méretétől függően eltarthat egy ideig.

A bemutatott példákhoz a Power Querynek több mint 3,6 millió sort kellett lekérnie az adatforrásból a nem összecsukható és részleges lekérdezés-összecsukási példákhoz. A teljes lekérdezésátadási példához csak 10 sort kért. A kért mezők esetében a nincs lekérdezés-összecsukási példa a tábla összes elérhető mezőjét kérte. Mind a részleges lekérdezés-összecsukás, mind a teljes lekérdezés-összecsukási példák csak a szükséges mezőkre vonatkozó kérelmet küldtek.

Figyelemfelhívás

Javasoljuk, hogy növekményes frissítési megoldásokat alkalmazzon, amelyek nagy mennyiségű adatot tartalmazó lekérdezésekhez vagy táblákhoz használják a lekérdezések összecsukását. A Power Query különböző termékintegrációi időtúllépéseket valósítanak meg a hosszú ideig futó lekérdezések leállításához. Egyes adatforrások időtúllépéseket is megvalósítanak a hosszú ideig futó munkameneteken, és költséges lekérdezéseket próbálnak végrehajtani a kiszolgálóikon. További információ: Növekményes frissítés használata adatfolyamokkal és növekményes frissítés szemantikai modellekhez

A Power Query-motor által végrehajtott átalakítások

Ez a cikk bemutatja, hogyan használhatja a lekérdezéstervet a lekérdezés kiértékelésének jobb megértéséhez. A lekérdezési tervben láthatja a Power Query motor által végrehajtandó átalakítási műveletek pontos csomópontjait.

Az alábbi táblázat azokat a csomópontokat mutatja be az előző lekérdezések lekérdezési terveiből, amelyeket a Power Query motor kiértékelt volna.

Példa Címke Power Query-motor átalakító csomópontjai
Nincs lekérdezéshajtogatás Egyik sem Table.LastN, Table.SelectColumns
Részleges lekérdezés-összecsukás Részleges Table.LastN
Teljes lekérdezés-összecsukás Teljes

A Power Query-motor által futtatott összes átalakítást tartalmazó diagram lekérdezés-összecsukás, részleges lekérdezés-összecsukás és teljes lekérdezés-összecsukás nélkül.

A cikkben bemutatott példák esetében a teljes lekérdezésátadási példa nem igényel átalakítást a Power Query motoron belül, mivel a szükséges kimeneti tábla közvetlenül az adatforrásból származik. Ezzel szemben a másik két lekérdezés számítást igényelt a Power Query motoron. A két lekérdezés által feldolgozandó adatok mennyisége miatt ezeknek a példáknak a folyamata több időt vesz igénybe, mint a teljes lekérdezésátadási példa.

Az átalakítások a következő kategóriákba csoportosíthatók:

Operátor típusa Leírás
Távoli Adatforrás-csomópontokat tartalmazó operátorok. Ezeknek az operátoroknak a kiértékelése a Power Queryn kívül történik.
Streamelés Az operátorok átmenő operátorok. Egy egyszerű szűrővel például Table.SelectRows általában szűrheti az eredményeket, miközben áthaladnak az operátoron, és nem kell összegyűjtenie az összes sort az adatok áthelyezése előtt. Table.SelectColumns és Table.ReorderColumns más példák ezekre a típusú operátorokra.
Teljes vizsgálat Azoknak az operátoroknak, amelyeknek össze kell gyűjtenie az összes sort, mielőtt az adatok továbbléphetnek a lánc következő operátorára. Az adatok rendezéséhez például a Power Querynek össze kell gyűjtenie az összes adatot. További példák a teljes vizsgálati operátorokra Table.Group: , Table.NestedJoinés Table.Pivot.

Tipp.

Bár teljesítmény szempontjából nem minden átalakítás azonos, a legtöbb esetben a kevesebb átalakítás általában jobb.

Megfontolandó szempontok és javaslatok

  • Új lekérdezés létrehozásakor kövesse az ajánlott eljárásokat a Power Query ajánlott eljárásaiban leírtak szerint.
  • A lekérdezés összecsukási jelzőivel ellenőrizheti, hogy mely lépések akadályozják meg a lekérdezés összecsukását. Szükség esetén átrendezi őket a hajtás növelése érdekében.
  • A lekérdezési terv használatával meghatározhatja, hogy mely átalakítások történnek a Power Query-motorban egy adott lépéshez. Fontolja meg a meglévő lekérdezés módosítását a lépések újrarendezésével. Ezután ellenőrizze újra a lekérdezés utolsó lépésének lekérdezéstervét, és ellenőrizze, hogy a lekérdezési terv jobban néz-e ki, mint az előző. Az új lekérdezési csomag például kevesebb csomóponttal rendelkezik, mint az előző, és a csomópontok többsége "Streamelési" csomópont, és nem "teljes vizsgálat". Az összecsukást támogató adatforrások esetében a lekérdezési tervben Value.NativeQuery szereplő csomópontok nem, és az adatforrás-hozzáférési csomópontok olyan átalakításokat jelölnek, amelyek nem hajtottak le.
  • Ha elérhető, a Natív lekérdezés megtekintése (vagy adatforrás-lekérdezés megtekintése) beállítással biztosíthatja, hogy a lekérdezés visszahajtható legyen az adatforráshoz. Ha ez a beállítás le van tiltva a lépéshez, és olyan forrást használ, amely általában engedélyezi azt, létrehozott egy lépést, amely leállítja a lekérdezések összecsukását. Ha olyan forrást használ, amely nem támogatja ezt a lehetőséget, a lekérdezés összecsukható mutatóira és a lekérdezéstervre támaszkodhat.
  • A lekérdezésdiagnosztikai eszközökkel jobban megértheti az adatforrásnak küldött kéréseket, amikor a lekérdezés-összecsukási képességek elérhetők az összekötő számára.
  • Ha több összekötő használatával kombinálja az adatforrásokat, a Power Query megpróbálja a lehető legtöbb munkát leküldni mindkét adatforrásba, miközben megfelel az egyes adatforrásokhoz meghatározott adatvédelmi szinteknek.
  • Olvassa el az adatvédelmi szintekről szóló cikket, amely megvédi a lekérdezéseket az adatvédelmi tűzfallal kapcsolatos hibáktól.
  • Más eszközökkel ellenőrizheti, hogy a lekérdezés összecsukható-e az adatforrás által fogadott kérés szempontjából. A cikkben szereplő példa alapján a Microsoft SQL Server Profilerrel ellenőrizheti a Power Query által küldött és a Microsoft SQL Server által fogadott kéréseket.
  • Ha új lépést ad hozzá egy teljesen összecsukott lekérdezéshez, és az új lépés is összecsukható, a Power Query új kérést küldhet az adatforrásnak ahelyett, hogy az előző eredmény gyorsítótárazott verzióját használna. A gyakorlatban ez a folyamat látszólag egyszerű műveleteket eredményezhet kis mennyiségű adaton, és a vártnál tovább tart a frissítés az előzetes verzióban. Ez a hosszabb frissítés annak köszönhető, hogy a Power Query újra lekérdezi az adatforrást ahelyett, hogy az adatok helyi másolatát dolgozták ki.