Apache Airflow คือ 1 ใน Workflow Management ที่ได้รับความนิยม และองค์กรชั้นนำระดับโลกหลายๆ องค์กรเลือกใช้ โดยเฉพาะอย่างยิ่งในการสร้าง Data Pipelines เพื่อจัดการกับข้อมูลจำนวนมหาศาล

what-is-apache-airflow

ส่วนหนึ่งเพราะองค์กรต่าง ๆ ในปัจจุบัน ต่างพยายามเปลี่ยนแปลงให้องค์กรขับเคลื่อนด้วยข้อมูลจำนวนมหาศาล (Data-Driven) แต่กว่า 73% ของข้อมูลในองค์กรไม่ได้ถูกวิเคราะห์เลย ซึ่งเหตุผลหลักๆ ก็คือข้อมูลไม่ได้ถูกจัดการให้เป็นระเบียบนั่นเอง นอกจากนั้นองค์กรเป็นจำนวนมากก็ยังเก็บข้อมูลที่ไร้ประโยชน์ ไม่ว่าจะเป็น Web Log, อีเมลเก่า ๆ, หรือข้อมูลลูกค้าที่ Out of date และเก็บมาแล้วไม่ได้ใช้ไว้จำนวนมาก ในขณะที่ข้อมูลเพิ่มขึ้นเรื่อย ๆ หลาย ๆ อย่างก็เริ่มเข้ามาเป็นข้อจำกัด เช่น กฎหมาย PDPA เป็นต้น ทำให้การจัดการข้อมูลเข้ามามีบทบาทสำคัญมากในองค์กรยุคปัจจุบัน

Apache Airflow คืออะไร?

Airflow คือ เครื่องมือหนึ่งในการสร้าง Data Pipeline โดยเป็น Open Source Platform ตัวหนึ่งที่ผู้ใช้สามารถเขียนโปรแกรมที่จะมาควบคุมการไหลของ Workflow และสามารถคอนเฝ้าดูการไหลได้ ซึ่งถูกพัฒนาโดย Airbnb และเริ่มใช้งานมาตั้งแต่ปี 2015 ซึ่งนอกจากสร้าง Data Pipelines ได้แล้วมันยังสามารถนำไปสร้าง หรือพัฒนา ETL (Extract-Transform-Load), Machine Learning และ Predictive ได้อีกด้วย

โดย Airflow เข้ามาช่วยจัดการ Task ต่างๆ อีกทั้งยังรองรับแบบ Hybrid & Multi-Cloud โดยเกิดขึ้นมาจาก Data Pipeline ที่มีจำนวนมากซึ่งทำให้ควบคุมได้ยาก โดย Airflow มีการเขียน Workflow เป็น DAG (Directed Acyclic Graph) กราฟที่มีหัวลูกศรทิศทางเดียว โดยไม่สามารถวนกลับมาที่จุดเดิมได้ ซึ่ง DAG ประกอบไปด้วยหลายๆ Task ที่เชื่อมต่อกันและในแต่ละ Task นั้นก็มีความสามารถที่แตกต่างกัน

airflow-user-interface

และด้วยความที่เป็น Open Source Platform ทำให้มีหลายบริษัททั่วโลกเลือกใช้ในการจัดการ Data Pipelines ของพวกเขาไม่ว่าจะเป็น HBO, Spotify, Lyft, Google หรือแม้แต่ Stripe

หลักการของ Apache Airflow (Airflow Principles)

airflow-principles

  1. Scalable
    สามารถสเกล Airflow ให้สามารถรับมือกับข้อมูลจำนวนมหาศาลได้
  2. Dynamic
    เราสามารถเขียนโค้ดเพื่อ Generate Pipeline หรือ Workflow ขึ้นมาได้
  3. Extensible
    อนุญาตให้เราเขียน Operators ใหม่ๆ ขึ้นมาได้จาก Core Operators เดิมเพื่อให้ตอบโจทย์กับการทำงานในแต่ละองค์กรได้
  4. Elegant
    เราสามารถส่งค่า หรือข้อมูลอะไรบางอย่างเข้าไปใน Pipeline ได้แม้ว่าตัว Data Pipelines ของเรากำลังทำงานอยู่

ทำไมต้องใช้ Apache Airflow

Apache Airflow is highly extensible and its plugin interface can be used to meet a variety of use cases. It supports variety of deployment models and has a very active community to scale innovation.

– Adobe –

  1. User Interface
    โดยตัวระบบมีหน้าตาการใช้งานที่ค่อนข้างทันสมัย และมีความเป็น User Friendly สูงทำให้เข้าใจส่วนต่างๆ ได้ง่าย
  2. Python
    เราสามารถเขียนด้วยภาษาด้วยภาษา Python เพื่อกำหนดงานต่างๆ ใน Data Pipelines ได้ ทำให้ง่ายต่อการเริ่มต้นเรียนรู้ และใช้งาน
  3. General purpose
    เราสามารถใช้สร้าง Data Pipelines แบบไหนก็ได้ หรือเอาไปใช้เพื่อทำ Automate อื่นๆ ได้โดยไม่ต้องทำเพียงแค่ Data Pipeline อย่างเดียว
  4. Easy to add new functionality
    ง่ายต่อการเพิ่มฟังก์ชั่นใหม่ๆ เนื่องจากถูกพัฒนามาเพื่อให้ผู้ใช้สามารถพัฒนาต่อยอดได้ง่ายจากความสามารถเดิม
  5. Easy to monitor
    สามารถติดตามผลการทำงานของ Workflow ใน State ต่างๆ ได้ง่ายผ่านหน้าตาของ UI ที่มีได้เลย
  6. Scale
    ระบบถูกออกแบบมาให้ขยายขอบเขตการทำงานได้ง่ายเพื่อการ Scale ในอนาคต

และอีกสิ่งหนึ่งที่ทำให้ Airflow ได้เปรียบกว่า Workflow Management อื่นๆ นั่นก็คือการที่มี Community ของผู้ใช้งานที่ใหญ่เป็นอย่างมาก โดยใน Github มีการมีส่วนร่วมเป็นอย่างมาก และต่อเนื่อง ซึ่งการมี Community ขนาดใหญ่แบบนี้จะช่วยให้เวลาที่ผู้ใช้ติดปัญหาการใช้งาน จะมีผู้ช่วยสนับสนุนมากกว่าเจ้าอื่นๆ นั่นเอง

ใครบ้างที่ใช้ Apache Airflow

Airbnb

Airbnb ได้มีการพัฒนา Experimentation Platform เพื่อทำการทดสอบฟีเจอร์ต่างๆ รวมไปถึงสำรวจดูความรู้สึก และประสบการณ์ในการใช้งานของผู้ใช้ เพื่อพัฒนาทั้งหน้าตาของเว็บไซต์ รวมไปถึงแอปพลิเคชัน และการพัฒนาระบบอัลกอริทึ่มต่างๆ เพื่อให้ผู้ใช้สามารถพบกับที่พักที่ต้องการมากที่สุด ผ่านการทำ A/B Testing ต่างๆ

โดยมี Airflow เป็นตัวที่รันอยู่เบื้องหลัง เช่นเวลาการทำ A/B Testing นั้นจะมีการเก็บ Metric ก็จะมีการใช้ Airflow เพื่อช่วยในการปั่นข้อมูลออกมาเป็นรายงานต่างๆ ให้ผู้ใช้งานนำไปวิเคราะห์ต่อ และด้วยความสามารถ Scalable ของ Airflow ทำให้การทดลองต่างๆ จากจำนวนหลักสิบ เพิ่มขึ้นมาเป็นหลายพันได้ในเวลาไม่นาน พร้อมกับสามารถรับมือกับ Metric ต่างๆ ที่ใช้ในการทดลองได้กว่า 50,000 ค่ารวมกัน

Adobe

Adobe Experience Platform เป็นรากฐานของผลิตภัณฑ์ Experience Cloud ซึ่งเป็นระบบเปิดที่แปลงข้อมูลทั้งหมดของคุณ (ทั้งที่อยู่ใน Adobe และไม่ได้อยู่ใน Adobe) ไปเป็นโปรไฟล์ลูกค้าที่แข็งแกร่งที่อัปเดตแบบเรียลไทม์ และใช้ข้อมูลเชิงลึกที่ขับเคลื่อนด้วย AI เพื่อช่วยคุณส่งมอบประสบการณ์ที่ใช่ไปยังทุกช่องทาง

แผนผังภาพรวม AEP

Image form Adobe

แน่นอนว่า Airflow มีส่วนในการช่วยรวมรวมข้อมูลจากแหล่งต่างๆ โดยข้อมูลจะถูกนำเข้าตามแพลตฟอร์ม ปรับให้เป็นมาตรฐานสำหรับระบบอัจฉริยะและการสร้างโปรไฟล์ จากนั้นเปิดใช้งานเข้าไปในระบบใดๆ รวมถึง Experience Cloud ในแบบเรียลไทม์ ทำให้ทีมข้อมูลสามารถใช้ภาษา SQL ง่ายๆ ในการดึงข้อมูลออกมาวิเคราะห์ข้อมูลเชิงลึก หรือสร้าง Dataset ที่จำเป็นในการสร้างโมเดล Machine Learning เพื่อวิเคราะห์ข้อมูล CRM ในอนาคต

Google

ทำไมจะต้องสร้าง Workflow Management อันใหม่ ในเมื่ออันเดิมมีดีอยู่แล้ว กลยุทธ์เดียวกันนี้ถูกใช้มาก่อนกับโครงการต่างๆ ของ Google ไม่ว่าจะเป็น Apache Beam และ Dataflow หรือ Kuberbnetes และ GKE ตัว Airflow ก็เช่นกัน โดย Google เลือกที่จะเอามาใช้ใน Google Clound Composer โดยเพิ่มข้อดีบางอย่างเข้ามาเพิ่มไม่ว่าจะเป็น

  1. ความเรียบง่าย เพียงคลิกเดียวก็สามารถสร้าง Airflow Environment ขึ้นมาได้ และยังสามารถใช้ร่วมกับ Google Clound Service อื่นๆ
  2. ความปลอดภัย ด้วยระบบ Identity access management (IAM) ในการตั้งค่าสิทธิ์ นโยบาย และการเก็บข้อมูลประจำตัว
  3. ความสามารถในการปรับขนาด ปรับขนาดได้อย่างง่ายดายบนโครงสร้างพื้นฐานของ Google Cloud
  4. การตรวจสอบ ระบบมีการบันทึกที่สามารถตรวจสอบได้ผสานรวมกับ Stackdriver

และด้วยความสามารถทั้งหมดของ Airflow จึงทำให้การจัดการข้อมูลจำนวนมหาศาล (Big Data) นั้นง่ายขึ้นมากกว่าที่เคย ทำให้การทำงานของ Data Analyst และ Data Scientist ในการดึงข้อมูลไปใช้วิเคราะห์นั้นสะดวก และรวดเร็วมากยิ่งขึ้น เพราะช่วยลดขั้นตอนในการรวมข้อมูล และทำความสะอาดข้อมูลเข้าด้วยกัน ผ่านการใช้ Automation ของ Airflow แทน

ถ้าคุณคือคนที่สนใจในการสร้าง Data Pipelines พบกับคอร์สออนไลน์แรกของประเทศไทยที่สอนให้คุณสร้าง End-to-end Data Pipelines ด้วย Apache Airflow ได้แล้ววันนี้ แบบ Step by Step พร้อมรวมทุกเรื่องสำคัญ และทักษะที่จำเป็นเพื่อนำความรู้ไปต่อยอดกับงานของคุณได้เอง สอนโดย ดร.กานต์ อุ่ยวิรัช Data Craftsman และ Technical Consultant ที่ ODDS

data-pipelines-with-airflow

(ดูรายละเอียดคอร์สออนไลน์ หรือสมัครเรียนได้ที่นี่)

    More in:Data

    Comments are closed.