Tables.GetRelationships ดึงข้อมูลความสัมพันธ์ (Relationships) ระหว่างตารางต่างๆ จาก Navigation Table เพื่อวิเคราะห์โครงสร้างข้อมูล
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| tables | table | ตารางที่มีโครงสร้างคล้าย Navigation Table (มีคอลัมน์ที่อ้างถึงตาราง Data ตัวจริง) | |
| [dataColumn]ไม่บังคับ | nullable text | null | ชื่อคอลัมน์ที่ใช้บ่งชี้ตาราง Data ตัวจริง หากไม่ระบุ จะใช้ค่า Default |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
Tables.GetRelationships คือฟังก์ชันที่ช่วยให้คุณอ่าน Metadata ของความสัมพันธ์ระหว่างตารางจาก Navigation Table โดยไม่ต้องเขียน Hard-code
ที่เจ๋งคือ ฟังก์ชันนี้จะอ่าน Relationship Information โดยอัตโนมัติ ซึ่งประกอบด้วย FromTable, ToTable, FromColumn, ToColumn, และ Kind ทำให้เราสามารถสร้าง Data Lineage Report หรือทำ Model Validation ได้ง่าย
ส่วนตัวผมใช้ Tables.GetRelationships ตอนต้องจัดการกับ Navigation Table ที่ซับซ้อนๆ หรือต้องสร้าง Metadata Documentation เพื่อแสดงให้ทีมอื่นเห็นว่าข้อมูลเชื่อมต่อกันยังไง ช่วยให้ทุกคนเข้าใจโครงสร้างข้อมูลได้ดี 😎
Data Model Inspection
Metadata Analysis
ใช้ Tables.GetRelationships เพื่อดึงข้อมูลความสัมพันธ์จาก Navigation Table โดยระบุ "Data" เป็นคอลัมน์ที่บ่งชี้ตาราง Data ตัวจริง
ขยาย FromTable เพื่อได้ชื่อตารางจริง แล้วเลือกคอลัมน์ที่สำคัญเพื่อให้ Report อ่านง่ายและเข้าใจความสัมพันธ์ได้ชัดเจน
นับจำนวน Row ในตาราง Relationships เพื่อบอกว่าข้อมูลมีการเชื่อมต่อกันหรือเป็น Orphan Tables
กรองเฉพาะความสัมพันธ์ที่ Active เพื่อหลีกเลี่ยง Inactive Relationships ที่อาจทำให้ Report สับสน
ฟังก์ชันนี้ออกแบบมาสำหรับ Navigation Table หรือตารางที่มีคอลัมน์อ้างถึง Data Table ตัวจริง ผมแนะนำให้ตรวจสอบก่อนว่า Table structure มีคอลัมน์ที่เก็บ Table references ไว้หรือเปล่า ถ้าไม่มี ฟังก์ชันอาจคืนค่าว่างหรือข้อผิดพลาดได้
Tables.GetRelationships อ่าน Metadata ของความสัมพันธ์ที่มีอยู่แล้วโดยอัตโนมัติ ซึ่งสะดวกกว่าการต้องเขียน Hard-code แต่ถ้าต้องการสร้างความสัมพันธ์ใหม่ ก็ต้องใช้วิธีอื่น เช่น Table.AddColumn หรือการสร้าง Custom Relationship
ฟังก์ชันจะพยายามใช้ค่า Default ของคอลัมน์ที่ระบุถึง Data Table โดยทั่วไปจะเป็น "Data" ถ้าหากไม่พบคอลัมน์ที่ถูกต้อง อาจคืนค่าว่างหรือ Error โดยปลอดภัยก็เลย
ส่วนใหญ่ Tables.GetRelationships ใช้กับ Navigation Tables ใน Power Query นะครับ สำหรับการอ่าน Relationship Metadata จากตัว Power BI Model เอง ต้องใช้ API หรือ Tools อื่นๆ แทน
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Tables.GetRelationships จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Table.ExpandTableColumn ใช้แตกข้อมูลจากคอลัมน์ที่เป็น nested table ออกมาเป็นคอลัมน์และแถวปกติในตารางหลัก โดยรักษาข้อมูลคอลัมน์อื่นไว้ และทำซ้ำแถวหลักสำหรับแต่ละแถวในตารางซ้อน มักใช้คู่กับ Table.NestedJoin หลัง join ตาราง หรือใช้ขยายข้อมูลจากแหล่งที่มีโครงสร้างแบบ hierarchical เช่น JSON หรือ API
Table.FromRows สร้างตารางจาก List ของ List โดยแต่ละ List ย่อยแทนข้อมูลในแถวหนึ่ง คล้ายกับการ transpose ข้อมูลแบบแถว-คอลัมน์ แต่ทำให้เป็นตารางจริงในทันที
ฟังก์ชันสำหรับนับจำนวนแถวทั้งหมดในตาราง โดยคืนค่าเป็นตัวเลขครับ
Table.SelectColumns ใช้สำหรับเลือกคอลัมน์เฉพาะจากตารางและสร้างตารางใหม่ที่มีเฉพาะคอลัมน์เหล่านั้น
Table.SelectRows เป็นฟังก์ชันสำหรับกรองตาราง (filter table) ใน Power Query โดยใช้ฟังก์ชันเงื่อนไข (condition function) เพื่อตรวจสอบแต่ละแถว ถ้าเงื่อนไขคืนค่า true จะเก็บแถวนั้นไว้ ถ้าเป็น false จะตัดทิ้ง สามารถใช้ keyword 'each' ร่วมกับการอ้างอิงคอลัมน์ด้วย [ColumnName] เพื่อเขียนเงื่อนไขได้สะดวก รองรับการกรองตามตัวเลข ข้อความ วันที่ การตรวจสอบค่า null และเงื่อนไขที่ซับซ้อนด้วย and/or operators ฟังก์ชันนี้รองรับ Query Folding ซึ่งช่วยเพิ่มประสิทธิภาพเมื่อทำงานกับ data source ขนาดใหญ่
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่