Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Data Explorer to szybka i wysoce skalowalna usługa eksploracji danych na potrzeby danych dziennika i telemetrycznych. Power BI to rozwiązanie do analizy biznesowej, które umożliwia wizualizowanie danych i udostępnianie wyników w całej organizacji. Za pomocą dynamicznych parametrów języka M można tworzyć raporty usługi Power BI, które zapewniają osobom przeglądającym możliwość używania filtrów lub fragmentatorów do ustawiania wartości parametrów zapytania KQL.
W tym artykule zaczniesz od nowego projektu usługi Power BI i użyjesz przykładowych danych do utworzenia raportu, który używa fragmentatora do filtrowania danych w dynamicznym zapytaniu języka M połączonym z funkcją KQL.
Wymagania wstępne
Do ukończenia tego artykułu potrzebne są następujące elementy:
- Konto Microsoft lub tożsamość użytkownika Microsoft Entra, aby zalogować się do klastra pomocy.
- Program Power BI Desktop (wybierz pozycję POBIERZ BEZPŁATNIE)
- Włączanie parametrów zapytania dynamicznego języka M
Dodawanie połączenia zapytań bezpośrednich z funkcją KQL
Najpierw skonfiguruj łącznik dla usługi Power BI.
W programie Power BI Desktop na karcie Narzędzia główne wybierz pozycję Pobierz dane, a następnie pozycję Więcej.
Wyszukaj pozycję Azure Data Explorer, wybierz pozycję Azure Data Explorer, a następnie Połącz.
Na ekranie łącznika wypełnij formularz następującymi informacjami.
Ustawienie Wartość Opis pola Klaster https://help.kusto.windows.net Adres URL klastra pomocy. W przypadku innych klastrów adres URL ma postać https://<Nazwa_klastra>.<Region>.kusto.windows.net. baza danych Pozostaw puste. Baza danych hostowana w klastrze, z którą nawiązujesz połączenie. Wybierzemy ją w późniejszym kroku. Nazwa tabeli Pozostaw puste. Jedna z tabel w bazie danych lub zapytanie, takie jak StormEvents | take 1000. Wybierzemy ją w późniejszym kroku.Opcje zaawansowane Pozostaw puste. Opcje zapytań, na przykład rozmiar zestawu wyników. Tryb łączności danych DirectQuery Określa, czy usługa Power BI importuje dane, czy łączy się bezpośrednio z zapytaniami dynamicznymi języka M. Uwaga
W trybie importu dane są przenoszone do usługi Power BI. W trybie DirectQuery dane są odpytywane bezpośrednio z klastra.
Użyj trybu importu , gdy:
- Zestaw danych jest mały.
- Nie potrzebujesz danych niemal w czasie rzeczywistym.
- Twoje dane są już zagregowane lub przeprowadzasz agregację w usłudze Kusto
Użyj trybu DirectQuery , gdy:
- Zestaw danych jest bardzo duży.
- Potrzebujesz danych niemal w czasie rzeczywistym.
Opcje zaawansowane
Ustawienie Przykładowa wartość Opis pola Ogranicz liczbę rekordów wyników zapytania 300000Maksymalna liczba rekordów do zwrócenia w wyniku Ogranicz rozmiar danych wyników zapytania 4194304Maksymalny rozmiar danych w bajtach zwracany w wyniku Wyłącz obcinanie zestawu wyników trueWłączanie/wyłączanie obcinania wyników przy użyciu opcji żądania notruncation Dodatkowe instrukcje ustawiające set query_datascope=hotcacheUstawia właściwości żądania na czas trwania zapytania. Właściwości żądania kontrolują sposób wykonywania zapytania i zwracania wyników. Jeśli jeszcze nie masz połączenia z klastrem pomocy, zaloguj się. Zaloguj się przy użyciu konta organizacyjnego, a następnie wybierz pozycję Połącz.
Na ekranie Nawigator wykonaj następujące czynności:
- Rozwiń bazę danych Przykłady.
- Wybierz funkcję EventsByStates.
- Dla parametru EventTypeParam wprowadź High Wind, a następnie wybierz Zastosuj, aby wyświetlić podgląd danych.
- Wybierz Przekształć dane.
Funkcja zostanie otwarta jako dynamiczne zapytanie języka M w Edytor Power Query, w którym kontynuujemy tworzenie parametru do użycia z dynamicznym zapytaniem języka M.
Uwaga
Funkcja EventsByStates to przykładowa funkcja tylko do odczytu, której można użyć do testowania funkcjonalności parametrów zapytania Dynamic M. Definiuje ostateczną wersję, która obsługuje wiele i wybiera wszystkie wartości parametru. Jeśli chcesz przetestować funkcję wyboru pojedynczego we własnym klastrze i stopniowo przetestować funkcjonalność, możesz rozpocząć od następującej definicji pojedynczego wyboru funkcji.
.create-or-alter function EventsByStates (EventTypeParam:string) { StormEvents | where EventType == EventTypeParam | summarize Events=count() by EventType, State }W Edytor Power Query wykonaj następujące czynności:
Wybierz pozycję Zarządzaj parametrami>Nowy parametr.
Wypełnij szczegóły następującymi informacjami, a następnie wybierz przycisk OK.
Ustawienie Sugerowana wartość Opis Nazwa/nazwisko Type_Param Nazwa parametru. Zalecamy dodanie sufiksu, takiego jak _Param, który umożliwia łatwe rozpoznawanie i rozróżnianie go od innych parametrów, które można utworzyć. Typ Tekst Typ parametru. Typ parametru musi być zgodny z typem zadeklarowany w funkcji KQL. Tekst w usłudze Power BI jest odpowiednikiem ciągu w języku KQL. Bieżąca wartość Wysoki wiatr Wartość parametru. Musisz podać wartość domyślną dla tego pola.
Po powrocie na ekran nawigacji zastąp wartość parametru funkcji M nowym parametrem.
Opcjonalnie powtórz kroki, aby utworzyć więcej parametrów i zastąpić je w zapytaniu Dynamic M.
Utwórz tabelę z wartościami fragmentatora raportu.
Uwaga
W tabeli zostaną wyświetlone typy zdarzeń, według których chcesz filtrować. Możesz zaimportować tabelę lub utworzyć nową tabelę i ręcznie wprowadzić dane.
Na karcie Narzędzia główne wybierz pozycję Ostatnie źródła, a następnie wybierz klaster pomocy.
Na ekranie Nawigator rozwiń bazę danych Przykłady , wybierz tabelę StormEvents , a następnie wybierz przycisk OK.
W oknie dialogowym Ustawienia połączenia wybierz pozycję Importuj, a następnie wybierz przycisk OK.
Kliknij prawym przyciskiem myszy kolumnę EventType , a następnie wybierz polecenie Usuń inne kolumny.
Ponownie kliknij prawym przyciskiem myszy kolumnę EventType , a następnie wybierz polecenie Usuń duplikaty.
Opcjonalnie dodaj kolejną kolumnę, aby zdefiniować kolejność sortowania dla wartości fragmentatora.
Zmień nazwę tabeli na SlicerValues.
Na karcie Strona główna wybierz Zamknij i zastosuj.
Uwaga
Zostanie wyświetlone okno dialogowe z ostrzeżeniem o ryzyku bezpieczeństwa. Kliknij przycisk OK, aby kontynuować. Przyczyną wyświetlenia okna dialogowego jest dodanie drugiego źródła danych w usłudze Power BI. Aby uzyskać więcej informacji, zobacz Poziomy prywatności programu Power BI Desktop. Jednak sposób użycia źródeł danych w tym przykładzie jest całkowicie bezpieczny.
Powiąż kolumnę EventType w tabeli SlicerValues z parametrem .
- Wybierz widok Model po lewej stronie.
- W tabeli SlicerValues wybierz kolumnę EventType.
- W okienku Właściwości rozwiń węzeł Zaawansowane.
- W obszarze Powiązanie z parametrem wybierz pozycję Type_Param. Spowoduje to powiązanie kolumny EventType z parametrem.
Uwaga
Zostanie wyświetlone okno dialogowe z ostrzeżeniem o ryzyku bezpieczeństwa. Kliknij przycisk Kontynuuj , aby kontynuować. Przyczyną wyświetlenia okna dialogowego jest to, że usługa Power BI wysyła dane z jednego źródła do innego. Aby uzyskać więcej informacji, zobacz Poziomy prywatności programu Power BI Desktop. Jednak sposób użycia parametru w tym przykładzie jest całkowicie bezpieczny.
Wizualizacja danych w raporcie
Teraz, gdy już masz dane w programie Power BI Desktop, na ich podstawie możesz tworzyć raporty. Utworzysz prosty raport z tabelą z podsumowaniem zdarzeń według stanu i fragmentatorem, aby filtrować tabelę według typu zdarzenia.
Wybierz widok Raport po lewej stronie.
Dodaj tabelę do raportu.
- W okienku Wizualizacje wybierz pozycję Tabela. Pusta tabela jest dodawana do kanwy raportu.
- W okienku Pola rozwiń EventsByStates i wybierz State oraz Events. Masz teraz tabelę przedstawiającą podsumowanie zdarzeń według stanu.
Dodaj fragmentator do raportu.
- W okienku Wizualizacja wybierz pozycję Fragmentator. Pusty fragmentator zostaje dodany do kanwy raportu.
- W panelu Pola rozwiń SlicerValues i wybierz EventType. Masz teraz fragmentator danych pokazujący typy zdarzeń.
Raport jest teraz gotowy do wyświetlenia. Zwróć uwagę, że podczas wybierania wartości typu zdarzenia we fragmentatorze tabela oparta na zapytaniu M jest filtrowana według typu zdarzenia powiązanego z parametrem zapytania M.
Zapisz raport.
Akceptowanie wielu wartości parametrów
Jeśli chcesz filtrować wiele wartości parametrów we fragmentatorze, możesz to osiągnąć, dostosowując właściwości kolumny EventType i modyfikując funkcję KQL w następujący sposób:
Dostosuj właściwości kolumny EventType w tabeli SlicerValues .
- Wybierz widok Model po lewej stronie.
- W tabeli SlicerValues wybierz kolumnę EventType.
- W okienku Właściwości rozwiń pozycję Zaawansowane i włącz ustawienie Wybór wielokrotny.
Zmodyfikuj funkcję KQL, ustawiając typ parametru na dynamiczny i zmieniając
wherewarunek, aby sprawdzić listę wartości parametrów..create-or-alter function EventsByStates (EventTypeParam:dynamic) { StormEvents | where EventType in (EventTypeParam) | summarize Events=count() by EventType, State }
Możesz teraz wrócić do raportu i wybrać kilka typów zdarzeń we fragmentatorze.
Akceptowanie wszystkich wartości parametrów
Jeśli chcesz filtrować wszystkie wartości parametrów we fragmentatorze, możesz to osiągnąć, dostosowując właściwości kolumny EventType , modyfikując funkcję KQL i aktualizując kontrolkę fragmentatora w następujący sposób:
Dostosuj właściwości kolumny EventType w tabeli SlicerValues .
- Wybierz widok Model po lewej stronie.
- W tabeli SlicerValues wybierz kolumnę EventType.
- W okienku Właściwości rozwiń pozycję Zaawansowane i włącz ustawienie Wybierz wszystko .
- Opcjonalnie zmień ustawienie Wybierz wszystkie wartości . W tym przykładzie użyjesz wartości domyślnej SelectAll.
Zaktualizuj kontrolkę fragmentatora, aby wyświetlić opcję Zaznacz wszystko .
- Wybierz widok Raport po lewej stronie.
- Wybierz fragmentator EventType.
- W okienku Wizualizacje wybierz pozycję Format, rozwiń pozycję Kontrolki zaznaczenia i włącz ustawienie Pokaż element „Zaznacz wszystko”. Fragmentator typu zdarzenia pokazuje opcję zaznacz wszystkie w górnej części listy.
Zmodyfikuj funkcję KQL, ustawiając typ parametru na dynamiczny i zmieniając
wherewarunek, aby sprawdzić wartość SelectAll lub listę wartości parametrów..create-or-alter function EventsByStates (EventTypeParam:dynamic) { StormEvents | where ("__SelectAll__" in (EventTypeParam)) or (EventType in (EventTypeParam)) | summarize Events=count() by EventType, State }
Teraz możesz wrócić do raportu i wybrać wszystkie typy zdarzeń we fragmentatorze.
Rozważania i ograniczenia
Podczas korzystania z dynamicznych parametrów zapytania języka M należy wziąć pod uwagę pewne zagadnienia i ograniczenia:
- Pojedynczy parametr nie może być powiązany z wieloma polami ani odwrotnie.
- Następujące typy parametrów nie są obsługiwane:
- Dowolne
- Czas trwania
- Prawda/fałsz
- Plik binarny
- Następujące filtry nie są obsługiwane:
- Fragmentator czasu względnego lub filtr
- Data relatywna
- Fragmentator hierarchii
- Filtr uwzględniający wiele pól
- Wyklucz filtr / Bez filtrów
- Krzyżowe podświetlanie
- Filtr przechodzenia do szczegółów
- Filtr drążenia krzyżowego
- Filtr Top N
Czyszczenie zasobów
Jeśli nie potrzebujesz już raportu utworzonego na potrzeby tego artykułu, usuń plik programu Power BI Desktop (pbix).