Kaszkádolt paraméterek használata többoldalas jelentésekben
Ez a cikk többoldalas Power BI-jelentéseket tervező jelentéskészítőként szolgál. Forgatókönyveket biztosít a kaszkádolt paraméterek tervezéséhez. A kaszkádolt paraméterek függőségekkel rendelkező jelentésparaméterek. Amikor egy jelentésfelhasználó kiválaszt egy paraméterértéket (vagy értékeket), az egy másik paraméter elérhető értékeinek beállítására szolgál.
Feljegyzés
A kaszkádolt paramétereket és azok konfigurálásának módját ez a cikk nem ismerteti. Ha nem ismeri teljesen a kaszkádolt paramétereket, javasoljuk, hogy először olvassa el a Kaszkádolt paraméterek hozzáadása jelentéshez a Power BI Jelentéskészítő.
Tervezési forgatókönyvek
A kaszkádolt paraméterek használatához két tervezési forgatókönyv létezik. Hatékonyan felhasználhatók a következőre:
- Nagy elemek szűrése
- Releváns elemek megjelenítése
Példaadatbázis
A cikkben bemutatott példák egy Azure SQL Database-en alapulnak. Az adatbázis rögzíti az értékesítési műveleteket, és különböző, viszonteladókat, termékeket és értékesítési rendeléseket tartalmazó táblákat tartalmaz.
A Reseller nevű tábla minden viszonteladóhoz egy rekordot tárol, és több ezer rekordot tartalmaz. A Reseller tábla a következő oszlopokat tartalmazza:
- ResellerCode (egész szám)
- ResellerName
- Country-Region
- Country-Region
- Város
- Irányítószám
Van egy Sales nevű tábla is. Tárolja az értékesítési rendelés rekordjait, és külső kulcskapcsolata van a Reseller táblával a ResellerCode oszlopban.
Példakövetelmény
A viszonteladói profil jelentésének fejlesztésére van szükség. A jelentést úgy kell megtervezni, hogy egyetlen viszonteladó adatait jelenítse meg. Nem célszerű, ha a jelentés felhasználója viszonteladói kódot adna meg, mivel ritkán jegyezi fel őket.
Nagy elemek szűrése
Vessünk egy pillantást három példára, amelyek segítenek korlátozni a nagy mennyiségű elérhető tételt, például a viszonteladókat. Ezek a következők:
- Szűrés kapcsolódó oszlopok szerint
- Szűrés csoportosítási oszlop alapján
- Szűrés keresési minta szerint
Szűrés kapcsolódó oszlopok szerint
Ebben a példában a jelentésfelhasználó öt jelentésparaméterrel kommunikál. Ki kell választaniuk az ország-régiót, az állam-tartományt, a várost, majd az irányítószámot. A végső paraméter ezután felsorolja az adott földrajzi helyen található viszonteladókat.
A kaszkádolt paraméterek a következőképpen fejleszthetők:
Hozza létre az öt jelentésparamétert a megfelelő sorrendben.
Hozza létre a CountryRegion adatkészletet, amely különböző országrégiós értékeket kér le a következő lekérdezési utasítással:
SELECT DISTINCT [Country-Region] FROM [Reseller] ORDER BY [Country-Region]
Hozza létre a StateProvince adatkészletet, amely a kiválasztott ország-régió különböző állam-tartomány értékeit kéri le a következő lekérdezési utasítással:
SELECT DISTINCT [State-Province] FROM [Reseller] WHERE [Country-Region] = @CountryRegion ORDER BY [State-Province]
Hozza létre a City adatkészletet, amely a kiválasztott ország-régió és államtartomány eltérő városértékeit kéri le a következő lekérdezési utasítással:
SELECT DISTINCT [City] FROM [Reseller] WHERE [Country-Region] = @CountryRegion AND [State-Province] = @StateProvince ORDER BY [City]
Folytassa ezt a mintát a PostalCode-adatkészlet létrehozásához.
Hozza létre a Reseller adatkészletet a kiválasztott földrajzi értékek összes viszonteladójának lekéréséhez a következő lekérdezési utasítás használatával:
SELECT [ResellerCode], [ResellerName] FROM [Reseller] WHERE [Country-Region] = @CountryRegion AND [State-Province] = @StateProvince AND [City] = @City AND [PostalCode] = @PostalCode ORDER BY [ResellerName]
Az első kivételével minden adatkészlethez rendelje le a lekérdezési paramétereket a megfelelő jelentésparaméterekhez.
Feljegyzés
Az ezekben a példákban szereplő összes lekérdezési paraméter (a @szimbólummal előtaggal) beágyazható Standard kiadás LECT utasításokba, vagy átadható a tárolt eljárásoknak.
A tárolt eljárások általában jobb tervezési megközelítést jelentenek. Ennek az az oka, hogy a lekérdezési tervek gyorsítótárazva vannak a gyorsabb végrehajtás érdekében, és lehetővé teszik, hogy igény szerint kifinomultabb logikát fejlesszen ki. Az átjáró relációs adatforrásai azonban jelenleg nem támogatottak, ami az SQL Servert, az Oracle-t és a Teradata-t jelenti.
Végül mindig győződjön meg arról, hogy megfelelő indexek léteznek a hatékony adatlekérés támogatására. Ellenkező esetben a jelentésparaméterek lassan tölthetők fel, és az adatbázis túlterheltté válhat. Az SQL Server-indexelésről további információt az SQL Server indexelési architektúrájában és tervezési útmutatójában talál.
Szűrés csoportosítási oszlop alapján
Ebben a példában a jelentésfelhasználó egy jelentésparaméterrel lép kapcsolatba a viszonteladó első betűjének kiválasztásához. A második paraméter ezután felsorolja a viszonteladókat, amikor a név a kijelölt betűvel kezdődik.
A kaszkádolt paraméterek a következőképpen fejleszthetők:
Hozza létre a ReportGroup és a Reseller jelentésparamétereket a megfelelő sorrendben rendezve.
Hozza létre a ReportGroup adatkészletet az összes viszonteladó által használt első betűk lekéréséhez a következő lekérdezési utasítás használatával:
SELECT DISTINCT LEFT([ResellerName], 1) AS [ReportGroup] FROM [Reseller] ORDER BY [ReportGroup]
Hozza létre a Reseller adatkészletet a kiválasztott betűvel kezdődő összes viszonteladó lekéréséhez a következő lekérdezési utasítás használatával:
SELECT [ResellerCode], [ResellerName] FROM [Reseller] WHERE LEFT([ResellerName], 1) = @ReportGroup ORDER BY [ResellerName]
A Reseller adatkészlet lekérdezési paraméterének leképezése a megfelelő jelentésparaméterre.
Hatékonyabb a csoportosítási oszlop hozzáadása a Reseller táblához. Ha megőrzve és indexelve van, az a legjobb eredményt adja. További információ: Számított oszlopok megadása egy táblában.
ALTER TABLE [Reseller]
ADD [ReportGroup] AS LEFT([ResellerName], 1) PERSISTED
Ez a technika még nagyobb potenciált képes biztosítani. Fontolja meg a következő szkriptet, amely új csoportosítási oszlopot ad hozzá a viszonteladók szűréséhez előre definiált betűsávok alapján. Emellett létrehoz egy indexet a jelentésparaméterek által igényelt adatok hatékony lekéréséhez.
ALTER TABLE [Reseller]
ADD [ReportGroup2] AS CASE
WHEN [ResellerName] LIKE '[A-C]%' THEN 'A-C'
WHEN [ResellerName] LIKE '[D-H]%' THEN 'D-H'
WHEN [ResellerName] LIKE '[I-M]%' THEN 'I-M'
WHEN [ResellerName] LIKE '[N-S]%' THEN 'N-S'
WHEN [ResellerName] LIKE '[T-Z]%' THEN 'T-Z'
ELSE '[Other]'
END PERSISTED
GO
CREATE NONCLUSTERED INDEX [Reseller_ReportGroup2]
ON [Reseller] ([ReportGroup2]) INCLUDE ([ResellerCode], [ResellerName])
GO
Szűrés keresési minta szerint
Ebben a példában a jelentés felhasználója egy jelentésparaméterrel lép kapcsolatba egy keresési minta megadásához. A második paraméter ezután felsorolja a viszonteladókat, ha a név tartalmazza a mintát.
A kaszkádolt paraméterek a következőképpen fejleszthetők:
Hozza létre a Keresési és viszonteladói jelentés paramétereit a megfelelő sorrendben rendezve.
Hozza létre a Reseller adatkészletet a keresési szöveget tartalmazó összes viszonteladó lekéréséhez a következő lekérdezési utasítás használatával:
SELECT [ResellerCode], [ResellerName] FROM [Reseller] WHERE [ResellerName] LIKE '%' + @Search + '%' ORDER BY [ResellerName]
A Reseller adatkészlet lekérdezési paraméterének leképezése a megfelelő jelentésparaméterre.
Tipp.
Ennek a kialakításnak a továbbfejlesztése nagyobb ellenőrzést biztosít a jelentés felhasználói számára. Ez lehetővé teszi számukra, hogy meghatározzák a saját mintájuknak megfelelő értéket. A "red%" keresési érték például a "piros" karakterekkel kezdődő névvel rendelkező viszonteladókra szűr.
További információ: LIKE (Transact-SQL).
Az alábbiakban bemutatjuk, hogyan engedélyezheti a jelentés felhasználóinak a saját mintájuk meghatározását.
WHERE
[ResellerName] LIKE @Search
Sok nem adatbázis-szakember azonban nem tud a helyettesítő karakterek százalékos (%) értékéről. Ehelyett a csillag (*) karaktert ismerik. A WHERE záradék módosításával engedélyezheti számukra ezt a karaktert.
WHERE
[ResellerName] LIKE SUBSTITUTE(@Search, '%', '*')
Releváns elemek megjelenítése
Ebben a forgatókönyvben tényadatokkal korlátozhatja a rendelkezésre álló értékeket. A jelentés felhasználói olyan elemeket fognak bemutatni, amelyekben a tevékenység rögzítésre került.
Ebben a példában a jelentésfelhasználó három jelentésparaméterrel kommunikál. Az első kettő az értékesítési rendelés dátumtartományát állítja be. A harmadik paraméter ezután felsorolja azokat a viszonteladókat, amelyekben az adott időszakban megrendelések jöttek létre.
A kaszkádolt paraméterek a következőképpen fejleszthetők:
Hozza létre az OrderDateStart, az OrderDateEnd és a Reseller jelentésparamétereket a megfelelő sorrendben rendezve.
Hozza létre a Reseller adatkészletet a dátumidőszakban rendeléseket létrehozó összes viszonteladó lekéréséhez a következő lekérdezési utasítás használatával:
SELECT DISTINCT [r].[ResellerCode], [r].[ResellerName] FROM [Reseller] AS [r] INNER JOIN [Sales] AS [s] ON [s].[ResellerCode] = [r].[ResellerCode] WHERE [s].[OrderDate] >= @OrderDateStart AND [s].[OrderDate] < DATEADD(DAY, 1, @OrderDateEnd) ORDER BY [r].[ResellerName]
Ajánlások
Javasoljuk, hogy amikor csak lehetséges, kaszkádolt paraméterekkel tervezzen jelentéseket. Ennek az az oka, hogy:
- Intuitív és hasznos élmények biztosítása a jelentés felhasználói számára
- Hatékonyak, mert kisebb elérhető értékkészleteket kérnek le
Ügyeljen arra, hogy az adatforrásokat az alábbiak szerint optimalizálja:
- Tárolt eljárások használata, amikor csak lehetséges
- Megfelelő indexek hozzáadása a hatékony adatlekéréshez
- Oszlopértékek és akár sorok materializálása a költséges lekérdezési idő kiértékelésének elkerülése érdekében
Kapcsolódó tartalom
A cikkhez kapcsolódó további információkért tekintse meg a következő forrásokat:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: