
ขั้นตอนการประมวลผลข้อมูลขนาดใหญ่ (Big data pipeline) จะประกอบด้วยขั้นตอนหลักและต้องใช้เทคโนโลยีต่างๆอยู่ 5 ด้านคือ
- Data Ingestion คือขั้นตอนการนำข้อมูลดิบ (Raw data) จากแหล่งต่างๆเข้ามา ซึ่งอาจต้องใช้เทคโนโลยีที่แตกต่างกันสำหรับแหล่งข้อมูลหลากหลายชนิด
- Data Storage คือขั้นตอนการเก็บข้อมูลมาไว้ที่เดียวกัน ซึ่งเทคโนโลยีในการเก็บข้อมูลจากหลายแหล่งอาจเป็น Data Warehouse หรือ Data Lake
- Data Processing คือขั้นตอนในการประมวลผลข้อมูลที่เป็นการแปลงข้อมูลดิบมาอยู่ในรูปแบบของข้อมูลที่นำไปวิเคราะห์ต่อได้ โดยขั้นตอนนี้อาจทำก่อนจะนำเข้า Data storage (เป็นการทำตามหลักการของ ETL) หรืออาจทำหลังจากที่มีข้อมูลอยู่ใน Data Storage แล้วก็ได้ (ทำตามหลักการ ELT) ซึ่งก็จะมีเทคโนโลยีที่หลากหลายในการประมวลผลข้อมูล ขึ้นอยู่กับประเภทของข้อมูลและเทคโนโลยีของ Data storage
- Data Analytics คือขั้นตอนการวิเคราะห์ข้อมูล ซึ่งอาจแบ่งได้เป็นการทำ Business Intelligence เพื่อค้นหาตำตอบต่างๆจากข้อมูลทีมีอยู่ หรือการทำ Data science ที่จะนำข้อมูลมาพัฒนาโมเดลในการพยากรณ์ต่างๆ ซึ่งการวิเคราะห์ทั้งสองแบบนี้อาจใช้เทคโนโลยีที่แตกต่างกัน
- Data Visualisation คือขั้นตอนในการแสดงผลข้อมูล ซึ่งอาจเป็นการนำข้อมูลที่ได้จากการวิเคราะห์มาแสดงผลให้ผู้ใช้เข้าใจได้ง่ายขึ้นผ่านรายงานหรือรูปกราฟฟิกต่างๆ
เมื่อพูดถึงสถาบัตยกรรมทางด้าน Big data หลายคนก็จะมีคำถามในเรื่องของ Data storage ว่าควรจะเป็น Data warehouse หรือ Data Lake ดี เพื่อให้เห็นภาพเปรียบเเทียบระหว่างเทคโนโลยีทั้งสองแบบ ผมของเริ่มจากสถาปัตยกรรมของ Data Warehouse ในรูปที่ 2 ซึ่งเทคโนโลยี Data Warehouse ที่ส่วนใหญ่จะมีพื้นฐานมาจากระบบสถาปัตยกรรมฐานข้อมูลแบบ RDBMS ซึ่งจะทำหน้าที่สองอย่างคืดทั้งในการเป็น Storage และ Analytics โดยใช้ภาษาอย่าง SQL

ซึ่งถ้าเรายกตัวอย่างเทคโนโลยีต่างๆสำหรับการทำ Data Warehouse อาจเห็นดังนี้
- Data Ingestion: Informatica, Talend, Oracle Data Integration Suite, Pentaho Data integration, Apache NiFi, etc.
- Data Warehouse (Data storage & Data analytic): HP Vertica, Oracle Exadata, Teradata, etc.
- Data Analytic (Data science): RapidMiner, Alteryx, Dataiku, etc.
- Data Visualisation: Tableau, Power BI, Qlik, etc.
แต่เมื่อพิจารณาจากหลักการของ Big data จะพบว่า Data Warehouse มีข้อจำกัดหลายอย่างที่ไม่สามารถตอบโจทย์ได้ดังนี้
- Volume เทคโนโลยี Data Warehouse จะเก็บข้อมูลปริมาณเพียงเป็นหลัก GB จนถึงเพียงหลายสิบ TB แต่เมื่อพูดถึง Big Data ปริมาณข้อมูลจะมีเป็น TB จนถึง PB ซึ่งถ้าต้องการ Data Warehouse ที่สามารถเก็บข้อมูลขนาดนี้ได้ ราคาจะแพงมากและอาจไม่สามารถรองรับได้
- Variety เทคโนโลยี Data Warehouse จะออกแบบมาเพื่อรองรับข้อมูลที่มีโครงสร้าง (Structure data) ไม่ได้เน้นข้อมูลหลากหลายชนิด
- Velocity ข้อมูลขนาดใหญ่บางครั้งจะมีข้อมูลที่เข้ามาต่อเนื่องและอาจต้องการวิเคราะห์ข้อมูลที่เพิ่งถูกนำเข้ามา (Streaming data) แบบทันทีทันใดในลักษณะ Near real time ซึ่งเทคโนโลยี Data warehouse ส่วนใหญ่ไม่ได้ออกแบบมาในลักษณะเพื่องานแบบนี้ และเครื่องมือในการวิเคราะห์ส่วนใหญ่ก็จะเป็นภาษา SQL
นอกจากนี้เราก็อาจจะพบว่า เทคโนโลยี Data Warehouse อาจมีจุดอ่อนอีกบางประการถ้าจะนำมาใช้งานกับ Big Data อาทิเช่น
- มีราคาค่อนข้างสูง ถ้าต้องการเก็บข้อมูลจำนวนมาก
- เทคโนโลยีที่ใช้ประมวลผลไม่มีความหลากหลายโดยมากจะใช้ภาษา SQL และหากมาทำงานด้าน Data Science จะค่อยข้างยากสำหรับข้อมูลขนาดใหญ่
- Data Warehouseจะมีทั้ง Storage และ Analytics/Processing อยู่ในระบบเดียวกัน ทำให้การขยายตัวด้านใดด้านหนึ่งลำบาก เพราะต้องทำควบคู่กันไป
ด้วยเหตุผลเหล่านี้ การทำ Big data จึงจำเป็นต้องใช้ Data Lake เข้ามาทำหน้าที่ Data Storage ซึ่งผมจะอธิบายให้เข้าใจในตอนต่อไป
ธนชาติ นุ่มนนท์
IMC Institute