Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
W skrócieUkład mobilny, Direct Lake w Microsoft Fabric i Copilot to trzy rzeczy, które zmieniają codzienną pracę z raportem Power BI. Na danych Nordvelli przygotowujemy układ strony pod telefon, budujemy lakehouse z modelem w trybie Direct Lake, piszemy miarę DAX z Copilotem i sprawdzamy ją zapytaniem DAX.
Lekcja 27 z 28 bezpłatnego kursu Power BI, od pierwszego raportu do Fabric i Copilota, na jednym zestawie danych sieci Nordvella.
<-- Spis wszystkich lekcjiRaport Nordvelli działa na komputerze, ale kierownik sklepu sprawdza wyniki na telefonie, dane sprzedaży coraz częściej trafiają do magazynu danych firmy, a nowe miary trzeba pisać szybciej. W tym rozdziale robimy trzy rzeczy, które zmieniają codzienną pracę z Power BI: układ strony pod telefon, model w trybie Direct Lake na tabelach w Microsoft Fabric i miarę DAX napisaną z Copilotem.
Każdy krok nagraliśmy: układ telefonu w Power BI Desktop na stronie Dashboard, lakehouse i model Direct Lake w usłudze Power BI na pojemności wersji próbnej Fabric, a Copilota w Desktopie na płatnej pojemności Fabric F2. Liczby sprawdzamy z modelem z poprzednich lekcji: łączna sprzedaż Nordvelli to 467 775 009,17 zł.
Z tej lekcji dowiesz się:
Pliki do tej lekcji
Gotowy efekt: plik Power BI Desktop w stanie z końca tej lekcji, z tymi samymi zapytaniami, modelem i stronami raportu, które widać na zrzutach. Lakehouse i model Direct Lake budujesz w usłudze Power BI, w obszarze na pojemności Fabric, więc nie ma ich w pliku.
Pobierz nordvella_27_mobile.pbix
Plik startowy: stan z końca poprzedniej lekcji. Otwórz go, jeśli chcesz wykonywać kroki tej lekcji od razu, bez odtwarzania wcześniejszych.
Pobierz nordvella_26_pipeline.pbix
Dane źródłowe:
Nordvella_
nordvella_
Pobierz Nordvella_dane.xlsxPobierz nordvella_27_lakehouse_parquet.zip
Co chcemy osiągnąć. Strona Dashboard ma być czytelna na telefonie trzymanym pionowo.
Strona Dashboard z wcześniejszych lekcji ma 1920 na 1080 pikseli: czerwony nagłówek, trzy karty, fragmentator miasta i tabelę z pięcioma kolumnami. Na telefonie byłaby pomniejszona do nieczytelnych cyfr. Dlatego każda strona raportu może mieć drugi, pionowy układ dla telefonu. Układ komputerowy się przy tym nie zmienia.
Panel formatowania obok mówi wprost, że zmiany w tym widoku będą widoczne tylko w układzie mobilnym. Na telefonie możesz więc powiększyć kartę albo zmienić czcionkę bez ruszania wersji na komputer.
Co chcemy osiągnąć. Szybko dostać układ telefonu i poprawić to, czego automat nie dopilnował.
Przycisk Automatyczne tworzenie na środku pustego telefonu układa wizualizacje sam. U nas dał kartę Łączna sprzedaż na całą szerokość, pod nią dwie węższe karty obok siebie, fragmentator Miasto i tabelę. Nagłówek z nazwą raportu został w panelu.
Wynik trzeba obejrzeć. Karta Marża % jest za wąska i ucina wartość. Liczba z wielokropkiem na telefonie wprowadza w błąd, więc układ poprawiamy ręcznie:
W pliku efektu tej lekcji układ telefonu strony Dashboard ma cztery elementy w jednej kolumnie: kartę Łączna sprzedaż, kartę Marża %, fragmentator Miasto i tabelę. Pozostałe strony raportu nie mają układu telefonu.
Wskazówka: Układ mobilny rób dla stron, które ktoś naprawdę otwiera w drodze. U nas to pulpit z wynikiem sprzedaży i marży, a strony ćwiczeniowe z DAX zostają tylko na komputer.
Co chcemy osiągnąć. Upewnić się, że układ telefonu trafił do usługi razem z raportem.
Układ mobilny jest częścią pliku .pbix, więc publikujesz go zwyczajnie: Narzędzia główne, Publikuj. Plik opublikowaliśmy do obszaru Nordvella Zarzad, gdzie zastąpił wcześniejszą wersję raportu nordvella_27_mobile (okno Zamienić ten zestaw danych? znasz z lekcji 26). Okno potwierdzenia publikacji samo podpowiada, że na karcie Widok możesz przygotować widok pionowy.
W usłudze układ telefonu zobaczysz w trybie edycji raportu: przełącznik Wyświetlanie w prawym górnym rogu zmień na Edycja, potem na karcie Widok kliknij Układ mobilny albo ikonę telefonu obok kart stron. Usługa pokazuje ten sam układ co Desktop i te same dwie nieużyte wizualizacje w panelu.
Odbiorca otwiera raport w aplikacji Power BI na telefonie, z listy obszaru albo z aplikacji z lekcji 23. Gdy trzyma telefon pionowo, widzi stronę Dashboard w tym układzie.
Zobacz też: Szkolenie Power BI - Desktop, DAX i Online + Copilot
Co chcemy osiągnąć. Wiedzieć, w jakim trybie działa każda tabela modelu i czym różni się Direct Lake.
Każda tabela modelu ma tryb przechowywania. Cały nasz kurs korzysta z Importu: Power Query czyta arkusz Nordvella_
Tryb zobaczysz w widoku modelu: kliknij nagłówek tabeli i w panelu Właściwości rozwiń Zaawansowane. Przy tabeli z arkusza Excel pole Tryb przechowywania jest wyszarzone, bo z pliku Excel można tylko importować.
| Import | DirectQuery | Direct Lake | |
|---|---|---|---|
| Gdzie są dane | kopia w modelu | w źródle, np. SQL Server | tabele Delta w OneLake |
| Świeżość | z ostatniego odświeżenia | z chwili zapytania | z ostatniej zmiany tabel Delta |
| Źródła | prawie wszystkie, także Excel | bazy i usługi obsługujące zapytania | lakehouse i magazyn danych Fabric |
| Wymagania | każda licencja Power BI | brama dla źródeł lokalnych | obszar na pojemności Fabric |
| W kursie | lekcje 2-28 | lekcja 20 | ta lekcja |
Co chcemy osiągnąć. Wgrać cztery tabele Nordvelli do lakehouse i zamienić je w tabele Delta.
Lakehouse to element Fabric, który przechowuje pliki i tabele w OneLake. W obszarze Nordvella Zarzad mamy lakehouse NordvellaLakehouse. Na starcie był pusty: w Eksploratorze widać foldery Tables i Files, a na środku kafelki do pobierania danych.
Polecenie Załaduj do tabel czyta pliki CSV i Parquet, a nie arkusze Excel. Cztery arkusze Nordvelli zapisaliśmy więc jako pliki Parquet: FaktSprzedaz, DimSklepy, DimKalendarz i DimProdukty. Parquet przechowuje typy kolumn, więc kwoty zostają liczbami. Paczkę z tymi plikami pobierzesz z bloku Pliki do tej lekcji. Arkusz Excel wczytasz też przepływem danych, jak w lekcji 25.
Pliki leżą w folderze Files. Tabelę robisz z pliku poleceniem Załaduj do tabel:
Po chwili w folderze Tables są cztery tabele: dimkalendarz, dimprodukty, dimsklepy i faktsprzedaz. Kliknięcie tabeli otwiera podgląd danych z typami kolumn: ikona 123 oznacza liczby, ABC tekst.
Co chcemy osiągnąć. Zbudować model semantyczny, który czyta tabele z lakehouse w trybie Direct Lake.
Usługa otwiera model w przeglądarce w trybie Wyświetlanie: pasek u góry mówi, że zmiany nie zostaną zapisane. Tabele mają u góry niebieski przerywany pasek, a relacji jeszcze nie ma. Żeby je dodać, w prawym górnym rogu przełącz Wyświetlanie na Edycja.
Ta uwaga ma znaczenie: przy Imporcie Desktop sprawdza dane i podpowiada kardynalność, a tu musisz ją znać sam. W Nordvelli każdy SklepID występuje w dimsklepy raz, a w faktsprzedaz wiele razy, więc *:1 jest poprawne.
Na koniec miara. Kliknij tabelę faktsprzedaz w panelu Dane, na wstążce Nowa miara i wpisz w pasku formuły:
Łączna sprzedaż = SUM ( faktsprzedaz[WartoscNetto] )
Tryb tabeli sprawdzisz tak samo jak w Desktopie: kliknij nagłówek tabeli faktsprzedaz i w panelu Właściwości rozwiń Zaawansowane. Tryb przechowywania to Direct Lake.
Wskazówka: Nad sekcją Zaawansowane jest przełącznik Jest ukryty. Przy nagraniu kliknęliśmy go przypadkiem i tabela faktsprzedaz zniknęła z widoku raportu. Model w przeglądarce zapisuje zmiany od razu, więc cofnęliśmy to tym samym przełącznikiem.
Co chcemy osiągnąć. Sprawdzić, że model na lakehouse liczy dokładnie to samo co model z pliku.
Na wstążce modelu kliknij Nowy raport. Usługa otwiera pusty raport na modelu Direct Lake. W panelu Dane zaznaczyliśmy pola Miasto (dimsklepy) i Łączna sprzedaż (faktsprzedaz). Dla pola miasta usługa sama wybrała mapę, która w naszej organizacji jest wyłączona, więc zmieniliśmy wizualizację na tabelę.
| Wartość | Model z pliku (Import) | Model Direct Lake |
|---|---|---|
| Łączna sprzedaż | 467 775 009,17 zł | 467 775 009,17 zł |
| Warszawa | 222 818 294,93 zł | 222 818 294,93 zł |
| Wiersze FaktSprzedaz | 108 675 | 108 675 |
Liczby są identyczne co do grosza, bo oba modele czytają ten sam arkusz Nordvelli: Import przez Power Query, Direct Lake przez pliki Parquet w lakehouse. W firmie różnica jest w świeżości: model Import zna dane z ostatniego odświeżenia, a Direct Lake z ostatniej zmiany tabel w lakehouse.
Co chcemy osiągnąć. Uruchomić Copilota w Desktopie na modelu Nordvelli.
Przycisk Copilot jest na karcie Narzędzia główne. Na naszej maszynie panel pokazał najpierw komunikat Wystąpił błąd. Przyczyna była w opcjach: Copilot w Desktopie potrzebuje obszaru roboczego na płatnej pojemności Fabric albo Premium, a takiego obszaru nie wskazaliśmy. Obszary na pojemności wersji próbnej Fabric nie pojawiły się na liście wyboru.
Obszar Nordvella Copilot założyliśmy do tej lekcji i przypisaliśmy do pojemności Fabric F2. Pojemność F2 jest płatna za każdą godzinę działania, więc wznawiamy ją tylko na czas pracy, a potem wstrzymujemy. Okno wyboru zaznacza, że ten krok nie publikuje raportu: służy tylko do rozliczania użycia Copilota.
Co chcemy osiągnąć. Dostać od Copilota miarę sprzedaży netto po zwrotach i dopasować ją do modelu Nordvelli.
W polu na dole panelu wpisaliśmy po polsku:
DO SKOPIOWANIA
Utwórz miarę DAX, która policzy łączną sprzedaż netto: wartość sprzedaży pomniejszoną o zwroty. Wyjaśnij po polsku, jak działa.
Copilot w kilka sekund dał szkielet miary z dwiema zmiennymi, SprzedazNetto i ZwrotyNetto, oraz wyjaśnienie każdego kroku. Miara odejmuje zwroty od sprzedaży, tak jak w poleceniu.
Pod spodem Copilot dodał wariant dla modeli, w których zwroty są w tej samej tabeli co sprzedaż, oznaczone flagą CzyZwrot.
Formułę trzeba sprawdzić na modelu, więc dodaliśmy ją jako nową miarę w tabeli FaktSprzedaz. Pasek formuły od razu wskazał, co dopasować:
| Miejsce w formule | Co pokazał model | Dopasowanie |
|---|---|---|
| SUM ( FaktZwroty[Wartosc zwrotow wg daty zakupu] ) | Wartosc zwrotow wg daty zakupu to miara z lekcji 6, a SUM przyjmuje kolumnę | odwołanie do miary: [Wartosc zwrotow wg daty zakupu] |
| SprzedazNetto - ZwrotyNetto | zwroty w FaktZwroty to kwoty ujemne (razem -14 022 095,44 zł) | ABS przy zwrotach, jak w mierze Marża po zwrotach % z lekcji 26 |
| wariant: FaktSprzedaz[CzyZwrot] = TRUE () | CzyZwrot ma u nas wartości 0 i 1; DAX nie porównuje liczby całkowitej z wartością logiczną | warunek FaktSprzedaz[CzyZwrot] = 1 |
Po dopasowaniu miara wygląda tak (tekst zgodny z paskiem formuły na zrzucie niżej):
Sprzedaż netto po zwrotach = VAR SprzedazNetto =
SUM ( FaktSprzedaz[WartoscNetto] )
VAR ZwrotyNetto =
ABS ( [Wartosc zwrotow wg daty zakupu] )
RETURN
SprzedazNetto - ZwrotyNetto
Na koniec liczby. W widoku zapytania DAX uruchomiliśmy zapytanie, które zwraca sprzedaż, zwroty i nową miarę w jednym wierszu:
// Sprawdzenie miary po poprawce propozycji Copilota
EVALUATE
ROW (
"Łączna sprzedaż", [Łączna sprzedaż],
"Zwroty wg daty zakupu", [Wartosc zwrotow wg daty zakupu],
"Sprzedaż netto po zwrotach", [Sprzedaż netto po zwrotach]
)
Sprzedaż 467 775 009,17 zł minus zwroty 14 022 095,44 zł to 453 752 913,73 zł. Miara liczy to, co trzeba, i została w pliku efektu tej lekcji razem z zapytaniem. Szkielet miary dał Copilot, a kontrola nad liczbami została u nas.
| Krok | Gdzie | Jak sprawdzić |
|---|---|---|
| 1. Układ telefonu | Desktop, Widok, Układ mobilny | żadna karta nie ucina wartości, tabela bez pustych przerw |
| 2. Układ po publikacji | usługa, Edycja, Widok, Układ mobilny | ten sam układ co w Desktopie |
| 3. Tabele w lakehouse | lakehouse, folder Tables | cztery tabele, typy kolumn liczbowych zachowane |
| 4. Relacje Direct Lake | model w przeglądarce, Zarządzanie relacjami | trzy relacje *:1, wszystkie aktywne |
| 5. Liczby Direct Lake | raport albo zapytanie DAX | suma i Warszawa jak w modelu Import |
| 6. Obszar dla Copilota | Opcje, Copilot (wersja zapoznawcza) | wybrany obszar na płatnej pojemności Fabric |
| 7. Miara od Copilota | pasek formuły i widok zapytania DAX | brak komunikatu, wynik zgodny ze składnikami |
W ostatnim rozdziale kursu składamy wszystko w projekt końcowy: pulpit zarządu Nordvelli od danych po publikację.
Komentarze (0)
Brak komentarzy...