การ Connect Data แบบ Live หรือ Extract แบบไหนดี?

ผู้เขียน

–Yongyuth Likitpattanakul, CPIM–

Article, บทความ-Tableau Prep

โปรแกรม Tableau มีรูปแบบการ Connect Data 2 รูปแบบคือ 1. Live และ 2. Extract ซึ่งเราสามารถเลือกได้แบบใดแบบหนึ่ง บนโปรแกรม Tableau Desktop ในตอนที่เรา Connect Data ดังรูปด้านล่าง

          บทความนี้จะมาแนะนำท่านผู้อ่านว่า Connection ทั้งสองแบบคืออะไร และเราควรจะเลือกใช้แบบไหนดี

Extract และ Live คืออะไร?

Live

  • Live Connection จะ query และอ่านข้อมูลโดยตรงจาก data source
  • Live Connection จะเชื่อมต่อกับข้อมูลแบบ Real Time ดังนั้นถ้าข้อมูลใน data source เปลี่ยนแปลงข้อมูลใน Visualization ก็จะเปลี่ยนตามไปด้วย

Extract

  • Extract คือการดึงข้อมูลจาก data source แล้วบันทึกเป็นไฟล์นามสกุล *.tde หรือ *.hyper เก็บไว้ใน Local Drive ของเครื่องคอมพิวเตอร์
  • Tableau จะแสดง Visualization โดยดึงข้อมูลจาก Extract File ไม่ใช่ดึงข้อมูลจาก data source โดยตรง
  • Extract เป็นการ Snapshot Data ดังนั้นจำเป็นต้องมีการ Refresh Data เป็นประจำ เพื่อให้ข้อมูล Update โดยมี 2 แนวทางคือ 1) Full Refresh และ 2) Incremental Refresh

ข้อดีข้อเสียของ Extract และ Live คือ

รูปแบบ Connectionข้อดีข้อเสีย
Liveได้ข้อมูล Real Timeไม่ต้องเสียพื้นที่ Hard Disk ในการเก็บไฟล์ Extractอาจจะช้า โดยเฉพาะในกรณีที่แสดง Visualization ที่ซับซ้อน หรือข้อมูลมีขนาดใหญ่มาก
Extractเร็วกว่า* โดยเห็นได้ชัดใน Visualization ที่ซับซ้อน กับข้อมูลขนาดใหญ่มีความยืดหยุ่นในการจัดการข้อมูล เช่น ซ่อน Field ที่ไม่ต้องการให้เห็นได้, สร้าง Calculated Field ได้, ลดขนาดข้อมูลโดยการ Aggregate ได้สามารถทำงานแบบ Offline ได้ข้อมูลไม่ Real Time เพราะเป็น Snapshot ยุ่งยากมากกว่า เพราะต้องมาคอย Set Schedule ในการ Refresh Extractเสียพื้นที่ในการเก็บไฟล์ Extract

*เบื้องลึกของ Extract ที่ทำให้เร็วกว่า

  1. มีการแปลงข้อมูลและเก็บข้อมูลเป็นรูปแบบ Columnar มีการบีบอัด (Compress) เพื่อให้ไฟล์มีขนาดเล็ก มีการจัดเรียง (Sort) ข้อมูลเพื่อการทำงานที่รวดเร็ว
  2. โครงสร้างของ Extract ทำงานได้ดีมากบน Memory (RAM) ทำให้สามารถทำงานได้อย่างรวดเร็ว
  3. Extract (*.hyper) ถูกออกแบบมาให้ทำงานกับ Tableau ได้ดีที่สุด 

ควรเลือก Live หรือ Extract ดีกว่ากัน?

          ไม่ว่าจะเป็น Live หรือ Extract ต่างก็มีข้อดี ข้อเสียที่แตกต่างกันไป ดังนั้นจึงไม่สามารถบอกได้ว่า Connection แบบไหนที่ดีที่สุดในทุกกรณี

          จากประสบการณ์ของผู้เขียน และความเห็นส่วนตัวขอแนะนำดังนี้

  1. ให้ท่านพิจารณาเลือก Live Connection เป็นทางเลือกแรก โดยมีปัจจัยที่ควรคำนึงหลัก 2 อย่างคือ
    1. ความเร็ว หรือ Performance ในการใช้งาน Visualization ความเร็วในที่นี้คือเวลาที่ท่านลองเปิด Dashboard หรือเปลี่ยน Filter เพื่อดูมุมมองต่าง ๆ ว่า Dashboard สามารถแสดงผลโดยรวดเร็วเป็นที่ยอมรับได้หรือไม่
    1. ผลกระทบกับ System เช่น ระบบ ERP, ระบบ POS, ระบบ CRM เป็นต้น โดยที่ Tableau จะไปดึงข้อมูลจาก Data source ของระบบเหล่านั้นโดยตรง (ไม่ผ่าน Data Warehouse) เพราะเมื่อมีการเรียกใช้งาน Dashboard แล้วจะมีการ Query ข้อมูลที่ Database และถ้าข้อมูลขนาดใหญ่ก็อาจจะมีการ ประมวลผลที่ Database Server อย่างหนักจนอาจกระทบกับ System เหล่านั้นให้ทำงานช้าลงได้ ส่งผลให้ผู้ใช้งานระบบขณะนั้นได้รับผลกระทบให้ทำงานช้าลงตามไปด้วย

ถ้าหากทั้ง 2 ปัจจัยข้างต้นไม่มีผลกระทบและเป็นที่ยอมรับได้ ท่านก็สามารถเลือก Live Connection ได้ แต่ถ้าหากมีผลกระทบ ท่านก็ไปเลือกใช้ Extract แทน

  • ให้ท่านพิจารณาเลือก Extract Connection เป็นทางเลือกที่สอง จากประสบการณ์ของผู้เขียนพบว่า Performance หรือความเร็วของการใช้งาน Dashboard ของ Extract ดีมากเมื่อเที่ยบกับ Live Connection โดยจะเห็นได้ชัดถ้าข้อมูลมีขนาดใหญ่ อย่างไรก็ดี ต้องยอมรับว่าการใช้ Extract ก็มีความยุ่งยากมากกว่า มีปัจจัยที่ควรพิจารณาดังนี้
    • การกำหนด Schedule ของการ Refresh Extract ว่าจะให้รัน Schedule เวลาใด วันละกี่ครั้ง ซึ่งขึ้นกับระยะเวลาในการ Refresh ข้อมูลด้วย ตัวอย่างเช่น ถ้ามี 1 data source ที่ใช้เวลาในการ Refresh Extract ประมาณ 30 นาที ดังนั้นถ้าเราไปตั้ง Schedule ให้ Extract ทุก 15 นาที ก็ไม่สมเหตุผลเป็นต้น
    • พิจารณาการทำ Incremental Refresh เพื่อประหยัดเวลาในการ Refresh Extract (เพราะ Full Refresh จะใช้เวลามากกว่า Incremental Refresh) ถ้าทำได้ (ดูบทความเรื่อง “การทำ Incremental Refresh บน Tableau เพิ่มเติม)
    • ในกรณีที่เรามีหลาย Dashboard และ Dashboard เหล่านั้นใช้ Data source เดียวกัน เราสามารถใช้แนวคิดของ Centralize data source ได้ วิธีการคือทำการ Publish Data Source ไปที่ Tableau Server แล้วค่อยกำหนดให้ Dashboards เหล่านั้นไปใช้ Published Data Source นั้นนั่นเอง ดังนั้นเมื่อเราทำการ Refresh Extract ก็ทำครั้งเดียว แต่ว่าข้อมูลใน Dashboards ทุกอันที่ใช้ Publish Data Source ก็เปลี่ยนไปด้วย

Reference

https://www.tableau.com/about/blog/2016/4/tableau-online-tips-extracts-live-connections-cloud-data-53351

https://www.tableau.com/about/blog/2014/7/understanding-tableau-data-extracts-part1

https://datavizguru.com/tableau/live-vs-extract/

Leave a Reply

Your email address will not be published. Required fields are marked *