แชร์ผ่าน


บทช่วยสอน: แยกและคํานวณหน่วยวัด Power BI จากสมุดบันทึก Jupyter

บทช่วยสอนนี้แสดงวิธีใช้ SemPy (ตัวอย่าง) เพื่อคํานวณหน่วยวัดในแบบจําลองความหมาย (ชุดข้อมูล Power BI)

ในบทช่วยสอนนี้ คุณจะเรียนรู้วิธีการ:

  • ประเมินหน่วยวัด Power BI ทางโปรแกรมผ่านอินเทอร์เฟซ Python ของไลบรารี Python ของลิงก์ทางความหมาย (SemPy)
  • ทําความคุ้นเคยกับส่วนประกอบของ SemPy ที่ช่วยขจัดช่องว่างระหว่าง AI และ BI คอมโพเนนต์เหล่านี้ประกอบด้วย:
    • FabricDataFrame - โครงสร้างที่คล้ายกับ pandas เพิ่มขึ้นด้วยข้อมูลความหมายเพิ่มเติม
    • ฟังก์ชันที่มีประโยชน์ที่ช่วยให้คุณสามารถดึงข้อมูลแบบจําลองความหมาย รวมถึงข้อมูลดิบ การกําหนดค่า และหน่วยวัด

ข้อกำหนดเบื้องต้น

ติดตามในสมุดบันทึก

สมุดบันทึก powerbi_measures_tutorial.ipynb มาพร้อมกับบทช่วยสอนนี้

ตั้งค่าสมุดบันทึก

ในส่วนนี้ คุณตั้งค่าสภาพแวดล้อมของสมุดบันทึกด้วยโมดูลและข้อมูลที่จําเป็น

  1. ติดตั้ง SemPy จาก PyPI โดยใช้ %pip ความสามารถในการติดตั้งในบรรทัดภายในสมุดบันทึก:

    %pip install semantic-link
    
  2. ทําการนําเข้าโมดูลที่จําเป็นซึ่งคุณจะต้องใช้ในภายหลัง:

    import sempy.fabric as fabric
    
  3. คุณสามารถเชื่อมต่อกับพื้นที่ทํางานของ Power BI ได้ ระบุรายการแบบจําลองความหมายในพื้นที่ทํางาน:

    fabric.list_datasets()
    
  4. โหลดแบบจําลองความหมาย ในบทช่วยสอนนี้ คุณใช้ แบบจําลองความหมาย PBIX ตัวอย่างการวิเคราะห์การค้าปลีก:

    dataset = "Retail Analysis Sample PBIX"
    

แสดงรายการหน่วยวัดพื้นที่ทํางาน

แสดงรายการหน่วยวัดในแบบจําลองความหมายโดยใช้ฟังก์ชันของ list_measures SemPy ดังนี้:

fabric.list_measures(dataset)

ประเมินหน่วยวัด

ในส่วนนี้ คุณประเมินหน่วยวัดได้หลายวิธี โดยใช้ฟังก์ชันของ evaluate_measure SemPy

ประเมินหน่วยวัดดิบ

ในโค้ดต่อไปนี้ ให้ใช้ฟังก์ชันของ evaluate_measure SemPy เพื่อคํานวณหน่วยวัดที่กําหนดค่าไว้ล่วงหน้าซึ่งเรียกว่า "ขนาดพื้นที่การขายโดยเฉลี่ย" คุณสามารถดูสูตรพื้นฐานสําหรับหน่วยวัดนี้ได้ในผลลัพธ์ของเซลล์ก่อนหน้า

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

ประเมินหน่วยวัดด้วย groupby_columns

คุณสามารถจัดกลุ่มผลลัพธ์หน่วยวัดตามคอลัมน์บางคอลัมน์โดยใส่พารามิเตอร์ groupby_columnsเพิ่มเติม :

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

ในโค้ดก่อนหน้านี้ คุณจัดกลุ่มตามคอลัมน์ChainและDistrictNameStoreของตารางในแบบจําลองความหมาย

ประเมินหน่วยวัดด้วยตัวกรอง

คุณยังสามารถใช้ filters พารามิเตอร์ เพื่อระบุค่าเฉพาะที่ผลลัพธ์สามารถประกอบด้วย สําหรับคอลัมน์เฉพาะ:

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

ในโค้ด Store ก่อนหน้า คือชื่อของตาราง Territory คือชื่อของคอลัมน์ และ PA เป็นหนึ่งในค่าที่ตัวกรองอนุญาต

ประเมินหน่วยวัดในหลายตาราง

คุณสามารถจัดกลุ่มหน่วยวัดตามคอลัมน์ที่ครอบคลุมหลายตารางในแบบจําลองความหมายได้

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

ประเมินหลายหน่วยวัด

ฟังก์ชัน evaluate_measure นี้ช่วยให้คุณสามารถใส่ตัวระบุของการวัดหลายรายการและส่งออกค่าจากการคํานวณใน DataFrame เดียวกัน:

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

ใช้ตัวเชื่อมต่อ XMLA ของ Power BI

ไคลเอ็นต์แบบจําลองความหมายเริ่มต้นได้รับการสนับสนุนโดย REST API ของ Power BI ถ้ามีปัญหาใด ๆ ในการเรียกใช้คิวรีกับไคลเอ็นต์นี้ คุณสามารถสลับ Backend ไปเป็นอินเทอร์เฟซ XMLA ของ Power BI โดยใช้use_xmla=True พารามิเตอร์ SemPy ยังคงเหมือนเดิมสําหรับการคํานวณหน่วยวัดที่มี 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)

ดูบทช่วยสอนอื่น ๆ สําหรับลิงก์ความหมาย / SemPy: