การใช้ฟังก์ชัน 'Describe' ในการสำรวจข้อมูล และ 
การเลือกข้อมูลที่จำเป็นในการวิเคราะห์ Part II

การใช้ฟังก์ชัน 'Describe' ในการสำรวจข้อมูล และ การเลือกข้อมูลที่จำเป็นในการวิเคราะห์ Part II

Use ‘Describe’ to Explore And Bring in Only Needed Data! Part II

20.png

หลังจากที่เราสำรวจข้อมูลกันมาพอสมควรแล้ว ว่า มี Field ข้อมูลใดบ้างที่จะสามารถนำมาใช้ในการวิเคราะห์ข้อมูลตามโจทย์คำถามต่างๆ ที่เราต้องการค้นหาคำตอบ

คำถามในขั้นตอนถัดไป คือ

การเลือกเฉพาะข้อมูลที่เกี่ยวข้องกับโจทย์ในการวิเคราะห์ของเรานั้น ควรจะเลือกอย่างไร ให้ทั้งตอบโจทย์ และไม่ไปลดทอนประสิทธิภาพของโปรแกรม Tableau

เพราะหากเรายิ่งเชื่อมต่อข้อมูลมากเท่าไหร่ โปรแกรม Tableau ก็ยิ่งต้องใช้ทรัพยากรในการคำนวณต่างๆ มากขึ้น ไม่ว่าจะเป็น Calculated field ต่างๆ หรือในเรื่องของข้อมูลที่อาจเกิดการซ้ำซ้อน (Duplicate) เกิดขึ้น จากการเชื่อมต่อข้อมูลด้วยหลายๆ Field มากจนเกินความจำเป็น

13.png

ในการจัดการและวิเคราะห์ข้อมูลหลายๆ ครั้ง ส่วนใหญ่ก็ไม่ได้จำเป็นที่จะต้องใช้ข้อมูลจากทุกๆ Field ในฐานข้อมูลต่างๆ ที่เรามีอยู่เสมอไป เพราะหากเรายังคงใช้เราข้อมูลจากทุกๆ Field ทั้งหมดแบบนี้

เรากำลังสูญเสียทรัพยากร (Wasting resources) ที่เรามีอยู่ แทนที่จะสามารถนำข้อมูลเท่าที่จำเป็นต้องใช้เหล่านั้นไปเพิ่มประสิทธิภาพในการวิเคราะห์ข้อมูลแทน

ดังนั้น Step ขั้นตอนที่สำคัญในการจัดการข้อมูลตามประเด็นที่กล่าวมาข้างต้นนี้ สามารถนำ 4 ขั้นตอนนี้มาประยุกต์ใช้ได้

  1. Focus on User Performance
  2. Minimizing Joined Tables
  3. Using a data source filter
  4. Creating an extract : Use Extracts, but Limit Size

1. มุ่งเน้นที่ประสิทธิภาพของผู้ใช้ (Focus on User Performance)

ปกติแล้วการที่เรามีข้อมูลที่มากขึ้น (มีทั้งข้อมูลที่จำเป็นต้องใช้จริงๆ และข้อมูลที่จะมีหรือไม่มีก็ได้ในการนำไปใช้วิเคราะห์ต่อ) ซึ่งแลกมาด้วย Field ข้อมูลที่มากมายตามมาเช่นกัน อาจต้องมาทำการจัดเรียง สร้างการคำนวณต่างๆ ที่มีความซับซ้อนมากขึ้น และเราอาจต้องเพิ่มตัวกรองหลายๆ ตัว เพื่อกันข้อมูลที่เราไม่ต้องการใช้ออกไป

ข้อมูลที่ไม่จำเป็นเหล่านี้เอง จะทำให้ทั้งโปรแกรม Tableau และผู้ใช้งานทำงานได้ช้าลงในที่สุด
(Unnecessary data ultimately slows down both Tableau and the user.)

เมื่อเราสร้าง workbook ครั้งแรก เรามักเชื่อมต่อกับข้อมูลให้ได้มากที่สุดเท่าที่จะทำได้ เพราะเราเองก็ไม่แน่ใจว่าเราต้องการนำ Field ข้อมูลใดบ้างมาใช้

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

17.png

2. เชื่อมต่อตารางข้อมูลเท่าที่จำเป็น (Minimizing Joined Tables)

การเชื่อมต่อข้อมูลนั้น เป็นเรื่องที่สำคัญมากๆ เพราะหากเราเชื่อมต่อข้อมูลไม่ถูกต้อง หรือทำการเลือกใช้ Field มากจนเกินความจำเป็น อาจนำไปสู่ปัญหาการเกิดข้อมูลซ้ำซ้อน (Duplicate Data) ในที่นี้ขอยกตัวอย่างกรณีศึกษา เพื่อให้เกิดความเข้าใจมากขึ้น

สมมติว่าเรามีข้อมูลอยู่ 2 ตาราง คือ Table A และ Table B ดังรูปด้านล่าง โดยมี Primary key เป็น Field --> id

14.png

หากเราลอง Join ทั้ง 2 Tables นี้ แล้วเรียก Field ทั้งหมดออกมาดูจะได้ ผลลัพธ์ดังนี้

SELECT * 
FROM Table_A AS  a 
JOIN Table_B AS  b   on   a.id  =  b.id

15.png

จะสังเกตเห็นได้ว่า ข้อมูลทุกแถว (Row) นั้น ไม่ซ้ำกัน

แต่หากเราลองเขียนคำสั่งใหม่ โดยเลือกให้แสดงผลแค่ Field --> a.id, a.Field1, b.Field2 ด้วยคำสั่งนี้

SELECT a.id, a.Field1,  b.Field2
FROM Table_A  AS  a
JOIN Table_B  AS  b     on a.id  =  b.id

16.png

เราจะพบว่า ในแถวที่ 1 และ 2 นั้น มีข้อมูลซ้ำกัน (Duplicate Data) นี่เป็นหนึ่งในตัวอย่างกรณีที่อาจเกิดขึ้นได้จากการ Join ข้อมูล แต่ทั้งนี้ ตามกรณีดังกล่าว เราทราบว่าทั้ง 2 rows ที่ปรากฏนี้ แท้จริงแล้วไม่ซ้ำ เพราะมีข้อมูลใน Column ของ Field3

ดังนั้น หลังจากที่เรา Join ข้อมูลเรียบร้อยแล้ว การทวนสอบข้อมูลก็เป็นเรื่องที่สำคัญเช่นกัน ว่าข้อมูลที่ Join มานั้นถูกต้อง ครบถ้วน และไม่เกิดข้อมูลซ้ำ ดังเช่นในกรณีนี้ที่เราทราบรายละเอียดของข้อมูล และสามารถตรวจสอบย้อนกลับไปได้ว่า ข้อมูลที่ Join มานี้ไม่ได้เกิด row ซ้ำกัน

และนอกจากนี้ เมื่อเราเลือกใช้ตารางข้อมูล และ Field ข้อมูล เท่าที่จำเป็นต้องใช้แล้ว การทำความเข้าใจในการวิเคราะห์ข้อมูลจะง่ายขึ้นด้วย เพราะเราจะเหลือเพียงส่วนสำคัญของข้อมูลที่จำเป็นจะต้องใช้จริงๆ เท่านั้น

3. การใช้ Data source filter (Using a data source filter)

จริงๆ แล้ว ตัวกรอง (Filters) ต่างๆ ในโปรแกรม Tableau นั้น มีหลายประเภทโดยมีลำดับการทำงานจากบนลงล่างดังรูปด้านล่างนี้ (ตาม Level of Detail)

18.png

หนึ่งในตัวกรองข้อมูลของ Data source นั้น ก็จะมี "Context filter" ซึ่งช่วยเรื่องการกรองสกัดให้ข้อมูลมีขนาดที่เล็กลง และช่วยให้การ refresh ข้อมูลนั้น รวดเร็วขึ้น

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

1.png

4. การสร้าง Extract file (Creating an extract : Use Extracts, but Limit Size)

ถ้าเรารู้ว่า เราใช้ข้อมูลเพียงบางส่วน ก็ใช้ตัวกรองข้อมูลผ่าน Data Source Filter เช่น Context filter เพื่อให้สกัดเฉพาะข้อมูลสิ่งที่เราต้องการ ข้อมูลที่ผ่านการกรองแล้วจะใช้ทรัพยากรน้อยลงในแง่ของหน่วยความจำ และเวลาในการ Refresh ข้อมูลจะลดลงแน่นอน

ข้อด้อยของการทำ Extract file จะมีเพียงข้อมูลนั้น จะไม่ได้อยู่ในรูปแบบของ Real time

แต่หากงานที่เราทำนั้น ไม่จำเป็นที่จะต้องติดตามดูข้อมูลแบบทันทีทันใด (Real time) การเลือกใช้แบบ Extract file ก็เป็นหนึ่งตัวเลือกที่ดีในการเพิ่มประสิทธิภาพของโปรแกรม Tableau ให้สามารถทำงานได้รวดเร็วมากยิ่งขึ้น

2.png

สรุป! (Conclusion)

การเพิ่มประสิทธิภาพของโปรแกรม Tableau อย่างง่ายอีกวิธีหนึ่งก็ คือ

การเข้าใจความต้องการของ User อย่างชัดเจนรู้ว่าข้อมูลที่มีอยู่นั้น ต้องใช้ข้อมูลใดบ้างมาใช้ในการวิเคราะห์ให้ตอบโจทย์ และ ให้ความสำคัญในการเลือกใช้เฉพาะข้อมูลที่เกี่ยวข้องกับโจทย์ในการวิเคราะห์เท่าที่จำเป็นเท่านั้น

เพราะผลลัพธ์ที่ได้จากการทำตาม 4 Step นี้ จะช่วยให้โปรแกรม Tableau ประมวลผลข้อมูลได้รวดเร็วมากขึ้น หน่วยความจำที่ใช้ลดลง และผู้จัดทำข้อมูลใช้เวลาน้อยลงในการทำความเข้าใจข้อมูล (เนื่องจาก Field ข้อมูลนี้จะมีเฉพาะตัวที่ต้องใช้ในการวิเคราะห์ข้อมูลเท่านั้น)

มาถึงตรงนี้ ตั้งแต่ขั้นตอนการสำรวจข้อมูล (Data Exploration) ไปจนถึงขั้นตอนการจัดเตรียมข้อมูล (Data Preparation) นั้น ล้วนมีความสำคัญอย่างมาในการวิเคราะห์ข้อมูล

และโดยหลักๆ แล้วใน 2 ขั้นตอนนี้ล้วนใช้เวลาไปมากกว่า 80 % ในการจัดการข้อมูล

หวังว่าเครื่องมืออย่าง Describe และ Bring in Only Needed Data จะช่วยให้ทุกท่านสามารถสำรวจและทำความเข้าใจข้อมูลได้สะดวก ถูกต้อง ครบถ้วน และตรวจสอบได้ ตามโจทย์การทำงานของทุกคนนะคะ ขอบคุณที่อ่านมาถึงตรงนี้ แล้วพบกันใหม่ในบทความหน้า ขอบคุณค่า :)

6.png

อ้างอิง (Reference)