Data cleansing ทำให้ข้อมูลสะอาดก่อนเอาไปใช้/วิเคราะห์

Data cleansing เป็นส่วนสำคัญในการทำ ETL (Extract, Transform, Load) data cleansing process เป็นกระบวนการที่เกี่ยวกับ การระบุและ แก้ไขหรือลบ ข้อผิดพลาด ความไม่สอดคล้องหรือความไม่แม่นยำในข้อมูลก่อนที่จะโหลดเข้าสู่ที่เก็บข้อมูล

ขั้นตอนการทำ Data cleansing ประกอบด้วยขั้นตอนดังนี้

  1. Data Profiling: เป็นการวิเคราะห์ข้อมูลเพื่อระบุปัญหาด้านคุณภาพหรือความไม่สอดคล้องกันที่ต้องได้รับการแก้ไข
  2. Data Standardization: ในขั้นตอนนี้ ข้อมูลจะถูกทำให้เป็นมาตรฐานในรูปแบบทั่วไปหรือเป็นมาตารฐานสากล รวมถึง format ต่างๆ เช่น รูปแบบวันที่ ชื่อย่อ ชื่อเต็ม กำหนดค่าทางการเงินที่มีหน่วยนับเดี่ยวกันทั้งหมด
  3. Data Parsing: การแยกข้อมูลออกเป็นฟิลด์หรือคอลัมน์เพื่อให้สามารถวิเคราะห์และประมวลผลเพิ่มเติมได้
  4. Data Transformation: ขั้นตอนนี้เกี่ยวข้องกับการแปลงข้อมูลเพื่อให้สอดคล้องกับเป้าหมายที่ตั้งไว้ ซึ่งรวมถึงการแปลงชนิดข้อมูล การคำนวณข้อมูล และการรวมข้อมูล
  5. Data Enrichment: เป็นการเพิ่มข้อมูลจากแหล่งอื่นๆ เพื่อความสมบูรณ์ของการวิเคราะห์
  6. Data Deduplication: ในขั้นตอนนี้ records ที่ซ้ำกันจะถูกระบุและลบหรือผสานเพื่อให้แน่ใจว่าข้อมูลมีความถูกต้อง
  7. Data Validation: ขั้นตอนนี้เกี่ยวข้องกับการตรวจสอบความถูกต้องของข้อมูลตามกฎเกณฑ์ ข้อจำกัด และข้อมูลอ้างอิงเพื่อให้แน่ใจว่าตรงตามมาตรฐานคุณภาพที่กำหนด
  8. Documentations : การจัดทำเอกสารประกอบการจัดทำ Data cleansing
  9. Monitoring : การตรวจสอบข้อมูลให้เป็นไปตามมาตราฐานที่ว่างไว้อย่างสม่ำเสมอเพื่อให้แน่ใจว่าไม่มีขั้นตอนไหนผิดพลาด

data cleansing ทำให้แน่ใจว่าข้อมูลที่ผ่านกระบวนการ ETL ไปยังที่เก็บข้อมูลต้องมี accurate consistent และ reliable โดยเป็นไปตามกฏเกณฑ์ที่ตั้งไว้ตามมาตราฐานขององค์กรหรือตามมาตราฐานสากล


Data Profiling

การประมวลผลข้อมูล (Data Profiling) เป็นขั้นตอนสำคัญในกระบวนการ ETL (Extract, Transform, Load) ซึ่งเป็นการวิเคราะห์คุณภาพ โครงสร้าง และเนื้อหาของข้อมูลเพื่อตรวจสอบปัญหาหรือความไม่สอดคล้องที่ต้องการแก้ไขก่อนการโหลดข้อมูลเข้าสู่ระบบเป้าหมาย ขั้นตอนดังกล่าวประกอบไปด้วย:

  1. ระบุแหล่งข้อมูล: ขั้นตอนแรกคือการระบุแหล่งข้อมูลที่ต้องการประมวลผล ซึ่งสามารถเป็นฐานข้อมูล ไฟล์แบบแฟลต บริการเว็บ และแหล่งข้อมูลอื่นๆ
  2. กำหนดกฏการประมวลผลข้อมูล: เมื่อระบุแหล่งข้อมูลแล้ว จำเป็นต้องกำหนดกฏการประมวลผลข้อมูล
  3. เลือกเครื่องมือประมวลผลข้อมูล: มีเครื่องมือประมวลผลข้อมูลหลายตัวที่ใช้งานได้ในตลาด สามารถเลือกเครื่องมือที่เหมาะสมกับความต้องการและงบประมาณขององค์กร
  4. กำหนดค่าเครื่องมือการโปรไฟล์ข้อมูล: กำหนดค่าเครื่องมือการโปรไฟล์ข้อมูลให้เชื่อมต่อกับแหล่งข้อมูลและเก็บข้อมูลที่ต้องการสำหรับการวิเคราะห์ กำหนดกฎและตัวชี้วัดสำหรับการโปรไฟล์ข้อมูลรวมถึงความสมบูรณ์ของข้อมูล ความแม่นยำของข้อมูล ความสอดคล้องของข้อมูล และเวลาที่เป็นไปตามกำหนด
  5. รันกระบวนการโปรไฟล์ข้อมูล: เมื่อเครื่องมือการโปรไฟล์ข้อมูลได้ถูกกำหนดค่า จะต้องรันกระบวนการโปรไฟล์ข้อมูลเพื่อวิเคราะห์ข้อมูลและสร้างรายงานโปรไฟล์ วิเคราะห์รายงานเพื่อระบุปัญหาคุณภาพข้อมูล เช่นข้อมูลที่ขาดหายไป เร็คคอร์ดที่ซ้ำกัน หรือค่าข้อมูลที่ไม่สอดคล้องกัน
  6. แก้ไขปัญหาคุณภาพข้อมูล: โดยอิงตามรายงานการโปรไฟล์ข้อมูล จะต้องแก้ไขปัญหาคุณภาพข้อมูลโดยพัฒนากฎการทำความสะอาดข้อมูลหรือทำการเปลี่ยนแปลงในแหล่งข้อมูลหรือกระบวนการ ETL เพื่อให้ข้อมูลสะอาดและถูกแปลงตามกฎธุรกิจและความต้องการ
  7. ตรวจสอบคุณภาพข้อมูล: ตรวจสอบคุณภาพข้อมูลอย่างต่อเนื่องและทำการวิเคราะห์ข้อมูลอีกครั้งเพื่อตรวจสอบว่าข้อมูลยังคงถูกต้องและสอดคล้องกันตลอดเวลา

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


Data Standardization

จัดข้อมูลให้เข้ากับมาตราฐานองค์กรหรือมาตราฐานสากล ตัวอย่างมาตราฐานข้อมูลของไทย

คู่มือการจัดทํามาตรฐานเพื่อการเชื่อมโยงข้อมูลระหว่างหน่วยงานภาครัฐ
Data Standardization for e-Government Interoperability Manual


Data Parsing

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

มีหลายวิธีในการทำ Data Parsing วิธีการหนึ่งที่ใช้กันทั่วไปคือการใช้ parser generator สำหรับแปลงรูปแบบข้อมูลเฉพาะ เมื่อสร้างโปรแกรมแยกวิเคราะห์แล้ว สามารถใช้เพื่อแยกวิเคราะห์ข้อมูลจากแหล่งต่างๆ ได้

อีกวิธีหนึ่งในการทำ Data Parsing คือการใช้ library หรือ API ทั้งทำเองหรือเอาที่ท่านอื่นๆทำไว้แล้ว


Data Transformation

เปลี่ยนข้อมูลไปเป็นรูปแบบที่ต้องการ โดยใช้รูปแบบดังนี้

1.ใช้ data dictionary เพื่อให้ตรงกันทั้งหมด เช่น ตัวย่อ กทม. กรุงเทพฯ เป็นต้น
2.ใช้ data validation tool เพื่อความถูกต้อง (accurate)
3.ใช้ data quality tool เพื่อระบุและแก้ไขข้อผิดพลาดในข้อมูล (correct errors)
4.ใช้ data transformation tool ทำงานเอง


Data Enrichment

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


Data Deduplication

การตรวจสอบการซ้ำกันของข้อมูลทำได้โดยการเขียน Query ตรวจสอบหรือใช้เครื่องมือกลุ่ม data profiling, data quality ช่วยก็จะทำงานได้อย่างมีประสิทธิภาพ


Data Validation

การตรวจสอบความถูกต้องและครบถ้วนของข้อมูล ส่วนใหญ่จะทำโดยการทำ Data aggregation ข้อมูลต้นทาง ปลายทาง เหมือนเป็นการตรวจสอบกระบวนการที่ทำมาว่าถูกต้องตามกฏเกณฑ์ที่ว่างไว้หรือไม่


Documentations

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

  1. วัตถุประสงค์ของการทำความสะอาดข้อมูล
  2. ขอบเขตของการทำความสะอาดข้อมูล ต้องทำอะไรบ้าง column ไหนทำอะไร
  3. แหล่งข้อมูลที่จะนำมาใช้ ระบุแหล่งข้อมูลมาจากที่แหล่ง อะไรบ้าง ข้อจำกัดต่างๆที่มี
  4. วิธีการทำความสะอาดข้อมูลที่จะใช้
  5. เครื่องมือที่ใช้ในการทำความสะอาดข้อมูล
  6. ขั้นตอนการทำความสะอาดข้อมูล เขียนให้ชัดเจนทำอะไรกับ column ไหนบ้าง
  7. ผลลัพธ์ของการทำความสะอาดข้อมูล
  8. ตัวชี้วัดของการทำความสะอาดข้อมูล ผลที่เกิดจากการทำความสะอาดข้อมูล เช่น เปลี่ยนค่าไปกี่ records แทนข้อมูลไปกี่ record

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

เคล็ดลับสำหรับการเขียนเอกสารการทำความสะอาดข้อมูล:

  1. เริ่มต้นด้วยการระบุวัตถุประสงค์ของโครงการทำความสะอาดข้อมูล คุณต้องการทำอะไรในการทำความสะอาดข้อมูล?
  2. ระบุขอบเขตของโครงการได้ คุณจะทำความสะอาดข้อมูลอะไรบ้าง อย่างไร?
  3. ระบุแหล่งข้อมูลที่จะใช้ ข้อมูลนี้มาจากไหนบ้างกี่แหล่งข้อมูล ?
  4. ระบุวิธีการทำความสะอาดข้อมูลที่จะใช้ คุณจะใช้วิธีการใดในการทำความสะอาดข้อมูล?
  5. เครื่องมือที่จะใช้เพื่อทำความสะอาดข้อมูล?
  6. เขียนขั้นตอนการทำความสะอาดข้อมูลเป็นเหมือนกฏเกณฑ์ไว้?
  7. เขียนผลลัพธ์เป้าหมายที่จะได้รับหลังทำความสะอาดข้อมูล?
  8. สรุปผลการทำความสะอาดข้อมูลทำงานได้ดีแค่ไหน โดยการระบุจำนวนข้อมูลที่ดำเนินการสำเร็จ ไม่สำเร็จ ต่างๆ?

Monitoring

เป็นส่วนสำคัญที่ช่วยติดตามการทำ data cleansing เป็นไปตามกฏหรือผลลัพธ์ที่ต้องการ ตรวจสอบ error log มีข้อมูลส่วนไหนมีปัญหาดำเนินการไม่ได้บ้าง อาจจะทำเป็น Dashboard สำหรับ Monitoring Data Cleansing Process แสดงวันเวลาดำเนินการ ผลลัพธ์สำเร็จหรือ error เท่าไร เป็นต้น


Check List

  1. Check for missing values: ค่าที่ไม่ควรมีหรือ NULL ค่าที่ผิดต้องมี Data Standardization เป็นมาตราฐาน
  2. Check for duplicates: records ที่ซ้ำซ้อนกัน
  3. Check for outliers: data นอกช่วงที่ควรจะเป็นไม่ว่าจะเป็น อายุ วันที่ หรือ ช่วงเงินเดือนเป็นต้น วิธีการหา Outliers โดยการ Sort data มองหาค่าเกิดขอบเขต หรือ Graphing พวก Boxplots, Histograms  หาความสุดโต้งของข้อมูล
  4. Check data types: ตรวจสอบชนิดของข้อมูลต้องตรงกัน
  5. Check for inconsistent data: คือ การตรวจสอบข้อมูลที่มาจากหลายๆ แหล่งข้อมูลและมีความไม่ตรงกันทั้งๆที่เป็นข้อมูลชุดเดียวกัน
  6. Check for valid ranges: ช่วงของข้อมูลที่ควรจะเป็น
  7. Check for appropriate formatting: รูปแบบของข้อมูล เช่น วันที่แบบ พ.ศ. หรือ ค.ศ. หน่วยของเงิน หน่วยของส่วนสูง หรือน้ำหนัก เป็นต้น
  8. Check for missing or incorrect relationships: ข้อมูลที่มีการอ้างอิง เช่น foreign key ต้องตรวจสอบให้สามารถอ้างอิงกันได้จริงและถูกต้อง
  9. Check for errors in calculations: การคำนวนที่มีความไม่ถูกต้อง
  10. Check for documentation: สุดท้ายต้องตรวจสอบเอกสารที่ทำว่า update เป็นปัจจุบันหรือไม่

ทั้งหมดนี้ก็คืองานที่ต้องทำและต้องตรวจสอบสำหรับการทำ Data cleansing ซึ่งเป็นกระบวนการที่ไม่รู้จบ ทำวนไปเพื่อรักษาความถูกต้องครบถ้วนของข้อมูลไปจนกว่าไม่มีใครใช้ข้อมูลนั้นอีกแล้ว

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