การเชื่อมต่อ Tableau กับ Database ผ่าน SQL ให้มีประสิทธิภาพ

การเชื่อมต่อ Tableau กับ Database ผ่าน SQL ให้มีประสิทธิภาพ

Tableau-Performance-Checklis-1600.png

ในหลาย ๆ ครั้งการเข้าถึง Data Source สำหรับทำ Data Analytics บน Tableau จะเรียกใช้งานข้อมูลจาก Database ด้วยภาษา SQL แต่บางครั้งด้วยข้อมูลปริมาณมหาศาล จึงใช้เวลาในการเชื่อมต่อแต่ละครั้งค่อนข้างนานหรือในบางครั้งก็ไม่สำเร็จ และอาจทำให้ Database ถูก Lock จนไม่สามารถทำงานอย่างอื่นเพิ่มเติมได้

โปรแกรม Tableau สามารถรับคำสั่งภาษา SQL (Structured Query Language)ในการเรียกดึงข้อมูลได้โดยใช้ Function ชื่อ New Custom SQL (ตามภาพประกอบ)

image.png

เมื่อคลิกที่ปุ่มในภาพข้างบน จะปรากฏ Widget ขึ้นมาให้เราใส่ Code ลงไปเพื่อหยิบเอาข้อมูลในส่วนที่เราจะใช้จากฐานข้อมูลมาได้ ตามคำสั่ง SQL ที่ต้องการ

image.png

image.png

ทว่า การใช้งาน Custom SQL บน Tableau ในลักษณะนี้นั้นแม้จะง่ายดาย ทำให้เราสามารถเลือกเพียง Fields ที่ต้องการใช้งานบน Tableau ออกมาจาก Database ได้ แต่ประสิทธิภาพการเรียกใช้งานนั้น อาจจะไม่ดีนัก เนื่องจากการใช้ Custom SQL บน Tableau จะไม่ผ่าน feature Join Culling ที่ช่วยเพิ่มประสิทธิภาพการเรียกข้อมูล ซ้ำร้ายไปกว่านั้นยิ่งถ้า query มี clause จำพวก Order By หรือ Group By เยอะ ๆ ก็จะยิ่งส่งผลทำให้ใช้เวลามากขึ้นไปอีก

ถึงอย่างนั้นก็ใช่ว่าจะไม่มีวิธีแก้ไข เรามาดูคำแนะนำ 2 วิธีทดแทนกัน

1. ย้ายคำสั่ง SQL ไปจัดการใน Database ให้เรียบร้อยก่อน

เราสามารถ materialize บน database โดยการสร้าง View หรือ Table ไว้เพิ่มเติมบน database ให้เรียบร้อยก่อน จากนั้นจึงค่อยให้ Tableau เข้ามาเชื่อมต่อ View/Table ใหม่ดังกล่าว

image.png

2. ใช้การ Extract Data มาไว้ให้ Tableau เข้าถึงโดยเฉพาะ แยกออกมาจาก Database

Tableau มีรูปแบบการเชื่อมต่อข้อมูลอยู่ 2 แบบคือ Live และ Extract ซึ่งการ Extract จะทำให้ไม่จำเป็นต้องทำการโหลดข้อมูลมาจากต้นทางตลอดเวลา หากอยากให้ข้อมูล Update เวลานำรายงานขึ้นไปบน Server ทาง Tableau Server เองก็สามารถที่จะตั้งเวลาในการ Refresh Data Source ได้เช่นกัน ซึ่งจะลดภาระของฐานข้อมูลส่วนกลางลงได้เป็นอย่างมาก

image.png

ในหลาย ๆ ครั้งหากเราต้องการที่จะปรับปรุงประสิทธิภาพของ Dashboard ที่เราพัฒนาขึ้น การจัดรูปแบบข้อมูลให้เหมาะสม ตัดข้อมูลส่วนที่ไม่จำเป็นออก (ด้วยการใช้ SQL หรือโปรแกรมภาษาต่าง ๆ) ก็จะช่วยให้เราเพิ่มประสิทธิภาพการใช้งานข้อมูลให้เข้าถึงได้อย่างรวดเร็ว และสื่อสารไปยังผู้อื่นได้อย่างตรงจุด ตอบเป้าหมายการตัดสินใจต่าง ๆ ได้

ที่มา:

  1. The Tableau Performance Checklist: Custom SQL – Limit in Live Connections: interworks.com/blog/zgorman/2015/08/25/tabl..
  2. The Tableau Performance Checklist: Custom SQL – Watch for Useless Clauses: interworks.com/blog/jcaballero/2015/09/08/t..
  3. CREATE VIEW SQL: Modifying views in SQL Server: sqlshack.com/create-view-sql-modifying-view..
  4. How to Set Up a Data Extract to Refresh on a Regular Basis on Tableau Server: thedataschool.co.uk/rachel-phang/data-extra..