Udostępnij przez


Wyodrębnianie i obliczanie miar usługi Power BI z notesu Jupyter

W tym samouczku pokazano, jak używać rozwiązania SemPy (wersja zapoznawcza) do obliczania miar w modelach semantycznych usługi Power BI.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Programowe ocenianie miar usługi Power BI przy użyciu interfejsu języka Python biblioteki Semantic Link (SemPy)
  • Dowiedz się więcej o składnikach SemPy, które ułatwiają łączenie sztucznej inteligencji i analizy biznesowej:
    • FabricDataFrame — struktura podobna do biblioteki pandas rozszerzona o informacje semantyczne
    • Funkcje, które pobierają modele semantyczne, w tym nieprzetworzone dane, konfiguracje i miary

Wymagania wstępne

  • W okienku nawigacji wybierz pozycję Obszary robocze, a następnie wybierz obszar roboczy, aby ustawić go jako bieżący obszar roboczy.

  • Pobierz model semantyczny PBIX.pbix z przykładu Retail Analysis i przekaż go do obszaru roboczego.

Śledź w notesie

Notatnik powerbi_measures_tutorial.ipynb towarzyszy temu samouczkowi.

Konfigurowanie notesu

W tej sekcji skonfigurujesz środowisko notesu.

  1. Zainstaluj SemPy z interfejsu PyPI przy użyciu %pip wbudowanego w notesie.

    %pip install semantic-link-sempy
    
  2. Zaimportuj moduły, których będziesz używać później.

    import sempy.fabric as fabric
    
  3. Połącz się z obszarem roboczym usługi Power BI i wyświetl listę modeli semantycznych w obszarze roboczym.

    fabric.list_datasets()
    
  4. Załaduj model semantyczny. W tym samouczku użyjesz modelu semantycznego przykładu Retail Analysis.

    dataset = "Retail Analysis Sample"
    
    dataset = "Retail Analysis Sample PBIX"
    

Wypisz miary obszaru roboczego

Użyj narzędzi SemPy list_measures , aby wyświetlić listę miar w modelu semantycznym:

fabric.list_measures(dataset)

Ewaluacja działań

Funkcja SemPy umożliwia evaluate_measure ocenę miar na różne sposoby.

Ocena nieprzetworzonej miary

Funkcja SemPy umożliwia evaluate_measure obliczenie wstępnie skonfigurowanej miary o nazwie "Średni rozmiar obszaru sprzedaży".

fabric.evaluate_measure(dataset, measure="Average Selling Area Size")

Oceń miarę za pomocą groupby_columns

Grupuj wynik według kolumn przy użyciu parametru groupby_columns :

fabric.evaluate_measure(dataset, measure="Average Selling Area Size", groupby_columns=["Store[Chain]", "Store[DistrictName]"])

Ten kod grupuje według Store[Chain] i Store[DistrictName].

Ocena miary za pomocą filtrów

Użyj parametru , filters aby ograniczyć wyniki do określonych wartości kolumn:

fabric.evaluate_measure(dataset, \
                        measure="Total Units Last Year", \
                        groupby_columns=["Store[Territory]"], \
                        filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]})

W tym przykładzie Store jest to tabela, Territory jest kolumną i PA jest dozwoloną wartością.

Ocena miary w wielu tabelach

Grupuj według kolumn w wielu tabelach w modelu semantycznym.

fabric.evaluate_measure(dataset, measure="Total Units Last Year", groupby_columns=["Store[Territory]", "Sales[ItemID]"])

Ocena wielu miar

Funkcja evaluate_measure umożliwia podanie wielu identyfikatorów miar i zwrócenie wartości obliczeniowych w jednym elemecie DataFrame:

fabric.evaluate_measure(dataset, measure=["Average Selling Area Size", "Total Stores"], groupby_columns=["Store[Chain]", "Store[DistrictName]"])

Używanie łącznika XMLA usługi Power BI

Domyślny klient modelu semantycznego używa interfejsów API REST usługi Power BI. Jeśli zapytania kończą się niepowodzeniem z tym klientem, przełącz się do punktu końcowego XMLA usługi Power BI, ustawiając wartość use_xmla=True. Parametry SemPy są takie same w przypadku obliczeń miar za pomocą xmlA.

fabric.evaluate_measure(dataset, \
                        measure=["Average Selling Area Size", "Total Stores"], \
                        groupby_columns=["Store[Chain]", "Store[DistrictName]"], \
                        filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]}, \
                        use_xmla=True)

Zobacz inne samouczki semantyczne i SemPy: