หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
บทช่วยสอนนี้แสดงวิธีการใช้สมุดบันทึก Jupyter เพื่อโต้ตอบกับ Power BI และตรวจหาความสัมพันธ์ระหว่างตารางด้วยไลบรารี SemPy
ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีการ:
- ค้นพบความสัมพันธ์ในแบบจําลองความหมาย (ชุดข้อมูล Power BI) โดยใช้ไลบรารี Python ของลิงก์ความหมาย (SemPy)
- ใช้ส่วนประกอบ SemPy ที่รวมเข้ากับ Power BI และทําการวิเคราะห์คุณภาพข้อมูลโดยอัตโนมัติ คอมโพเนนต์เหล่านี้ประกอบด้วย:
-
FabricDataFrame- โครงสร้างคล้ายแพนด้าที่ปรับปรุงด้วยข้อมูลความหมาย - ฟังก์ชันที่ดึงโมเดลความหมายจากพื้นที่ทํางาน Fabric ไปยังสมุดบันทึกของคุณ
- ฟังก์ชันที่ทดสอบการขึ้นต่อกันของฟังก์ชันและระบุการละเมิดความสัมพันธ์ในแบบจําลองความหมายของคุณ
-
ข้อกําหนดเบื้องต้น
รับ การสมัครใช้งาน Microsoft Fabric หรือลงทะเบียนสําหรับ Microsoft Fabric รุ่นทดลองใช้ฟรี
ลงชื่อเข้าใช้ Microsoft Fabric
ใช้ตัวสลับประสบการณ์การใช้งานที่ด้านล่างซ้ายของหน้าหลักของคุณเพื่อเปลี่ยนเป็น Fabric
ไปที่ พื้นที่ทํางาน ในบานหน้าต่างนําทาง แล้วเลือกพื้นที่ทํางานของคุณเพื่อตั้งค่าเป็นพื้นที่ทํางานปัจจุบัน
ดาวน์โหลดแบบจําลองความหมาย Customer Profitability Sample.pbix และ Customer Profitability Sample (auto).pbix จาก ที่เก็บ GitHub ตัวอย่างผ้า แล้วอัปโหลดไปยังพื้นที่ทํางานของคุณ
ติดตามในสมุดบันทึก
ใช้สมุดบันทึก powerbi_relationships_tutorial.ipynb เพื่อทําตาม
เมื่อต้องการเปิดสมุดบันทึกที่มาพร้อมกับบทช่วยสอนนี้ ให้ทําตามคําแนะนําใน เตรียมระบบของคุณสําหรับบทช่วยสอนวิทยาศาสตร์ข้อมูล การนําเข้าสมุดบันทึกไปยังพื้นที่ทํางานของคุณ
ถ้าคุณต้องการคัดลอกและวางโค้ดจากหน้านี้ สร้างสมุดบันทึกใหม่
ตรวจสอบให้แน่ใจว่า แนบ lakehouse เข้ากับ สมุดบันทึกก่อนที่คุณจะเริ่มเรียกใช้โค้ด
ตั้งค่าสมุดบันทึก
ตั้งค่าสภาพแวดล้อมโน้ตบุ๊กด้วยโมดูลและข้อมูลที่คุณต้องการ
ติดตั้งแพคเกจจาก
semantic-linkPyPI โดยใช้คําสั่งอิน%pipไลน์ในสมุดบันทึก%pip install semantic-linkนําเข้าโมดูลที่คุณ
sempyจะใช้ในภายหลังimport sempy.fabric as fabric from sempy.relationships import plot_relationship_metadata from sempy.relationships import find_relationships from sempy.fabric import list_relationship_violationsนําเข้าไลบรารี
pandasและตั้งค่าตัวเลือกการแสดงผลสําหรับการจัดรูปแบบเอาต์พุตimport pandas as pd pd.set_option('display.max_colwidth', None)
## Explore semantic models
This tutorial uses the Customer Profitability Sample semantic model [_Customer Profitability Sample.pbix_](https://github.com/microsoft/fabric-samples/blob/main/docs-samples/data-science/datasets/Customer%20Profitability%20Sample.pbix). Learn about the semantic model in [Customer Profitability sample for Power BI](/power-bi/create-reports/sample-customer-profitability).
- Use SemPy's `list_datasets` function to explore semantic models in your current workspace:
```python
fabric.list_datasets()
สําหรับส่วนที่เหลือของสมุดบันทึกนี้ ให้ใช้แบบจําลองความหมายตัวอย่างความสามารถในการทํากําไรของลูกค้าสองรุ่น:
- ตัวอย่างความสามารถในการทํากําไรของลูกค้า: แบบจําลองความหมายตามที่ให้มาในตัวอย่าง Power BI พร้อมความสัมพันธ์ของตารางที่กําหนดไว้ล่วงหน้า
- ตัวอย่างความสามารถในการทํากําไรของลูกค้า (อัตโนมัติ): ข้อมูลเดียวกัน แต่ความสัมพันธ์ถูกจํากัดไว้เฉพาะข้อมูลที่ Power BI ตรวจพบโดยอัตโนมัติ
แยกความสัมพันธ์ที่กําหนดไว้ล่วงหน้าจากแบบจําลองความหมายตัวอย่าง
โหลดความสัมพันธ์ที่กําหนดไว้ล่วงหน้าในแบบจําลองความหมายตัวอย่างความสามารถในการทํากําไรของลูกค้าโดยใช้ฟังก์ชันของ
list_relationshipsSemPy ฟังก์ชันแสดงรายการความสัมพันธ์จากแบบจําลองวัตถุแบบตาราง (TOM)dataset = "Customer Profitability Sample" relationships = fabric.list_relationships(dataset) relationshipsแสดงภาพ
relationshipsDataFrame เป็นกราฟโดยใช้ฟังก์ชันของplot_relationship_metadataSemPyplot_relationship_metadata(relationships)กราฟนี้แสดงความสัมพันธ์ระหว่างตารางในแบบจําลองความหมายนี้ตามที่กําหนดไว้ใน Power BI โดยผู้เชี่ยวชาญเฉพาะเรื่อง
ค้นพบความสัมพันธ์เพิ่มเติม
ถ้าคุณเริ่มต้นด้วยความสัมพันธ์ที่ Power BI ตรวจพบอัตโนมัติ คุณมีชุดที่เล็กกว่า
แสดงภาพความสัมพันธ์ที่ Power BI ตรวจพบโดยอัตโนมัติในแบบจําลองความหมาย:
dataset = "Customer Profitability Sample (auto)" autodetected = fabric.list_relationships(dataset) plot_relationship_metadata(autodetected)การตรวจหาอัตโนมัติของ Power BI พลาดความสัมพันธ์มากมาย นอกจากนี้ ความสัมพันธ์ที่ตรวจพบอัตโนมัติสองความสัมพันธ์ไม่ถูกต้องในเชิงความหมาย:
-
Executive[ID]->Industry[ID] -
BU[Executive_id]->Industry[ID]
-
พิมพ์ความสัมพันธ์เป็นตาราง:
autodetectedแถวที่ 3 และ 4 แสดงความสัมพันธ์ที่ไม่ถูกต้องกับ
Industryตาราง ลบแถวเหล่านี้ออกละทิ้งความสัมพันธ์ที่ระบุอย่างไม่ถูกต้อง
# Remove rows 3 and 4 which point incorrectly to Industry[ID] autodetected = autodetected[~autodetected.index.isin([3, 4])]ตอนนี้คุณมีความสัมพันธ์ที่ถูกต้องแต่ไม่สมบูรณ์ แสดงภาพความสัมพันธ์ที่ไม่สมบูรณ์เหล่านี้โดยใช้
plot_relationship_metadata:plot_relationship_metadata(autodetected)โหลดตารางทั้งหมดจากแบบจําลองความหมายโดยใช้ฟังก์ชันและ
list_tablesread_tableฟังก์ชันของ SemPy จากนั้นค้นหาความสัมพันธ์ระหว่างตารางโดยใช้find_relationshipsตรวจสอบผลลัพธ์ของบันทึกเพื่อรับข้อมูลเชิงลึกเกี่ยวกับวิธีการทํางานของฟังก์ชันนี้:suggested_relationships_all = find_relationships( tables, name_similarity_threshold=0.7, coverage_threshold=0.7, verbose=2 )แสดงความสัมพันธ์ที่ค้นพบใหม่:
plot_relationship_metadata(suggested_relationships_all)SemPy ตรวจจับความสัมพันธ์ทั้งหมด
ใช้พารามิเตอร์
excludeเพื่อจํากัดการค้นหาสําหรับความสัมพันธ์เพิ่มเติมที่ไม่ได้ระบุไว้ก่อนหน้านี้:additional_relationships = find_relationships( tables, exclude=autodetected, name_similarity_threshold=0.7, coverage_threshold=0.7 ) additional_relationships
ตรวจสอบความถูกต้องของความสัมพันธ์
ขั้นแรก ให้โหลดข้อมูลจากแบบจําลองความหมายตัวอย่าง ความสามารถในการทํากําไร ของลูกค้า
dataset = "Customer Profitability Sample" tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']} tables.keys()ตรวจสอบคีย์หลักและคีย์ต่างประเทศทับซ้อนกับ
list_relationship_violationsฟังก์ชัน ส่งเอาต์พุตของlist_relationshipsฟังก์ชันไปที่list_relationship_violationslist_relationship_violations(tables, fabric.list_relationships(dataset))ผลลัพธ์เผยให้เห็นข้อมูลเชิงลึกที่เป็นประโยชน์ ตัวอย่างเช่น หนึ่งในเจ็ดค่าใน
Fact[Product Key]ไม่มีอยู่ในProduct[Product Key]และคีย์ที่ขาดหายไปคือ50การวิเคราะห์ข้อมูลเชิงสํารวจและการล้างข้อมูลเป็นแบบซ้ําๆ สิ่งที่คุณเรียนรู้ขึ้นอยู่กับคําถามของคุณและวิธีที่คุณสํารวจข้อมูล ลิงก์ความหมายเพิ่มเครื่องมือที่ช่วยให้คุณทําข้อมูลได้มากขึ้น
เนื้อหาที่เกี่ยวข้อง
สํารวจบทช่วยสอนอื่น ๆ สําหรับลิงก์ความหมายและ SemPy:
- บทช่วยสอน : ล้างข้อมูลด้วยการขึ้นต่อกัน การทํางาน
- บทช่วยสอน : วิเคราะห์การขึ้นต่อกันของฟังก์ชันการทํางานในแบบจําลองความหมายตัวอย่าง
- บทช่วยสอน : แยกและคํานวณหน่วยวัด Power BI จากสมุดบันทึก Jupyter
- บทช่วยสอน: ค้นพบความสัมพันธ์ในชุดข้อมูล Synthea โดยใช้ลิงก์ความหมาย
- บทช่วยสอน : ตรวจสอบข้อมูลโดยใช้ SemPy และความคาดหวังที่ยิ่งใหญ่ (GX)