3 โหมดการทำงานของ PowerBI Desktop

thumbnail.png

Written by: Mahannop Kanthapan

August 26, 2019

Import Mode

พื้นฐานของโหมดนี้เลยคือเจ้า Power BI จะดึงข้อมูลที่เรามีลงไปจัดเก็บไว้ใน cache ของไฟล์ .pbix  เสมือนว่าเจ้า powerbi ไปสร้าง database เล็กๆ ในตัวของมัน โดยใช้เทคนิคการจัดเก็บและบีบอัดข้อมูลแบบเดียวกับ SSAS Tabular Model ซึ่งเทคนิคการจัดเก็บแบบนี้จะช่วยทำให้ประหยัดพื้นที่การจัดเก็บทำให้ขนาดไฟล์มีขนาดเล็กลง

ขอยกตัวอย่างละกันเพื่อให้เห็นภาพ สมมุติเรามีข้อมูลต้นทางของเราเป็น File Base เช่น CSV หรือ Excel อะไรก็แล้วแต่ ไฟล์ตัวอย่างตอนนี้ผมมีไฟล์ข้อมูลดิบจำนวน 3 แสนแถวครับ ถ้าเกิดผมใช้ Import Mode เจ้า PowerBI ก็จะโหลดข้อมูลทั้งหมดลงไว้ไปเก็บไว้ในไฟล์ ไฟล์ .pbix หลังจากบีบอัดและโหลดข้อมูล CSV ขนาด 75 MB ลงไป ทำให้ขนาดของไฟล์เพิ่มขึ้นจากตอนแรก 11KB  เป็น 24MB

Import mode รองรับการทำงานหลากหลายประเภทข้อมูล ไม่ว่าจะเป็น File , database หรือ semi-structure data เช่น JSON โดยภายในหนึ่งไฟล์เนี่ย เราสามารถ import ข้อมูลมากกว่า 1 แหล่งข้อมูล เช่น เราสามารถ Import ลูกค้าจาก CSV และ Import ข้อมูลการขายได้จาก ERP อะไรแบบนั้น ถ้าเราเชื่อมต่อกับฐานข้อมูล SQL Server หรือฐานข้อมูลอื่นๆ และเราต้องการใช้ Import Mode เนี่ย เราสามารถกด Get Data และเลือกการเชื่อมต่อข้อมูลแบบ Import ได้ครับ แต่ถ้าข้อมูลเราเป็น File อันนี้ต้องใช้ import mode สถานเดียว

ข้อดีของโหมดนี้คือเวลาใช้งานมันเร็วในการเรียกดูข้อมูล ประมวลผลข้อมูล เมื่อท่านต้องการใช้หรือแสดงผลข้อมูล เจ้า PowerBI ก็จะไปสืบค้นข้อมูลจาก Cache และนำมาแสดงผลนั้นเอง แต่ข้อเสียของเจ้าโหมด Import คือมันช้าตอนรีเฟรชข้อมูล ถ้าหากข้อมูลต้นทางมีปริมาณมาก ก็จะต้องเสียเวลาโหลดข้อมูล หากว่าข้อมูลต้นทางมีการเปลี่ยนแปลงขึ้นมา เราก็ต้องการ process ข้อมูลใหม่ คล้ายๆกับการ Process Cube ของ SQL Server Analysis Service นั่นแหละเพียงแต่เราไม่สามารถโหลดแบบ partition หรือ incremental ได้ ต้องโหลดข้อมูลกันใหม่ทั้งตารางอีกรอบ ถ้าตาราง 5 ล้านแถว ก็โหลดมันใหม่ทั้งหมดนั่นแหละ เห็นรึยังครับว่ามันมีข้อเสียขนาดไหน และอีกข้อจำกัดว่าเจ้าโมเดลจะมีขนาดได้ไม่เกิน 1GB (สำหรับ PowerBI Premium จำกัดที่ 10GB)    

เมื่อโหมดนี้ถูกใช้งาน PowerBI ก็จะเปิดให้ผู้ใช้สามารถสร้างโมเดลข้อมูลภายใน Power BI ได้ ( ก็แน่นอนสิเพราะยังไม่มีโมเดลข้อมูลนี่นา ) เราสามารถสร้าง Relationship ระหว่างตาราง กำหนด Cardinality สร้าง Measure สามารถใช้คำสั่ง DAX ได้ทุกๆคำสั่ง รวมไปถึงยังใช้ Calculate Table ไม่เท่านั้นยังใช้ Feature Quick Insight ของ PowerBI ได้อีกด้วยเรียกว่าใช้ความสามารถของ PowerBI เท่าที่จะทำได้เลย  

Direct Query

sql direct query connection.png

หลักการทำงานของโหมด DirectQuery นั้นเมื่อ PowerBI เชื่อมต่อข้อมูลต้นทาง ตัว PowerBI จะอ่านและจัดเก็บเฉพาะโครงสร้างสกีม่าของตาราง และจะไม่โหลดเก็บตัวข้อมูลไว้ในตัวไฟล์ .pbix ดังนั้นตัวไฟล์ .pbix จะทำหน้าที่เสมือนโมเดลข้อมูล  ที่ไม่มีข้อมูล โดยเมื่อเราต้องการเรียกใช้ข้อมูลหรือสร้างรายงานใดใดก็ตาม ตัว PowerBI จะสร้างคำสั่ง Query ขอข้อมูลจาก DataBase ที่โมเดลข้อมูลเชื่อมต่อไว้ เมื่อฐานข้อมูลได้รับคำสั่งก็จะประมวลผลและส่งข้อมูลกลับมายัง Data Model เพื่อแสดงผล ดังนั้นเราจำเป็นต้องสร้าง Relationship ให้โมเดลข้อมูลใน PowerBI

โหมดนี้มีข้อจำกัดใหญ่คือสามารถเชื่อมต่อได้เพียง 1 ฐานข้อมูล ไม่สามารถเชื่อมต่อ file ได้ และข้อจำกัดอื่นๆหลายประการ เช่น จำนวนข้อมูลที่ส่งกลับมาให้ PowerBI นั้นจะต้องไม่มากกว่า 1 ล้าน Row  บางคำสั่งสำคัญๆ ของ DAX ก็จะไม่สามารถใช้ได้โดยเฉพาะคำสั่งของพวก Time Intelligence รวมไปถึง Feature บางอย่างก็ไม่สามารถใช้ได้เช่นกัน อย่างเช่น Q&A และ QuickInsight จะไม่สามารถใช้งานได้เมื่อเราใช้ Power BI ในโหมด Direct Query และที่สำคัญที่สุดคือโหมดนี้มันค่อนข้างช้าในการเรียกและประมวลผล

 

ถ้าถามว่าจะสังเกตุได้อย่างไรว่า ณ ตอนนี้เราอยู่โหมดไหน คำตอบคือให้เราดูที่แถบด้านซ้ายมือครับ เราจะเห็นว่ามี 3 ปุ่ม โดยจะประกอบไปด้วย Report View , Data View และ Relationship view

โหมดนี้รองรับการสร้างโมเดลข้อมูล และรองรับข้อมูลมากกว่า  1  source โดยเจ้า power bi จะโหลดข้อมูลไว้ในตัวไฟล์ครับ 

Connection Live Mode

พื้นฐานการทำงานเลยของเจ้าโหมดนี้คือเราต้องมีโมเดลข้อมูลอยู่แล้ว แล้วเอา PowerBI เป็นตัวแสดงผลข้อมูลนั่นเอง นั่นหมายถึงจะต้องเชื่อมต่อไปที่ SQL Server Analysis Service หรือไม่ก็ Azure Analysis Service รวมไปถึงการเชื่อมต่อไปยัง Data Model ในไฟล์ PowerBI แบบ Cache Mode ก็ได้นะ

ข้อดีเลยคือไม่ต้องมาทำ Data Model ใน Power BI เพราะมันต้องไปทำ Data Model มาตั้งแต่ข้อมูลต้นทางแล้วหล่ะ ข้อมูลจะมีความเป็น Single of truth เพราะทุกคนต่างก็ใช้ Model เดียวกัน ข้อเสียคือเราต้องมี Cube เตรียมไว้แล้ว (จริงๆมันก็ไม่ใช่ข้อเสียนะ)

ssas live connectoin.png

เราจะรู้ได้อย่างไรว่า ณ ตอนนี้เราอยู่โหมดไหน ?

แถบด้านข้างซ้ายมือของ Power BI จะมี View Panel อยู่ครับ โดยเจ้า View Panel เนี่ยจะมีอยู่ 3 ปุ่มด้วยกัน  ประกอบไปด้วย

  • Report View - เป็นหน้าที่ใช้แสดงผลของข้อมูล แสดงรายงาน Visual ต่างๆ
  • Data View - หน้าแสดงผลข้อมูลดิบที่มีอยู่ในโมเดลไฟล์ .pbix โดย PowerBI เปิดให้เราแก้ไข เพิ่ม ลบ ข้อมูลได้
  • Relationship View หน้าแสดงผลความสัมพันธ์ของแต่ละตารางข้อมูล โดย PowerBI เปิดให้เราแก้ไข เพิ่ม ลบ ความสัมพันธ์ได้อย่างอิสระ

สังเกตุง่ายๆเลยถ้าตอนนี้ด้านซ้ายมือของเรามี ไอคอนอยู่ 3 ไอคอน นั่นหมายถึงเรากำลังทำงานอยู่บน Import Mode เราสามารถดูข้อมูลที่ถูกโหลดไว้อยู่ในไฟล์ได้ สามารถดูความสัมพันธ์ และสร้างรายงานได้ แต่ถ้าเราเห็นอยู่ 2 ไอคอนแสดงว่าเรากำลังทำงานอยู่บน Direct Query Mode  โดนไอคอนที่หายไปคือ Data View เพราะตัว PowerBI ไม่มีข้อมูลถูกจัดเก็บไว้ เจ้าโหมดนี้เก็บไว้เฉพาะโครงสร้างสร้างตารางและความสัมพันธ์ระหว่างตาราง เราจึงไม่สามารถดูข้อมูลหรือแก้ไขข้อมูลใดใดได้ ทำได้แค่เพียงเพิ่ม แก้ไข หรือลบความสัมพันธ์  ถ้าหากเราเห็นอยู่เพียงไอคอนเดียว นั่นหมายความว่าเรากำลังอยู่ในโหมด Live Connection โดยไอคอนที่แสดงนั่นจะเป็น Report View เพราะเราไม่สามารถแก้ไขโมเดลได้แต่อย่างใด ทำได้เพียงเรียกใช้รายงานและสร้าง Measure ใหม่เท่านั้น

​​​​​​​3 modes.png

สรุป

ผมขอยกการสรุปจากสไลด์ของคุณ Perter Myers เลยละกันนะครับ ว่าเราควรใช้โหมดไหนทำงาน โหมดไหนเหมาะสมกับการทำงานแบบไหน

  • ถ้ามี Data Model อยู่แล้ว ให้ใช้ Live Connection Mode
  • ถ้าเราไม่มี Data Model แล้วต้องต่อข้อมูลมากกว่า 1 แหล่ง ให้ใช้ import mode
  • ถ้าเราไม่มี Data Model แล้วโมเดลมีความซับซ้อนอย่างมาก ให้ใช้ import mode
  • ถ้ายังไม่ตรงกับข้อใดใด แล้ว Direct Query ตอบโจทย์ ก็ให้ใช้ Direct Query

​​​​​​​