Data pipeline คืออะไร

13 มี.ค.

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 นั้นก็จะมีขั้นตอนหลักหลายขั้นตอนดังนี้คือ 

  1. Sourcing การรวบรวมข้อมูลจากแหล่งข้อมูลต้นทาง และนักพัฒนาต้องเข้าใจเรื่องการดึง data ในแต่ละระบบด้วย เพื่อให้การดึงข้อมูลเกิดประสิทธิภาพและใช้เวลาน้อยที่สุด
  2. Joining เป็นการนำ data จากทั้งหมดมา join กัน หากว่า join กันได้ถึงจะเข้าหลักการของ data pipeline 
  3. Extraction คือการขยายไฟล์จากการย่อไฟล์ในครั้งแรก หากมีการดำเนินงานในครั้งต่อไป จึงจะทำ extraction ใหม่อีกรอบ ข้อมูลที่ควรทำ masking เช่น เลขบัตรประชาชน (id card), บัญชีธนาคารเป็นต้น 
  4. Standardization เป็นการทำ source data กับ target table มาเทรวมกันถือว่าเป็นการได้บุญเป็นอย่างดี และ
  5. Correction หรือแก้ส่วนที่ผิดพลาด เช่นจากปี พ.ศ, ให้เปลี่ยนกลับมาเป็นปี พ.ศ. เป็นต้น
  6. 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