แนวทางการจัดเก็บข้อมูลที่วิเคราะห์ต่อง่าย และ คนใช้ข้อมูลชอบ ด้วย Machine readable format

เมื่อเร็ว ๆ นี้ ทาง DGA หรือสำนักงานรัฐบาลดิจิตอล ได้เผยแพร่เอกสารชุดนึง (อ่านเอกสาร แนวทางการเตรียมชุดข้อมูลให้สามารถอ่านได้ด้วยเครื่องได้ที่นี่ เพื่อใช้เป็นแนวทางในการจัดเก็บชุดข้อมูลของรัฐให้มีคุณภาพ และส่งเสริมการนำไปใช้ต่อของชุดข้อมูลนั้นที่เผยแพร่ออกมาทาง Thailand Open Data

ซึ่งหลังจากผู้เขียนได้อ่านเอกสารแล้วพบว่า แนวทางการเก็บข้อมูลในรูปแบบ Machine readable format ในเอกสารของทาง DGA นั้นน่าสนใจมากในเชิงมาตรฐานที่ช่วยให้นักวิเคราะห์ข้อมูล และนักพัฒนาสามารถนำไปใช้ต่อได้ง่าย จึงอยากจะมาสรุปแนวทางการจัดเก็บข้อมูลที่วิเคราะห์ต่อง่าย และ คนใช้ข้อมูลชอบในบทความนี้

เลือกอ่านเฉพาะหัวข้อ -

การเก็บข้อมูลให้อยู่ในรูป Machine readable format คืออะไร

จากคำนิยมจาก Western Australian Government Data Portal ได้ระบุว่า

Machine readable data is data which can be read and interpreted by a computer program without the need for manual human intervention.

Western Australian Government Data Portal

กล่าวคือเป็นแนวทางการจัดเก็บข้อมูลที่สามารถนำไปใช้ประมวลผลด้วยคอมพิวเตอร์ต่อได้เลย โดยไม่ต้องการจัดเตรียมข้อมูลใด ๆ โดยมนุษย์ และซอฟแวร์พิเศษเพิ่มเติม

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

ข้อดีของการจัดเก็บข้อมูลให้เป็น Machine readable format

ก่อนที่จะลองปรับปรุงชุดข้อมูลในองค์กร อยากให้ผู้อ่านลองมาฟังข้อดีของการจัดเก็บข้อมูลแบบ Machine readable format ดูก่อน

1) ลดเวลาในการทำความสะอาดข้อมูลก่อนนำไปใช้งาน

การเก็บข้อมูลแบบ Machine readable format จะช่วยลดเวลาในการทำความสะอาดข้อมูล
Photo by Ocean Ng on Unsplash

ชุดข้อมูลนั้นจะสามารถนำมาใช้ประโยชน์ได้ง่าย ถ้าเราสามารถลดกระบวนการทำงานของ Data cleansing ในการทำความสะอาดข้อมูลก่อนจะเข้าไปประมวลผล ทำให้สามารถเอาข้อมูลมาใช้ตัดสินใจได้เร็วยิ่งขึ้น

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

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

2) สามารถส่งต่อไฟล์ข้อมูลได้ โดยไม่เกิดความเสียหาย

การเก็บข้อมูลแบบ Machine readable format จะทำให้เราสามารถส่งต่อไฟล์ข้อมูลได้ โดยไม่เกิดความเสียหาย
Photo by Stephen Phillips – Hostreviews.co.uk on Unsplash

ชุดข้อมูล ถ้าหากไม่ได้เก็บอยู่ใน format ที่ดีแล้ว เมื่อการส่งต่อไฟล์ข้อมูลกันไปมา จะทำให้ข้อมูลมีโอกาสที่จะถูกบิดเบือนได้ ตัวอย่างที่เห็นได้ชัดอย่างเช่น

  1. ข้อมูลบางรายการที่มีการผสานเซลล์ที่ถูกทำผ่านโปรแกรม MS Excel เมื่อบันทึกเป็นไฟล์สกุล CSV (Comma Separate Value) แล้วโครงสร้างการผสานเซลล์จะถูกทำลายทันที
  2. ข้อมูลวัน เดือน ปี บางทีเมื่อเปิดผ่าน MS Excel จะแสดงผลไม่เหมือนกัน ขึ้นอยู่กับการตั้งค่าที่โปรแกรม ซึ่งต้องอาศัยความรู้ขั้นสูงในการใช้งาน

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

3) ชุดข้อมูลเป็นมาตรฐาน ดูแลรักษาต่อง่าย

การเก็บข้อมูลแบบ Machine readable format จะทำให้ชุดข้อมูลเป็นมาตรฐาน ดูแลรักษาต่อง่าย
Photo by Beatriz Pérez Moya on Unsplash

Machine readable format จะเป็นมาตรฐานกลางในการจัดเก็บข้อมูล ทำให้การดูแล และเพิ่มข้อมูลในแต่ละปีทำได้ง่าย ไม่สร้างความสับสน หากมีการเปลี่ยนคนทำงาน เนื่องจากมีมาตรฐานเดียวกัน

สัญญาณอันตรายที่เห็นได้ชัดคือ การมีเอกสารเกี่ยวกับชุดข้อมูลนี้เยอะเกินไป โดยปกติชุดข้อมูลควรจะมีเอกสาร
Data Dictionary ,Meta Data และตัว Dataset ก็เพียงพอที่จะสื่อสารถึงชุดข้อมูลนั้นแล้วโดยไม่ต้องการคนมาอธิบายเพิ่มเติม

แนวทางการจัดเก็บข้อมูลให้เป็น Machine readable format

ในส่วนนี้จะมาพูดถึงแนวทางทั้ง 6 ข้อในการปรับปรุงชุดข้อมูลให้เป็น Machine readable format

แนวทางที่ 1 : ชุดข้อมูลต้องมีโครงสร้างภายในแบบข้อมูลรายการ (Transaction Data)

ตัวอย่างการปรับปรุงชุดข้อมูลให้มีโครงสร้างข้อมูลแบบรายการ หรือ Transaction Data
ภาพก่อนปรับปรุงชุดข้อมูล (ซ้าย) และหลังปรับปรุงชุดข้อมูล (ขวา)

โครงสร้างข้อมูลแบบรายการ หรือ Transaction Data เป็นรูปแบบการเก็บข้อมูลแบบมุมมองเดียว ที่เวลาอ่านจะอ่านเป็นแนวยาวไล่ลงมา สังเกตได้ว่า ถ้าข้อมูลแบบนี้ ยิ่งมีข้อมูลมากขึ้น ข้อมูลจะยาวแนวตั้งลงมาข้างล่างเรื่อย ๆ

แตกต่างจากการเก็บข้อมูลอีกรูปแบบนึง ที่เป็นลักษณะ Crosstab Table หรือชุดข้อมูลที่มองได้ 2 มิติ แบบ Pivot Table
ข้อมูลลักษณะนี้สามารถอ่านได้ 2 ทาง และยิ่งข้อมูลมากขึ้น ตารางจะขยายตัวทั้งในแนวนอน และแนวขวาง ซึ่งเป็นวิธีที่ไม่แนะนำ เพราะคอมพิวเตอร์ไม่เหมาะจะประมวลผลชุดข้อมูลแบบนี้

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

แนวทางที่ 2 : ข้อมูลแต่ละรายการต้องจัดเก็บอยู่ในช่อง หรือเซลล์เดียวเท่านั้นโดยไม่มีการผสานเซลล์

ตัวอย่างการปรับปรุงชุดข้อมูลให้ข้อมูลแต่ละรายการต้องจัดเก็บอยู่ในช่อง หรือเซลล์เดียวเท่านั้น
ภาพก่อนปรับปรุงชุดข้อมูล (ซ้าย) และหลังปรับปรุงชุดข้อมูล (ขวา)

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

ผู้อ่านสามารถปรับปรุงชุดข้อมูลโดยการยกเลิกการผสานเซลล์ และจัดกลุ่มข้อมูลให้เก็บอยู่ช่องเดียว (หนึ่งเซลล์ จะมีข้อมูลเพียงหนึ่งชุด)

แนวทางที่ 3 : ตั้งชื่อคอลัมน์ (แถวแรก) โดยไม่ใช้อักขระพิเศษ

ตัวอย่างการปรับปรุงชุดข้อมูลให้ตั้งชื่อคอลัมน์ (แถวแรก) โดยไม่ใช้อักขระพิเศษ
ภาพก่อนปรับปรุงชุดข้อมูล (ซ้าย) และหลังปรับปรุงชุดข้อมูล (ขวา)

การใช้อักขระพิเศษ (เช่น #, @) หรือการเว้นวรรค จะทำให้บางโปรแกรมไม่สามารถอ่านค่าคอลัมน์นั้นได้

ผู้อ่านสามารถปรับปรุงชุดข้อมูลได้โดยการตั้งชื่อคอลัมน์ใหม่ โดยใช้ตัวอักษรเป็นอักขระตัวแรก และใช้ – (dash) หรือ _ (underscore) แทนอักขระพิเศษ / การเว้นวรรค และถ้าเป็นไปได้ ควรตั้งชื่อคอลัมน์ให้เป็นภาษาอังกฤษ เพราะบางโปรแกรมไม่สามารถอ่านภาษาไทยได้

แนวทางที่ 4 : ใช้รูปแบบข้อมูลที่มีมาตรฐาน และใช้หน่วยวัดเดียวกัน

ตัวอย่างการปรับปรุงชุดข้อมูลให้มีมาตรฐาน และใช้หน่วยวัดเดียวกัน
ภาพก่อนปรับปรุงชุดข้อมูล (ซ้าย) และหลังปรับปรุงชุดข้อมูล (ขวา)

สำหรับองค์กรที่ไม่มีโปรแกรมที่มีหน้าจอ User Interface ไว้สำหรับกรอกข้อมูล แต่กรอกข้อมูลผ่าน MS Excel โดยตรง มักมีปัญหาเรื่องกรอกข้อมูลผิด หรือกรอกข้อมูลไม่เป็นมาตรฐานเดียวกันเช่น

ชื่อคอลัมน์เป็น ” เพศ ” การกรอกข้อมูลเรื่องเพศ สามารถกรอกข้อมูลได้หลายแบบตามความถนัดของแต่ละคน ดังเช่น

ชายหญิง
MF
MaleFemale

การที่กรอกได้หลายแบบนี้ทำให้บางครั้ง เรากรอกผิดรูปแบบที่ควรจะเป็น ทำให้ในข้อมูลเรื่องเพศ มีข้อมูลที่เป็นเพศชาย แต่กรอกข้อมูลเป็นหลายรูปแบบมาก ทั้ง กรอกแบบ ชาย, ผู้ชาย, Male, Men เป็นต้น

หรืออีกปัญหาสุดคลาสิกคือ การกรอกข้อมูลเรื่องเวลา เช่นบางผู้ใช้กรอกข้อมูลเวลาแบบ ว / ด / ป (พ.ศ.), ด / ว / ป (ค.ศ.), ว – ด – ป และรูปแบบอื่น ๆ ตามแต่ที่เป็นไปได้

ว / ด / ป (พ.ศ.)29/03/2564
ด / ว / ป (ค.ศ.)03/29/2021
ว – ด – ป (พ.ศ.)29-03-2564

หรือข้อมูลในส่วนที่ว่างไว้ ผู้ใช้บางคนกรอก เป็น NA บางคนกรอกเป็น – หรือบางคนไม่กรอกอะไรเลย ไม่เป็นมาตรฐานเดียวกัน

มาตรฐานตรงส่วนนี้ต้องสื่อสารแต่แรก เพื่อให้ไม่สับสน และไม่ต้องเสียเวลามาแก้ข้อมูลในภายหลัง

แนวทางที่ 5 : กำหนดประเภทการเข้ารหัส (Encoding) ที่สอดคล้องกับข้อมูลที่ใช้

ตัวอย่างการปรับปรุงชุดข้อมูลโดยการกำหนดประเภทการเข้ารหัส (Encoding) ที่สอดคล้องกับข้อมูลที่ใช้
ภาพก่อนปรับปรุงชุดข้อมูล (ซ้าย) และหลังปรับปรุงชุดข้อมูล (ขวา)

ในบางครั้ง ผู้อ่านคงเคยมีประสบการณ์การเปิดไฟล์ข้อมูลมาแล้วพบว่าภาษาภายในข้อมูลนั้นเป็นภาษาต่างดาวอ่านไม่ได้ นั่นเพราะตอนบันทึกข้อมูลนั้น คนบันทึกไม่ได้ระบุการเข้ารหัสที่ถูกต้อง ทำให้เวลาเปิดไฟล์อีกครั้ง ตัวโปรแกรมเลยไม่สามารถแสดงผลภาษาได้อย่างถูกต้องโดยข้อมูลที่เป็นภาษาไทยต้องเป็นเข้ารหัสเป็นแบบ UTF-8

นี่ยังไม่รวมถึงภาษาอื่น ๆ ที่อาจจะมีการเข้ารหัสที่แตกต่างกันออกไปอีกด้วย

แนวทางที่ 6 : ชุดข้อมูลต้องบันทึกด้วยสกุลไฟล์ที่รองรับโครงสร้างข้อมูล (Structure data format)

ชุดข้อมูลต้องบันทึกด้วยสกุลไฟล์ที่รองรับโครงสร้างข้อมูล (Structure data format)
ชุดข้อมูลต้องบันทึกด้วยสกุลไฟล์ที่รองรับโครงสร้างข้อมูล (Structure data format)

ชุดข้อมูลที่ต้องการจะนำไปใช้ประมวลต่อไม่ควรบันทึกชุดข้อมูลด้วยไฟล์สกุล PDF, DOC เพราะไฟล์สกุลเหล่านี้ไม่รองรับการบันทึกโครงสร้างข้อมูล

ปัญหาใหญ่ที่สุด และนำมาไว้เป็นข้อสุดท้าย เพราะปรับปรุงชุดข้อมูลได้ยากมาก คือการบันทึกข้อมูลด้วยไฟล์สกุลที่ไม่รองรับการบันทึกโครงสร้างข้อมูลเช่น PDF, DOC ซึ่งต้องแก้ด้วยการใช้ โปรแกรมพิเศษ ในแสกนเอกสารนั้น แล้วสร้างโครงสร้างข้อมูลใหม่ หรือต้องอาศัยคนในการบันทึกข้อมูลใหม่เอง

ดังนั้นชุดข้อมูลต้องบันทึกด้วยสกุลไฟล์ที่มีโครงสร้างข้อมูล (Structure data format) ชัดเจนเช่นไฟล์สกุล CSV, XLSX

นอกจากนี้ยังมีชุดข้อมูลที่ถูกเก็บในรูปแบบ Semi-structure อีก เช่น เก็บในรูปแบบไฟล์ JSON แม้จะมีโครงสร้างข้อมูล แต่โปรแกรมส่วนใหญ่ยังไม่รองรับการประมวลผลข้อมูลแบบนี้ ต้องอาศัยความรู้เชิงเทคนิคเพิ่มเติม

บทส่งท้าย

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

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

ฉะนั้นการใส่ใจเก็บข้อมูลมากขึ้นอีกนิด จะเพิ่มมูลค่าของข้อมูลที่เก็บอยู่แล้วได้อย่างมหาศาลเลยล่ะ

มีคำถามสงสัยเพิ่มเติม ?

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

ขอบคุณแหล่งที่มา:

ถาม – ตอบสั้น ๆ กับ Datayolk

Machine readable format คืออะไร ?

Machine readable format คือแนวทางการจัดเก็บข้อมูลที่สามารถนำไปใช้ประมวลผลด้วยคอมพิวเตอร์ต่อได้เลย โดยไม่ต้องการจัดเตรียมข้อมูลใด ๆ โดยมนุษย์ และซอฟแวร์พิเศษเพิ่มเติม

ข้อดีของการจัดเก็บข้อมูลให้เป็น Machine readable format คืออะไร ?

ชุดข้อมูลนั้นจะสามารถนำมาใช้ประโยชน์ได้ง่าย ถ้าเราสามารถลดกระบวนการทำงานของ Data cleansing ในการทำความสะอาดข้อมูลก่อนจะเข้าไปประมวลผล จากการปฏิบัติตามแนวทางของ Machine readable format ทำให้สามารถเอาข้อมูลมาใช้ตัดสินใจได้เร็วยิ่งขึ้น