Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
W skrócieBrama danych łączy usługę Power BI w chmurze ze źródłami, do których chmura nie ma dostępu, takimi jak plik na dysku albo baza SQL Server w firmie. Instalujemy bramę osobistą dla modelu Nordvelli, ustawiamy poświadczenia, harmonogram w polskiej strefie czasowej i mail o błędzie odświeżania, a na koniec poznajemy bramę standardową.
Lekcja 24 z 28 bezpłatnego kursu Power BI, od pierwszego raportu do Fabric i Copilota, na jednym zestawie danych sieci Nordvella.
<-- Spis wszystkich lekcjiW lekcji 23 opublikowaliśmy model nordvella_22_ols w obszarze roboczym Nordvella Zarzad. Dane w usłudze Power BI są od tej chwili kopią z dnia publikacji. Model czyta plik C:\Kurs_PBI\Nordvella_dane.xlsx z dysku Twojego komputera i uruchamia skrypt Pythona z lekcji 13 (kolumny Sezon i CzyAnomalia w tabeli FaktSprzedaz). Usługa w chmurze nie ma dostępu ani do tego dysku, ani do Pythona. Żeby model sam pobierał nowe dane, potrzebne są dwie rzeczy: brama danych na komputerze ze źródłami i harmonogram, który mówi usłudze, kiedy ma po nie sięgać.
W tym rozdziale instalujemy bramę osobistą, podpinamy pod nią model z lekcji 22, odświeżamy go ręcznie i ustawiamy harmonogram w polskiej strefie czasowej. Potem celowo psujemy źródło, żeby zobaczyć komunikat błędu, historię odświeżania i mail do właściciela modelu. Na końcu pokazujemy bramę standardową, z której zespół korzysta przy bazach SQL Server. Każdy krok nagraliśmy w usłudze i na komputerze POWERBI-KURS, na którym działają obie bramy.
Z tej lekcji dowiesz się:
Pliki do tej lekcji
Plik startowy: plik z końca lekcji 22, ten sam, który w lekcji 23 publikujesz w usłudze Power BI (lekcja 23 nie zmienia pliku). Jego zapytania czytają C:\Kurs_PBI\Nordvella_dane.xlsx, więc arkusz zapisz w tym folderze na komputerze, na którym zainstalujesz bramę. Efekt tej lekcji powstaje w usłudze Power BI (brama, poświadczenia i harmonogram), nie w pliku.
Dane źródłowe:
Nordvella_
Nordvella.bak.gz - te same dane jako baza MS SQL Server (odtwarzasz poleceniem RESTORE DATABASE), do ćwiczeń z połączeniem z bazą SQL.
Co chcemy osiągnąć. Model nordvella_22_ols w usłudze ma pobierać nowe dane z pliku Excela i ze skryptu Pythona bez ponownej publikacji z Desktopu.
Otwórz obszar roboczy Nordvella Zarzad, najedź na wiersz modelu semantycznego nordvella_22_ols, kliknij Więcej opcji (trzy kropki) i wybierz Ustawienia. Rozwiń sekcję Połączenia bramy i chmury. Usługa wylicza w niej źródła modelu i sprawdza, czy pasują do bram, do których masz dostęp.
U nas w organizacji działa już brama standardowa Brama-Nordvella, z której korzysta model z lekcji 19. Plik Excela dałoby się do niej dodać (link Dodaj do bramy), ale przy źródle Python usługa pisze wprost: Nie można dodać do bramy. Pod tabelą jest drugi sygnał: Nie masz zainstalowanych żadnych bram osobistych.
Wniosek: ten model potrzebuje bramy osobistej. To ten sam program, On-premises data gateway, w innym trybie: instaluje się w profilu jednego użytkownika i obsługuje jego modele, także te z krokiem Pythona. Brama standardowa obsługuje cały zespół, ale skryptu Pythona w zapytaniu nie przepuści.
| Cecha | Brama osobista | Brama standardowa |
|---|---|---|
| Dla kogo | jedna osoba i jej modele | zespół, wiele modeli i osób |
| Folder instalacji | profil użytkownika, AppData\Local\Microsoft\On-premises data gateway (personal mode) | C:\Program Files\On-premises data gateway |
| Krok Pythona w zapytaniu | przechodzi (model z lekcji 22 odświeżył się przez nią) | Nie można dodać do bramy |
| Gdzie wpisujesz poświadczenia | w ustawieniach modelu, sekcja Poświadczenia źródła danych | w połączeniu w Zarządzaj połączeniami i bramami, wspólnym dla modeli |
| Lista Lokalne bramy danych | brak, jej połączenia mają dopisek (tryb osobisty) | jest, z nazwą, stanem i liczbą bram w klastrze |
| U nas | brama osobista konta, którym publikujemy raporty | Brama-Nordvella na tym samym komputerze |
Wskazówka: na jednym komputerze mogą działać obie bramy jednocześnie. Na naszym komputerze POWERBI-KURS pracuje brama standardowa Brama-Nordvella i brama osobista konta, którym publikujemy raporty.
Co chcemy osiągnąć. Na komputerze, na którym leży Nordvella_
Instalator pobierzesz z samej usługi. Kliknij ikonę Pobierz (strzałka w dół) na górnym pasku, obok koła zębatego, i wybierz Brama danych.
Strona Microsoft ma dwa przyciski: Pobierz tryb standardowy i Pobierz tryb osobisty. Dla modelu z lekcji 22 wybierz tryb osobisty.
Uruchom pobrany plik. Instalator proponuje folder w Twoim profilu, AppData\Local\Microsoft\On-premises data gateway (personal mode), więc brama instaluje się tylko dla Ciebie. Zaznacz I accept the terms of use and privacy statement i kliknij Install. U nas instalacja trwała około minuty.
Po instalacji brama prosi o adres e-mail. Wpisz konto służbowe, którym logujesz się do usługi Power BI i publikujesz raporty, i kliknij Sign in.
Windows otwiera okno logowania Let's get you signed in. Wybierz Work or school account (konto służbowe), a nie Microsoft account, i kliknij Continue. Dalej jest zwykłe logowanie Microsoft: adres, hasło i potwierdzenie w aplikacji Microsoft Authenticator, jeśli Twoja organizacja go wymaga. U nas wymagała, więc zatwierdzaliśmy logowanie numerem wyświetlonym w oknie.
Po zatwierdzeniu logowania Windows może zapytać: Zalogować do wszystkich aplikacji i witryn internetowych na tym urządzeniu? Okno wyjaśnia, że Tak rejestruje urządzenie w organizacji, i radzi wybrać Nie, tylko w tej aplikacji, jeśli z komputera korzystają też inne osoby. Tak zrobiliśmy.
U nas w tym miejscu okno logowania pokazało We can't connect you z kodem 0xCAA70007 (Microsoft.AAD.BrokerPlugin), a brama wróciła do ekranu z adresem i komunikatem Failed to sign in. Please verify your credentials and try again. Hasło było dobre, zatwierdzenie w Authenticatorze też przeszło. Komunikat wskazuje pośrednika logowania Windows (BrokerPlugin). Pomogło logowanie bez niego:
Po udanym logowaniu aplikacja pokazała u nas najpierw Gateway was not found. Please try to reconfigure the gateway. Przycisk Configure i ponowne logowanie nic nie zmieniły, a w usłudze brama była już widoczna (sprawdziliśmy w ustawieniach modelu, następna sekcja). Po zamknięciu i ponownym uruchomieniu aplikacji bramy stan zmienił się na Your gateway is all set up. Jeśli trafisz na ten sam komunikat, zacznij od sprawdzenia bramy w usłudze.
Uwaga: brama osobista pracuje tylko wtedy, gdy pracuje komputer, na którym ją zainstalowałeś. Microsoft pisze to wprost w mailu o błędzie bramy: komputer z bramą musi być włączony w czasie odświeżania.
Zobacz też: Szkolenie Power BI - Desktop, DAX i Online + Copilot
Co chcemy osiągnąć. Model nordvella_22_ols ma korzystać z bramy osobistej, a oba jego źródła, plik Excela i Python, mają mieć poświadczenia.
Wróć do ustawień modelu nordvella_22_ols i odśwież stronę. W sekcji Połączenia bramy i chmury pojawiła się Brama osobista ze stanem Działa na maszynie POWERBI-KURS (u Ciebie z nazwą Twojego komputera). U nas była od razu zaznaczona. Jeśli u Ciebie nie jest, zaznacz ją i kliknij Zastosuj pod tabelą.
Niżej, w sekcji Poświadczenia źródła danych, usługa pisze: Nie można przetestować połączenia ze źródłem danych. Ponów próbę poświadczeń. Przy obu źródłach, Nordvella_
Okno Konfiguruj zestaw danych nordvella_22_ols pokazuje wyszarzoną ścieżkę C:\Kurs_PBI\Nordvella_dane.xlsx (pochodzi z zapytania w Desktopie) i metodę uwierzytelniania System Windows bez personifikacji, jedyną na liście. Brama czyta plik jako użytkownik Windows, na którego koncie pracuje. Wybierasz tylko poziom prywatności. Lista Ustawienie poziomu prywatności dla tego źródła danych ma cztery pozycje: None, Private, Organizational i Public. Wybierz Organizational (dane firmy) i kliknij Zaloguj. W prawym górnym rogu pojawi się komunikat Zaktualizowano źródło danych.
To samo zrób przy źródle Python. Okno ma dwa wyszarzone pola, extensionDataSourceKind i extensionDataSourcePath (oba z wartością Python), i tę samą metodę uwierzytelniania. Ustaw Organizational i kliknij Zaloguj. U nas oba źródła mają ten sam poziom prywatności i odświeżenie przeszło bez problemu.
Po obu zmianach sekcja wygląda jak na dolnej części zrzutu: bez ostrzeżenia i bez trójkątów.
Uwaga: brama osobista czyta plik ze ścieżki zapisanej w zapytaniu. Jeśli w Desktopie masz C:\Kurs_PBI\Nordvella_dane.xlsx, plik musi leżeć dokładnie tam na komputerze z bramą. Przeniesienie albo zmiana nazwy pliku to nieudane odświeżenie, które pokazujemy w sekcji o błędach.
Co chcemy osiągnąć. Zanim ustawisz harmonogram, sprawdź, czy brama osobista naprawdę wczytuje plik i uruchamia Pythona.
W obszarze roboczym Nordvella Zarzad najedź na wiersz modelu semantycznego nordvella_22_ols. Obok nazwy pojawiają się trzy ikony: Odśwież teraz, Zaplanuj odświeżanie i Więcej opcji. Kliknij Odśwież teraz.
W kolumnie Odświeżone zaczyna się kręcić wskaźnik. U nas odświeżenie trwało 34 sekundy, od 01:10:53 do 01:11:27. Usługa wysłała zadanie do bramy osobistej, brama wczytała arkusz, uruchomiła skrypt Pythona i odesłała wynik do modelu.
Wynik sprawdzisz w Historii odświeżania: link jest w ustawieniach modelu, pod zdaniem o tym, kto skonfigurował model, a także w menu Więcej opcji przy modelu. Typ Na żądanie to odświeżenie ręczne, Zaplanowane to odświeżenie z harmonogramu.
Po odświeżeniu zapytaliśmy model w usłudze, ile ma danych: tabela FaktSprzedaz ma 108 675 wierszy, Łączna sprzedaż wynosi 467 775 009,17 zł (na karcie raportu 468 mln zł), a kolumna Sezon ze skryptu Pythona ma cztery wartości. To te same liczby co w Desktopie, bo arkusz się nie zmienił. Gdy zmieni się arkusz, zmienią się po kolejnym odświeżeniu.
Co chcemy osiągnąć. Model nordvella_22_ols ma się odświeżać sam, codziennie o 6:00 i 13:00 czasu polskiego, a o błędzie ma się dowiedzieć właściciel modelu.
W ustawieniach modelu rozwiń sekcję Odśwież. Zanim brama osobista zaczęła działać, sekcja była wyszarzona, teraz da się ją zmieniać. Ustawienia domyślne to strefa (UTC) Uniwersalny czas koordynowany i wyłączony harmonogram.
Usługa potwierdza zapis komunikatem Zaktualizowano harmonogram odświeżania nordvella_22_ols, a w ustawieniach modelu pojawia się wiersz Następne odświeżanie: 17.10.2026, 06:00:00. Ta sama godzina jest w kolumnie Następne odświeżanie na liście obszaru roboczego.
Etykieta strefy mówi UTC+01:00, ale usługa liczy czas polski razem z czasem letnim. W mailu o błędzie (sekcja niżej) następne odświeżenie podano jako 4:00 UTC, czyli 6:00 w Polsce w październiku.
| Ustawienie | Co wybieramy | Co warto wiedzieć |
|---|---|---|
| Strefa czasowa | (UTC+01:00) Sarajewo, Skopje, Warszawa, Zagrzeb | domyślnie UTC; strefa ustala też bieżącą datę dla odświeżania przyrostowego |
| Konfiguruj harmonogram odświeżania | Włączony | przełącznik był wyszarzony, dopóki model nie miał bramy |
| Częstotliwość odświeżania | Codziennie | Co tydzień dodaje wybór dni tygodnia |
| Godzina | 6:00 AM i 1:00 PM | co pół godziny; u nas formularz przyjął do 48 godzin |
| Powiadomienia | Właściciel modelu semantycznego | mail przychodzi po nieudanym odświeżeniu zaplanowanym |
Ile odświeżeń na dobę? Obszar Nordvella Zarzad działa u nas na pojemności próbnej Microsoft Fabric i formularz pozwolił dodać 48 godzin. W obszarze bez pojemności, przy samej licencji Power BI Pro, Microsoft dopuszcza 8 odświeżeń zaplanowanych na dobę. Nasze dwa, rano i w południe, mieszczą się w obu limitach.
Co chcemy osiągnąć. Zobaczyć, jak wygląda nieudane odświeżenie, i znaleźć jego przyczynę w trzech miejscach: w ustawieniach modelu, w historii i w mailu.
Błąd łatwo wywołać samemu: wystarczy, że pliku nie ma tam, gdzie szuka go zapytanie. Sprawdziliśmy to celowo: na komputerze z bramą zmieniliśmy nazwę pliku Nordvella_
Na liście obszaru roboczego przy modelu pojawiła się ikona ostrzeżenia z podpowiedzią Wystąpił błąd zestawu danych. W ustawieniach modelu, na samej górze, usługa pisze: Ostatnia próba odświeżenia zakończyła się niepowodzeniem oraz Wystąpił błąd podczas przetwarzania modelu semantycznego. Link Pokaż szczegóły rozwija pełny komunikat.
Komunikat jest długi, ale przyczynę czyta się w dwóch miejscach: wartość UnderlyingErrorMessage mówi File or Folder: Could not find file 'C:\Kurs_PBI\Nordvella_dane.xlsx', a Reason to DataSource.NotFound. Identyfikatory klastra, działania i żądania przydają się dopiero w zgłoszeniu do pomocy technicznej Microsoft.
Po tym odświeżeniu ręcznym mail nie przyszedł. Przyszedł po odświeżeniu zaplanowanym: dodaliśmy na chwilę do harmonogramu godzinę 1:30, przed nią znowu zmieniliśmy nazwę pliku i poczekaliśmy. W historii wpis Zaplanowane ma start 01:30:00 i koniec 01:37:47, czyli usługa wykonała go niemal osiem minut po godzinie z harmonogramu. Odświeżenie zaplanowane nie startuje co do minuty.
Mail przyszedł o 01:37 z tematem Refresh failed: nordvella_22_ols has failed to refresh. Uwaga na zdanie Failure details: pisze o błędzie wewnętrznym usługi (internal service error) i radzi spróbować później. Prawdziwą przyczynę podaje dopiero JSON pod spodem: ten sam brak pliku co w ustawieniach modelu. Na końcu jest termin następnego odświeżenia w czasie UTC.
| Komunikat | Co oznacza | Co zrobić |
|---|---|---|
| File or Folder: Could not find file, DataSource.NotFound | pliku nie ma pod ścieżką z zapytania | przywróć plik albo zmień ścieżkę w Desktopie i opublikuj model ponownie |
| Twoja brama danych jest w trybie offline lub nie można się z nią połączyć | komputer z bramą jest wyłączony albo brama nie pracuje | włącz komputer, sprawdź aplikację bramy, odśwież jeszcze raz |
| Nie można dodać do bramy (przy źródle Python) | brama standardowa nie obsługuje kroku Pythona | użyj bramy osobistej |
| Nie można przetestować połączenia ze źródłem danych | źródło nie ma jeszcze poświadczeń | Edytuj poświadczenia przy każdym źródle |
Po przywróceniu pliku wystarczy Odśwież teraz. U nas kolejne odświeżenie, od 01:19:21 do 01:19:49, skończyło się stanem Zakończono.
Co chcemy osiągnąć. Wiedzieć, kiedy zamiast bramy osobistej potrzebna jest standardowa, i jak dodać w niej połączenie z bazą Nordvella w SQL Server.
Brama osobista wystarcza, dopóki model jest Twój. Gdy z bazy SQL Server korzysta kilka osób i kilka modeli, firma instaluje bramę standardową na komputerze, który pracuje cały czas, i zarządza połączeniami w jednym miejscu. Z takiej bramy korzysta u nas model z lekcji 19, z odświeżaniem przyrostowym na bazie SQL Server.
Instalacja przebiega podobnie: przycisk Pobierz tryb standardowy, instalator z folderem C:\Program Files\On-premises data gateway i logowanie kontem służbowym. Po logowaniu bramę standardową rejestrujesz pod nazwą (u nas Brama-Nordvella) i z kluczem odzyskiwania, który pozwala ją później przenieść albo odtworzyć. Klucz zapisz w menedżerze haseł.
Połączenia bramy standardowej zakładasz w usłudze: koło zębate (Ustawienia), Zarządzaj połączeniami i bramami, przycisk Nowe. W panelu Nowe połączenie wybierz Lokalnie, a w polu Nazwa klastra bramy bramę standardową. Brama osobista się tam nie pojawia, na liście była u nas tylko Brama-Nordvella.
Dalej wpisz nazwę połączenia, Typ połączenia SQL Server, Serwer 192.168.1.206,1433 i Bazę danych Nordvella (u Ciebie Twój serwer z bazą odtworzoną z pliku Nordvella.bak.gz). Metoda uwierzytelniania ma cztery pozycje: Podstawowe, System Windows, OAuth 2.0 i Nazwa główna usługi. Przy Podstawowe wpisujesz login i hasło użytkownika SQL Server. Pod polami usługa wyjaśnia, że poświadczenia są szyfrowane kluczem przechowywanym lokalnie na serwerze bramy. Poziom prywatności ma domyślnie wartość Organizacyjne. Serwer i bazę wpisz tak samo jak w Power BI Desktop, inaczej usługa nie dopasuje źródła modelu do połączenia (to samo pokazujemy w lekcji 19).
Zakładka Połączenia pokazuje oba tryby obok siebie. Połączenia bramy osobistej, w tym plik i Python modelu nordvella_22_ols, mają w kolumnie Nazwa klastra bramy dopisek (tryb osobisty). Połączenie Nordvella SQL korzysta z Brama-Nordvella. Na zakładce Lokalne bramy danych jest tylko Brama-Nordvella, ze stanem i liczbą bram w klastrze (u nas 1). Brama osobista na tej liście się nie pojawia.
| Krok | Gdzie | Jak sprawdzić |
|---|---|---|
| 1. Plik w ścieżce z zapytania | komputer z bramą, C:\Kurs_PBI\Nordvella_dane.xlsx | plik otwiera się z tej ścieżki |
| 2. Brama osobista | aplikacja bramy na komputerze | Your gateway is all set up |
| 3. Brama w modelu | usługa, ustawienia modelu, Połączenia bramy i chmury | Brama osobista: Działa na maszynie ... |
| 4. Poświadczenia | ustawienia modelu, Poświadczenia źródła danych | brak ostrzeżeń przy pliku i przy Pythonie |
| 5. Test ręczny | lista obszaru roboczego, Odśwież teraz | Historia odświeżania: Zakończono |
| 6. Harmonogram | ustawienia modelu, sekcja Odśwież | strefa Warszawa, Włączony, godziny, Następne odświeżanie |
| 7. Powiadomienia | ustawienia modelu, sekcja Odśwież | zaznaczony Właściciel modelu semantycznego |
W kolejnym rozdziale przenosimy przekształcenia Power Query do usługi: przepływy danych liczą dane raz, w chmurze, a wiele modeli korzysta z ich wyniku.
Komentarze (0)
Brak komentarzy...