มีเรื่องของ Data architecture ที่ต้องทำ
เลยสรุปเรื่องของ Data architecture ไว้หน่อย
ว่ามีความเป็นมาอย่างไรบ้าง
เราอยู่ตรงไหน และจะไปทางไหนต่อ

เริ่มต้นจากทุกอย่างรวมศูนย์ (Centralized data)

ใครอยากให้งาน data ก็มาเชื่อมต่อ เพื่อนำไปใช้
บ่อยครั้งส่งผลกระทบต่อ performance ของระบบอีก
จึงต้องทำการ scale ด้วยการเพิ่ม หรือ ขยายเครื่อง ก็ว่าไป

แต่การใช้งานดูยุ่งยาก ดูแลยาก จัดการยาก
ทำให้เกิดแนวคิดใหม่ ๆ เพิ่มเข้ามา

ทำระบบ Batching ไปเลย เพื่อดึงข้อมูลที่ต้องการมาใช้งาน

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

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

ดังนั้นจึงต้องมีวิธีการแก้ไขออกมาอีก

ระบบที่ทำงานแบบ Real time คือ Streaming system

นั่นคือ เมื่อต้นทางมีการเปลี่ยนแปลงข้อมูล
จะทำการส่งการเปลี่ยนแปลงนั้นออกมา ในรูปแบบที่กำหนด
นำไปไว้ในระบบกลาง เช่น messaging server
จากนั้นระบบใด ๆ ที่ต้องการนำไปใช้งาน
ทั้งแบบ batching และ real time processing

โดยที่จากแนวทางนี้ สามารถนำไป integrate เข้ากับระบบอื่น ๆ ได้ง่ายขึ้น
ทั้ง internal และ external

ส่วนชุดของเครื่องมือ ก็แล้วแต่ว่าต้องการอะไรต่อไปนั่นเอง
ทั้ง Apache Kafka และ Apache Airflow เป็นต้น
หรือเป็นแนวทางของ Big data architecture
ยกตัวอย่างเช่น Lambda architecture ที่มีทั้ง batching และ real time ไปเลย

Reference Websites