Table.ReplacePartitionKey แทนที่ partition key ของตาราง ซึ่งเป็น metadata สำหรับการแบ่งพาร์ทิชันและการจัดการข้อมูลภายใน เอาไว้ควบคุมวิธีการแบ่งพาร์ทิชันของข้อมูลในตารางนั้น
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| table | table | ตารางที่ต้องการแทนที่ partition key |
| partitionKey | nullable list | รายการ (list) ของชื่อคอลัมน์ที่จะใช้เป็นคีย์ใหม่ หรือ null เพื่อเอาคีย์ออก |
Table.ReplacePartitionKey ใช้แทนที่ partition key ของตาราง ซึ่ง partition key คือ metadata ที่บอก Power Query ว่าตารางนี้มีการแบ่งพาร์ทิชันแบบไหน โดยที่ partition key มักจะเป็นรายการของชื่อคอลัมน์ที่ใช้เป็นตัวแบ่งข้อมูล
ที่เจ๋งคือ partition key ไม่ใช่แค่ metadata ง่ายๆ มันบอก Power Query ว่า แยกข้อมูลตามคีย์นี้เพื่อให้สามารถจัดการข้อมูลได้มีประสิทธิภาพมากขึ้น ถ้าคุณทำงานกับ partitioned data sources หรือ incremental refresh ใน Power BI เรื่องนี้สำคัญมากครับ
ส่วนตัวผมเจอเรื่องนี้เมื่อทำการซิงค์ข้อมูลขนาดใหญ่ใน Power BI – การตั้ง partition key ให้ถูก ต่อหลังจากนั้น refresh ก็เร็วขึ้นตั้งเยอะเลยครับ 😎
ใช้เมื่อจำเป็นต้องแก้ไข partition key ของตารางในบริบทขั้นสูง/ภายใน เช่น การจัดการตารางที่ถูกแบ่งพาร์ทิชัน
สร้างตารางตัวอย่างที่มี CustomerID, Region, Amount จากนั้นใช้ Table.ReplacePartitionKey เพื่อตั้ง partition key ให้เป็น CustomerID เท่านั้น ตอนท้ายตรวจสอบด้วย Table.PartitionKey
ถ้าต้องการให้ partition key ประกอบด้วยหลายคอลัมน์ ก็ส่ง list ของชื่อคอลัมน์ เช่น {"Region", "Year"} ซึ่งมีประโยชน์เมื่อต้องแบ่งพาร์ทิชันตามหลายเกณฑ์พร้อมกัน
partitionKey มีค่า nullable ดังนั้นสามารถส่ง null เพื่อลบ/รีเซ็ต partition key ของตาราง ผลลัพธ์จะเป็น null แสดงว่าตารางนี้ไม่มี partition key
ในสถานการณ์จริงเวลาใช้ Incremental Refresh ใน Power BI เรามักตั้ง partition key ให้เป็นคอลัมน์วันที่ (เช่น LastModified) เพื่อให้ Power Query แบ่งข้อมูลตามช่วงเวลา ทำให้ refresh เร็วขึ้น
ผม มักสงสัยเรื่องนี้ตอนแรกเหมือนกัน 😅 partition key คือ metadata ของ Power Query ใช้บอก Power Query ว่า 'แบ่งพาร์ทิชันตามคอลัมน์นี้' เพื่อให้ refresh และการจัดการข้อมูลเร็วขึ้น ส่วนคีย์หลัก (Primary Key) คือข้อบังคับของฐานข้อมูล บอก 'แต่ละแถวต้องมีค่าไม่ซ้ำในคอลัมน์นี้' สองอย่างต่างกันโลก
ส่วนตัวผมพบประโยชน์ตอนทำ Power BI ที่มี incremental refresh หรือจำนวนข้อมูลมากมาย การตั้ง partition key ให้ถูกช่วย optimize refresh time ได้เยอะ นอกจากนั้น ถ้าข้อมูลมาจากหลายแหล่งและต้องรวมกันแล้วเซ็ต partition key ก็จะช่วยให้ Power BI จัดการข้อมูลได้ดีขึ้น
ถ้าส่ง null แล้วมันจะเอา partition key ออก (รีเซ็ต) คือบอก Power Query ว่า 'ตารางนี้ไม่มี partition key' แต่ขึ้นอยู่กับแหล่งข้อมูลว่าจะรองรับ null เหมือนกันไหม บางครั้งระบบอาจไม่ยอมรับ null
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Table.ReplacePartitionKey จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
แปลง List ของ Record เป็นตาราง โดยแต่ละ Record กลายเป็นหนึ่งแถว เหมาะสำหรับข้อมูลจาก API หรือ JSON
แบ่งตารางออกเป็นรายการของตารางย่อย (List of Tables) โดยใช้ hash function กำหนดการกระจายข้อมูล
Table.SelectColumns ใช้สำหรับเลือกคอลัมน์เฉพาะจากตารางและสร้างตารางใหม่ที่มีเฉพาะคอลัมน์เหล่านั้น
Table.SelectRows เป็นฟังก์ชันสำหรับกรองตาราง (filter table) ใน Power Query โดยใช้ฟังก์ชันเงื่อนไข (condition function) เพื่อตรวจสอบแต่ละแถว ถ้าเงื่อนไขคืนค่า true จะเก็บแถวนั้นไว้ ถ้าเป็น false จะตัดทิ้ง สามารถใช้ keyword 'each' ร่วมกับการอ้างอิงคอลัมน์ด้วย [ColumnName] เพื่อเขียนเงื่อนไขได้สะดวก รองรับการกรองตามตัวเลข ข้อความ วันที่ การตรวจสอบค่า null และเงื่อนไขที่ซับซ้อนด้วย and/or operators ฟังก์ชันนี้รองรับ Query Folding ซึ่งช่วยเพิ่มประสิทธิภาพเมื่อทำงานกับ data source ขนาดใหญ่
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่