Open Architecture for Big Data Management

Softnix
Softnix
Published in
3 min readDec 7, 2017

จากความรู้ที่ได้จากการเข้าร่วมอบรมและสัมนาในวันแรกของงาน Big Data ที่ใหญ่ที่สุดอีกงานหนึ่งของเอเชีย ซึ่งมีผุ้เชี่ยวชาญระดับโลกมาบรรยายจากหลากหลายประเทศ การจัดการ Big Data Management และ Infrastucture for Big Data มีความสำคัญต่อการสร้างระบบ Data Analytics อย่างมาก โดยส่วนใหญ่ Software ที่ใช้มักจะเป็น Open Source เป็นส่วนใหญ่ในการจัดการข้อมูล เรียกได้ว่า Open Source Driven Big Data Platform กันเลยทีเดียว โดยผมจะขอสรุปในมุมต่างๆ ที่พอจะพยายามรวบรวมความรู้รวมทั้งเครื่องมือที่ใช้กัน ในแต่ละเรื่องดังต่อไปนี้

Analytics Model

Analytics Model หรือการทำ Machine Learning Model คือ Feature ที่ถูกสร้างเพื่อตอบสนองความต้องการธุรกิจเพื่อมุ่งเน้นแก้ปัญหาของ Users ข้อมูลสำหรับ Analytics Model ไม่จำเป็นต้องมากหรือเป็น Big Data, Big Volume แต่จะต้องใส่ใจในเรื่องของกระบวนการ Data Preparation หรือ Data Cleansing มาอย่างดีแล้ว คงเหลือข้อมูลบางส่วนที่เฉพาะเหมาะสมต่อการใช้ใน Model

Credit Images http://phdp.github.io/posts/2013-07-05-dtl.html

Data Repository

Credit Image https://www.visualstudio.com/learn/set-up-a-git-repository/

จะถูกกำหนดขึ้นตามลักษณะการใช้งาน โดยส่วนใหญ่จะแบ่งออกเป็น 2 ส่วนคือ ส่วนของ Online Data Repository ซึ่งส่วนนี้จะใช้รองรับ Application โดยเฉพาะ และต้องตอบสนอง Application ได้อย่างรวดเร็ว Data Repository ถูกแบ่งตามหน้าที่การใช้งานดังต่อไปนี้

  • Online Data Repository จะเน้นรองรับข้อมูลได้ไม่มากนัก เพราะเน้นในเรื่องความเร็วเป็นหลักหรือ Serve Application ตัวอย่าง Online Data Repository ที่มีประสิทธิภาพสูง เช่น Google Big Query เป็นต้น
  • Offline Data Repository ในส่วนนี้รองรับปริมาณข้อมูลจำนวนมาก และเน้นจัดเก็บเป็นระยะเวลานาน โดยส่วนนี้จะจัดเก็บ Raw Data เพื่อให้ Data Science ใช้ในการวิเคราะห์ สร้าง Features ใหม่ๆให้ Products ในส่วนนี้นิยมจัดเก็บในลักษณะ Big Data Lake จัดเก็บบน HDFS โดยใช้วิเคราะห์ในภายหลังที่ต้องการได้ตามที่ Data Science ต้องการ

Data Governance

Credit image https://blogs.informatica.com/2014/01/02/data-governance-define-processes-capture-business-policies-rules-and-standards/#fbid=oJvmLWytFP5

ในส่วนนี้มีความสำคัญมาก ทั้งในด้านการจัดการบริหารตามนโยบายความปลอดภัยที่กำหนดไว้ การติดตาม Monitor การกำหนดสิทธิ์ว่าใครทำอะไรได้ในระดับไหนที่จะเข้าถึงข้อมูลต่างๆ มี Audit log ตรวจสอบได้ในภายหลัง การเพิ่ม Feature จะต้องผ่านการ Approve ในส่วนนี้เพื่อนำ Features ขึ้น Production อาจจะต้องทำได้แบบ Manual หรือมี Data Governance Manager เป็นผู้ควบคุมหรือระบบอัตโนมัติที่เรียกว่า Workflow Based เป็นต้น

Data Ingestion และ Data Preparation

การนำ Data เข้าและการทำ Data Prep นั้นสำคัญอย่างมาก ใน Big Data Platform เครื่องมือที่นิยมเป็นส่วนใหญ่เช่น NiFi (https://nifi.apache.org) และ Talend ซึ่งเป็น Open Source ที่เป็นที่ยอมรับสูง

Apache NiFi GUI

ระบบงานในส่วนนี้การเลือกใช้เครื่องมือที่ถูกต้องก็ถือว่าสำคัญมาก เพราะงาน Data Engineering ถือว่ากินเวลาโดยรวมมากกว่า 40%–60% ของการจัดการทั้งระบบ การเลือกเครื่องมือที่เหมาะสมจะลดระยะเวลาในส่วนนี้ลงได้ และเมื่อมีการเปลี่ยนแปลง Requirement เราสามารถปรับปรุงข้อมูลของเราได้ง่าย บางเครื่องมือไม่จำเป็นต้องเขียน Code เลยก็มี เช่น Talend เป็นต้น

Talend Big Data Integration

Interactive Data

Druid + Imply UI

การสร้าง Interactive Data ต้องการ Database Engine ที่มีความเร็วสูง โดยรองรับ In Memory เป็นส่วนใหญ่ และหากงานที่ออกแบบต้องใช้ Business Intelligence หรือ BI จะต้องรองรับ OLAP (Online Analytical Processing) ตัวอย่างเช่น Druid (http://www.druid.io) เป็น In Memory OLAP Database ที่เป็นที่ยอมรับ ส่วนอีกตัวที่แนะนำคือ AtScale (http://atscale.com) ซึ่งเป็น Commercial OLAP DB ที่ดีอีกตัว

Credit Image http://atscale.com/product

Data Visualization

หากเรา Design งานเราโดยใช้ OLAP DB Open Source ที่ใช้ทำ Data Visualization ที่เป็นที่ยอมรับ เช่น Cubesviewer http://www.cubesviewer.com

อีก Open Source ตัวหนึ่งที่รองรับ Druid คือ Imply (https://imply.io)

Imply UI

Data Sciences Environment

ในบางครั้ง Data Science ต้องวิเคราะห์ข้อมูลสร้าง Feature ใหม่ๆให้ Application ดังนั้นจะต้องมีสภาพแวดล้อมให้ Data Science ทำงานบน Data Reposiroty ส่วนใหญ่ใช้ Jupyter Notebook (http://jupyter.org) ถือเป็นตัวเลือกแรกๆที่ใช้ Implement ในการทำงานนี้ และใช้ใน Big Data Platform เกือบทุกราย เพราะความสามารถที่เรียกว่า Powerful มากๆ รองรับภาษาโปรแกรมมิ่งอย่างเช่น R/Python

เมื่อ Data Science ใช้ Jupyter Notebook สร้างข้อมูลได้ตามที่ต้องการ จะเรียกว่า Data Products จะสร้างเป็น API Access เพื่อให้ Third Party ก็ทำได้ หรือ Write Output ลง HDFS เพื่อเข้ากระบวนการนำไปใช้งานผ่าน Data Visualization Tools ต่อไป

อีกเครื่องมือหนึ่งที่เป็นที่ยอมรับคือ Apache Zeppelin (https://zeppelin.apache.org) ขึ้นอยู่กับความถนัดของแต่ละคน

Apache Zeppelin

สุดท้ายนี้ หากมีเวลา ผมจะเขียนความรู้ในแต่ละเรื่องลงรายละเอียดให้ทุกคนที่สนใจอีกครั้ง ถ้าใครสนใจความรู้ในด้าน Big Data Analytic และ Big Data Engineering สามารถ Follow Medium เราได้ครับ และฝาก Follow Page Softnix ด้วยครับ http://www.facebook.com/softnixtech

--

--