Data pipeline คืออะไร
จริงๆ แล้วคำว่า data pipeline เป็นศัพท์ที่เราได้ยินกันใหม่นานก็จริง แต่หากดูรายละเอียดของมันแล้ว ประกอบด้วยกระบวนการทำงานที่เรียกว่า Online Transactional Processing (OLTP), Online Analytic Processing (OLAP)
Data pipeline เป็นกระบวนการย้ายข้อมูลจากต้นทางไปยังปลายทาง โดยที่ข้อมูลต้นทางอาจจะมาจากแหล่งเดียวกันหรือหลายแหล่งกันก็ได้ มีสองประเภทคือ OLTP, OLAP
Online Transactional Processing (OLTP) — เป็นระบบที่เก็บรายการเคลื่อนไหวในแต่ละวัน อาจจะไม่ใช่ข้อมูลที่เก่ามากนัก (ข้อมูลไม่เกิน 5 ปี) เช่นรายการฝาก-ถอนเงินของธนาคาร
ขณะที่ Online Analytic Processing (OLAP) ใช้เรื่องของการวิเคราะห์ข้อมูลมากกว่า คือเป็นข้อมูลตั้งแต่อดีตจนถึงปัจจุบัน ที่มีการเก็บอย่างเป็นระเบียบมาก่อนแล้ว ซึ่ง data ที่ผ่านกระบวนการ OLAP จะมี data มหาศาลบางครั้งต้องใช้เวลาในการประมวลผลนานเป็นพิเศษ
ช่วงที่มีการทำงาน data pipeline มีความเป็นไปได้ว่าอาจจะเกิด error เรื่องของ network ทำให้ data ต้นทางและ data ปลายทางไม่เชื่อมต่อกัน ก็เป็นหน้าที่ของนักพัฒนาที่ต้องทำการกูคือข้อมูลที่ขาดไปให้กลับคืนมาใหม่ โดยที่ไม่ต้องเริ่มต้นกระบวนการใหม่ทั้งหมด
ซึ่งการสร้าง data pipeline นั้นก็จะมีขั้นตอนหลักหลายขั้นตอนดังนี้คือ
- Sourcing การรวบรวมข้อมูลจากแหล่งข้อมูลต้นทาง และนักพัฒนาต้องเข้าใจเรื่องการดึง data ในแต่ละระบบด้วย เพื่อให้การดึงข้อมูลเกิดประสิทธิภาพและใช้เวลาน้อยที่สุด
- Joining เป็นการนำ data จากทั้งหมดมา join กัน หากว่า join กันได้ถึงจะเข้าหลักการของ data pipeline
- Extraction คือการขยายไฟล์จากการย่อไฟล์ในครั้งแรก หากมีการดำเนินงานในครั้งต่อไป จึงจะทำ extraction ใหม่อีกรอบ ข้อมูลที่ควรทำ masking เช่น เลขบัตรประชาชน (id card), บัญชีธนาคารเป็นต้น
- Standardization เป็นการทำ source data กับ target table มาเทรวมกันถือว่าเป็นการได้บุญเป็นอย่างดี และ
- Correction หรือแก้ส่วนที่ผิดพลาด เช่นจากปี พ.ศ, ให้เปลี่ยนกลับมาเป็นปี พ.ศ. เป็นต้น
- Load ก็คือการย้ายข้อมูลเข้าที่เก็บปลายทาง
7.Automation — หากต้องการให้เกิดความรวดเร็วต้องใช้ automate workflow ที่ตรวจจับและแก้ข้อผิดพลาดได้
data pipeline จะถูกเรียกใช้งานบ่อยครั้ง อาจจะเป็นลักษณะตั้งเวลาให้ทำงานตามรอบ หรือทำงานแบบต่อเนื่อง ซึ่งอาจจะเกิด error ระหว่างทำงานได้ การทำงานแบบ manual เป็นการเพิ่มความเสี่ยงให้เกิดข้อผิดพลาดได้สูง ในขั้นตอนนี้เราจะต้องออกแบบและจัดวางเครื่องมือ (automate workflow) รวมถึงการตรวจจับและแก้ไขข้อผิดพลาดอย่างอัตโนมัติให้ได้มากที่สุดเท่าที่ทำได้ เพื่อให้ข้อมูลมีความพร้อมใช้งานเสมอ
ต่อมาเรามาดูการเลือก tools ที่จะทำ data pipeline ก็ต้องดูว่าเป็น batch หรือว่าเป็นการทำงานแบบ real-time ซึ่งโปรแกรมด้านการทำ data pipeline มีดังนี้คือ Informatica PowerCenter,IBM InfoSphere DataStage,Talend,Pentaho