Bagikan melalui


Mengekstrak dan menghitung pengukuran Power BI dari buku catatan Jupyter

Tutorial ini menunjukkan cara menggunakan SemPy (pratinjau) untuk menghitung pengukuran dalam model semantik Power BI.

Dalam tutorial ini, Anda akan belajar cara:

  • Mengevaluasi pengukuran Power BI secara terprogram dengan menggunakan antarmuka Python pustaka Semantic Link (SemPy)
  • Pelajari tentang komponen SemPy yang membantu menjenjang AI dan BI:
    • FabricDataFrame—struktur seperti panda ditingkatkan dengan informasi semantik
    • Fungsi yang mendapatkan model semantik, termasuk data mentah, konfigurasi, dan pengukuran

Prasyarat

  • Di panel navigasi, pilih Ruang Kerja, lalu pilih ruang kerja Anda untuk mengaturnya sebagai ruang kerja saat ini.

  • Unduh model semantik PBIX.pbix Sampel Analisis Ritel dan unggah ke ruang kerja Anda.

Ikuti langkah-langkah dalam buku catatan

Notebook powerbi_measures_tutorial.ipynb menyertai tutorial ini.

Menyiapkan buku catatan

Di bagian ini, Anda menyiapkan lingkungan notebook.

  1. Instal SemPy dari PyPI dengan menggunakan %pip sebaris di buku catatan.

    %pip install semantic-link-sempy
    
  2. Impor modul yang akan Anda gunakan nanti.

    import sempy.fabric as fabric
    
  3. Sambungkan ke ruang kerja Power BI, dan cantumkan model semantik di ruang kerja.

    fabric.list_datasets()
    
  4. Muat model semantik. Dalam tutorial ini, Anda menggunakan model semantik Sampel Analisis Ritel.

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

Mencantumkan pengukuran ruang kerja

Gunakan SemPy untuk list_measures mencantumkan pengukuran dalam model semantik:

fabric.list_measures(dataset)

Mengevaluasi langkah-langkah

Gunakan fungsi SemPy evaluate_measure untuk mengevaluasi langkah-langkah dengan cara yang berbeda.

Mengevaluasi pengukuran awal

Gunakan fungsi SemPy evaluate_measure untuk menghitung ukuran yang telah dikonfigurasi sebelumnya bernama "Ukuran Area Penjualan Rata-Rata".

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

Evaluasi suatu metode dengan groupby_columns

Kelompokkan hasil menurut kolom dengan menggunakan groupby_columns parameter :

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

Kode ini dikelompokkan menurut Store[Chain] dan Store[DistrictName].

Mengevaluasi pengukuran dengan filter

filters Gunakan parameter untuk membatasi hasil ke nilai kolom tertentu:

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

Dalam contoh ini, Store adalah tabel, Territory adalah kolom, dan PA merupakan nilai yang diizinkan.

Mengevaluasi ukuran dalam beberapa tabel

Kelompokkan menurut kolom di beberapa tabel dalam model semantik.

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

Mengevaluasi beberapa langkah

Fungsi ini evaluate_measure memungkinkan Anda menyediakan beberapa pengidentifikasi pengukuran dan mengembalikan nilai terhitung dalam satu DataFrame:

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

Menggunakan konektor XmlA Power BI

Klien model semantik default menggunakan REST API Power BI. Jika kueri gagal dengan klien ini, beralihlah ke titik akhir XmlA Power BI dengan mengatur use_xmla=True. Parameter SemPy sama untuk mengukur perhitungan dengan 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)

Lihat tautan semantik lainnya dan tutorial SemPy: