อ่าน เขียน ข้อมูลจบได้ใน Power BI ด้วย Translytical

Translytical คืออะไร?
Translytical คือฟีเจอร์ที่ถูกเพิ่มมาใหม่ใน Power BI โดยฟีเจอร์เป็นการนำ 2 ฟีเจอร์มารวมกันอย่างคำว่า Transactional + Analytical จนกลายเป็น Translytical ที่รองรับการทำงานทั้ง 2 ฝั่ง โดยแบ่งการทำงานได้ดังนี้
- Transactional Workloads (OLTP)
- เก็บเรื่องของ การเพิ่ม (Add), การแก้ไข (Edit), การลบ (Delete) ข้อมูลทีละรายการ รวมถึงการสั่งให้ระบบอื่นทำงานผ่าน API
- Analytical Workloads (OLAP)
- การวิเคราะห์และแสดงผลข้อมูลภาพรวมในรูปแบบของรายงาน (Report) และ Dashboard
นี่ถือเป็นการ Pain point จุดนึงของผู้ใช้ Power BI ที่ตัวของผู้เขียนก็มักจะถูกถามโดยนักเรียนหรือผู้ติดตาม 9Expert Training สอบถามเสมอว่า สามารถแก้ข้อมูลที่ Power BI ได้หรือไม่ ซึ่งเมื่อก่อนผมคงตอบว่าไม่สามารถทำได้ครับ แต่ถ้าเป็นปัจจุบัน คำตอบคงต้องเปลี่ยน สามารถแก้ได้แล้วครับด้วยฟีเจอร์ Translytical นั่นเอง
อยากเปิดใช้ Translytical ต้องทำอย่างไร?

Translytical นั่นยังคงเป็นฟีเจอร์ที่อยู่ในฝั่งของ Preview Feature ซึ่งผู้ใช้จำเป็นต้องเข้าไปเปิดใช้งานด้วยตัวเอง โดยมีวิธีการดังนี้
- ไปที่เมนู File

- เลือก Options and settings และเลือก Options


- เลือก Preview features > เลื่อนลงมา ติ๊กเครื่องหมายถูกต้อง ที่หน้า Translytical task flow > เลือก OK

เพียงเท่านี้เราก็จะใช้งานตัวของ Translytical task flow ได้เรียบร้อยครับ โดยผลลัพธ์หลังจากการเปิดใช้งานสามารถลองเช็กได้ที่ปุ่ม (Button) ของทุกคนที่อยู่ใน Power BI ก็จะพบว่าในคำสั่ง Action ของปุ่มนั้น จะมี Type ใหม่เกิดขึ้น ที่ชื่อว่า Data function ที่สามารถทำงานร่วมกันกับ Microsoft Fabric ได้อีกด้วย

การตั้งค่าบน Microsoft Fabric
ในการทำงานของ Translytical task flow นั่นนอกจากการเปิดใช้งานบน Power BI แล้ว เราต้องทำการตั้งค่าที่ Microsoft Fabric ด้วย โดยให้เริ่มต้นไปที่ Settings และเลือกที่เมนู Admin portal
จากนั้นให้เราจะอยู่ที่เมนู Tenant settings ให้เลือกเมนูที่ชื่อว่า User data functions (preview) และกด Enabled

หลังจากกดเปิด Enabled แล้ว เราจะสามารถสร้าง User data function (preview) ได้บน Microsoft Fabric

เมื่อจากกดสร้าง User data functions (preview) เรียบร้อยแล้ว ให้ทำการตั้งชื่อและกด New Function จากนั้นเราจะได้หน้าตาของโปรแกรมที่พร้อมให้ทุกคนสร้างคำสั่งสำหรับเรียกใช้งานแล้ว เบื้องต้นสำหรับภาษาที่รองรับจะเป็นภาษา Python เท่านั้น

จากนั้นให้เราเลือกแทบเมนูที่ชื่อว่า Edit ในหน้านี้เราจะสามารถใส่ Sample ของกลุ่ม Database ได้ โดยให้เราไปที่เมนูที่ชื่อว่า Insert Sample จากนั้นเมนูก็จะแสดงรายการ Database ที่รองรับสำหรับการทำงานบน Microsoft Fabric จะมีทั้งหมด 4 รายการดังนี้ Warehouse, Lakehouse, SQL Database (ใหม่), Data Manipulation, UDF Data Types ซึ่งจะเป็น เพียงเท่านี้เราก็จะสามารถเริ่มใช้งานตัวของ Translytical task flow สำหรับการทำอัปเดตข้อมูลบน Power BI ได้เรียบร้อย
Demo การทำ Translytical task flow
การทำ Demo Translytical นี้ จะเป็นตัวอย่างที่มีการใช้ภาษา Python ในการเชื่อม Connect กับฐานข้อมูลที่ใช้เป็น SQL Server ที่จำเป็นต้องมีการ alias ไว้ที่ Manage connections เรียบร้อยแล้ว
โดยภายในตัวอย่างที่เรากำลังทำจะเป็นเรื่องของการอัปเดตข้อมูล โดยที่เราจำเป็นต้องมีการกำหนดเรื่องของตัวแปร (Variable) ที่ใช้เก็บค่าของการอัปเดตข้อมูล

โดยการเขียนคำสั่งอัปเดตข้อมูลเราจะต้องมีการเก็บตัวแปรทั้งหมด 2 ตัว ดังนี้
- SET DiscountPct = ?
- WHERE PromotionKey = ?
- promotionkey: int (ระบุค่าของ promotionkey เป็นเลขจำนวนเต็ม)
- newpct: float (ระบุค่าของ newpct เป็นตัวเลขทศนิยม)

โดยขั้นตอนการทำงานคือ เมื่อมีข้อมูลโปรโมชันเข้ามาใหม่ (newpct) ที่รายการใด ให้นำค่าที่มีการอัปเดตนำไปปรับที่ promotionkey ที่มีการปรับแก้ในฐานข้อมูลจากนั้น ก็จะมาลำดับค่าใน data ใหม่ให้เป็น newpct มาก่อน promotionkey

ทำให้การส่งค่าเพื่อการอัปเดตข้อมูลเรียงตามที่เราระบุไว้ที่ update_query เรียบร้อยแล้ว ดังนั้นการสร้างฟังก์ชันสำหรับอัปเดตข้อมูลถือว่าเสร็จเรียบร้อยแล้ว ให้เรา Publish ฟังก์ชันตรงนี้เพื่อให้ Connection รู้จักกับ Data Model
จากนั้นสิ่งที่ต้องเตรียมเพิ่มเติมในการทำให้ Connection ตรงนี้ทำงานได้ คือ Power BI Desktop จำเป็นต้องเชื่อมผ่าน OneLake catalog ที่เป็นรูปแบบ Power BI semantic models และฐานข้อมูลตัวอย่าง SQL Server ที่สร้าง เราจะสร้าง Shortcut จาก LakeHouse เพื่อเรียกใช้งาน
ความสามารถอย่างนึงของ Power BI semantic model คือการ Refresh เมื่อข้อมูลใน OneLake แบบอัตโนมัติ ทำให้เราจะได้ข้อมูลที่แก้ไขและอัปเดตแบบ Realtime
จากนั้นสิ่งที่ต้องเตรียมเพิ่มเติมในการทำให้ Connection ตรงนี้ทำงานได้ คือ Power BI Desktop จำเป็นต้องเชื่อมผ่าน OneLake catalog ที่เป็นรูปแบบ Power BI semantic models และฐานข้อมูลตัวอย่าง SQL Server ที่สร้าง เราจะสร้าง Shortcut จาก LakeHouse เพื่อเรียกใช้งาน
ความสามารถอย่างนึงของ Power BI semantic model คือการ Refresh เมื่อข้อมูลใน OneLake แบบอัตโนมัติ ทำให้เราจะได้ข้อมูลที่แก้ไขและอัปเดตแบบ Realtime

และสำหรับการเรียกใช้งานบน Power BI Desktop เราจำเป็นต้องมีการตั้งค่าเพิ่มเติมที่ semantic model โดยการสร้าง Parameter ขึ้นมา 2 ตัว โดยที่ตัวนึงเป็นตัวเลข ตัวนึงเป็น Field และทำเป็น Measure โดยเราจะตั้งชื่อว่า %Discount Value เพื่อเก็บค่าเปอร์เซ็นต์และ ProKey เพื่อเก็บค่า PromotionKey

จากนั้นบน Power BI Desktop ให้เรา Connect กับ Parameter ที่สร้างและนำมาแสดงเป็น Visualization รูปแบบ Slicer ที่สามารถลากระบุค่าได้ จากนั้นให้เราสร้างปุ่ม (Button) ขึ้นมาเพื่อใช้ในการส่งค่าเปอร์เซ็นต์ดังกล่าวไปอัปเดตฐานข้อมูล โดยผ่าน Connection ที่เราได้ทำการเตรียมไว้เรียบร้อย

หลังจาก Connection ทำงานเสร็จเรียบร้อยแล้ว จะเห็นได้ว่าส่วนลดที่เป็นเปอร์เซ็นต์ได้มีการปรับค่าจาก 35% กลายเป็น 60% เรียบร้อยแล้ว

สรุปการทำ Translytical task flow บน Power BI
Translytical task flow ในมุมมองของผู้เขียน Translytical task flow เป็นเครื่องมือลดเรื่องของเวลาในการปรับแก้ไปมาระหว่างข้อมูลต้นฉบับที่มีการเรียกใช้มาใน Power BI ที่จะช่วยให้เราสามารถอัปเดตข้อมูลได้บนที่เดียวและ Realtime อีกด้วย ซึ่งถือว่าประหยัดเวลาสำหรับการกลับไปอัปเดตข้อมูลได้ค่อนข้างเยอะมากเลยทีเดียวหากผู้อ่านรู้สึกสนใจอยากศึกษาการทำงานข้อมูลและการนำไปต่อยอดในงานด้านธุรกิจอย่างลึกซึ้ง ผู้เขียนขอแนะนำเป็นโปรแกรม Data Engineering & Business Intelligence ที่เป็น 1 ในโปรแกรมของ Career Path ที่ทาง 9Expert Training มัดรวมหลักสูตรตั้งแต่เริ่มต้นงานด้านข้อมูลจนถึงการนำข้อมูลมาวิเคราะห์และนำเสนอได้อย่างลึกซึ้ง และพร้อมทำให้ท่านกลายเป็น 1 ในผู้ที่ขับเคลื่อนองค์กรด้วยข้อมูลที่มีประสิทธิภาพ (Data-Drive Enterprise) ได้อย่างแท้จริง โดยผู้อ่านสามารถกดเข้าไปดูรายละเอียดของโปรแกรม Data Engineering & Business Intelligence ได้ที่การ์ดข้างล่างนี้ครับ
Career Path: Data Engineering & Business Intelligence
ขอบคุณสำหรับการติดตาม
9Expert Training
#อย่าหยุดเรียนรู้
9Expert Training
#อย่าหยุดเรียนรู้




