สรุปพื้นฐาน Data Orchestration สำหรับมือใหม่ – คืออะไร? เครื่องมือตัวไหนดี?

data-orchestration-basic-beginner-airflow-dagster

ในโลกยุคปัจจุบันที่มีข้อมูลเกิดขึ้นจำนวนมาก และมีการใช้ข้อมูลจากหลากหลายระบบเชื่อมต่อกัน การจัดการข้อมูลเหล่านี้จึงเป็นเรื่องที่ท้าทายสำหรับธุรกิจ และเป็นเหตุที่ทำให้เกิดเครื่องมือกลุ่มที่เราเรียกว่า “Data Orchestration”

คนที่ศึกษาด้าน Data Engineering จะต้องเคยได้ยินคำว่า “Data Pipeline” กันมาบ้างไม่มากก็น้อย รวมถึงเคยผ่านตาชื่อเครื่องมือที่ใช้ในงาน Data Engineer บ่อย ๆ ใน Job Description อย่าง Apache Airflow แต่อาจจะไม่ค่อยได้ยินคำว่า Data Orchestration หรือ Data Pipeline Orchestration

วันนี้ทีม DataTH จะมาเล่าให้ฟัง ว่า Data Orchestration คืออะไร? ใช้ทำอะไร? แล้วใช้เครื่องมือตัวไหนดี?

Data Orchestration คืออะไร

data-orchestration-band

ก่อนที่จะเรียนรู้ว่า Data Orchestration คืออะไร ต้องเข้าใจก่อนว่า Data Pipeline คืออะไร

ถ้าสรุปแบบสั้น ๆ ในประโยคเดียว: Data Pipeline คือ “การย้ายข้อมูลจาก A ไป B” แปลว่าถ้ายิ่งมีข้อมูลจากหลายแหล่ง (Data Source) ก็จะยิ่งมี Data Pipeline เยอะตามไปด้วย

การทำ Data Orchestration แบบตั้งเวลา (Time-based)

ในช่วงเริ่มต้น บริษัทอาจจะยังไม่ต้องมี Data Pipeline มากนัก เพราะยังไม่มีข้อมูลจากหลายแหล่ง

ตัวอย่างแหล่งข้อมูลที่พบบ่อยในองค์กร เช่น

  • ข้อมูลประสิทธิภาพของโฆษณา: Facebook (Meta) Ads, Google Ads, Youtube Ads
  • ข้อมูลการตลาด / ข้อมูลลูกค้า: Zendesk, Google Analytics, Hubspot

เราอยากให้ Data Pipeline ทำงานได้อัตโนมัติ เพื่อที่จะได้ไม่ต้องมานั่งกดเองทุกวัน ซึ่งวิธีที่มักใช้กัน คือ ตั้งเวลาให้กับ Data Pipeline แต่ละตัว ทำงานวันละครั้ง

การจะตั้งเวลาได้ เรามีเทคโนโลยีเก่าที่เรียกว่า Cronjob ซึ่งสร้างมาตั้งแต่ปี 1975 จนปัจจุบันก็ยังใช้งานกันอยู่ เพราะมีประโยชน์มาก

ตัวอย่าง Data Pipeline ที่ใช้ Cronjob เช่น ดึงข้อมูลจาก Google Ads ทุกเที่ยงคืน สาเหตุที่มักจะดึงข้อมูลกันช่วงดึก เพราะเป็นเวลาที่ไม่มีคนในบริษัททำงาน พอคนในบริษัทตื่นมาก็ได้ข้อมูลใหม่พอดี นอกจากนั้นยังทำให้ได้ข้อมูลของวันที่ผ่านมาครบถ้วนอีกด้วย

ซึ่งถ้าเป็นองค์กรที่แหล่งข้อมูลยังน้อย การดึงข้อมูลจาก A ไป B แบบตั้งเวลาก็เพียงพอแล้ว

การทำ Data Orchestration แบบใช้เครื่องมือมาช่วย

แต่พอองค์กรเริ่มมีแหล่งข้อมูลมากขึ้น และมีการใช้งาน Data ที่ซับซ้อนมากขึ้น เช่น อยากเอาข้อมูลประสิทธิภาพ (Performance) ของการโฆษณาบน Google Ads กับ Youtube Ads มารวมกัน เพื่อวิเคราะห์ต่อไป

การทำ Data Pipeline แบบตั้งเวลาอาจจะไม่เพียงพอ เพราะต้องแบ่งการทำงานเป็นขั้นตอน ดังนี้

data-pipeline-youtube-google-ads
  • Data Pipeline 1: ดึงข้อมูลจาก Google Ads มาเก็บไว้ใน Data Warehouse ของบริษัท
  • Data Pipeline 2: ดึงข้อมูลจาก Youtube Ads มาเก็บไว้ใน Data Warehouse ของบริษัท
  • Data Pipeline 3: นำข้อมูลจาก Google Ads และ Youtube Ads ใน Data Warehouse มารวม (Data Integration) กัน แล้วนำผลลัพธ์มาจัดเก็บเพื่อให้นำไปวิเคราะห์ต่อได้ง่าย

จากรูป จะเห็นว่า Data Pipeline (ขอเรียกว่า DP) 3 ต้องรอ 1 กับ 2 ทำงานเสร็จก่อน (เรียกว่า Dependencies) และถ้า DP 1 เสร็จ แต่ DP 2 ไม่เสร็จ เกิด Error เราก็ทำ DP 3 ต่อไม่ได้ ต้องทำ DP 2 ใหม่ก่อน จะเห็นว่าเคสแบบนี้ การจัดการ Data Pipeline จะมีความซับซ้อนมากขึ้น

ถ้าองค์กรไม่จัดการปัญหาแบบนี้ให้ดี ก็จะเกิดปัญหาว่า Data Pipeline 2 เกิด Error แล้วไม่มีคนแก้ ทำให้ Data ไม่อัปเดต และคนใช้ข้อมูลที่เป็นฝั่งธุรกิจ (เช่น Sales, Marketing) ก็จะงงว่าข้อมูลอัปเดตมั้ย ทำไมไม่สามารถนำข้อมูลมาวิเคราะห์ มาช่วยตัดสินใจได้ หรือถ้าแย่กว่านั้น ฝั่งธุรกิจอาจตัดสินใจผิด ธุรกิจไม่ก้าวหน้า

หรือแย่ไปกว่านั้นอีก อาจจะมีการโวยวายจากฝั่งธุรกิจ ฟ้องเจ้าของบริษัทว่าทำไมทีม Data ไม่ทำงาน อาจจะโดนไล่ออก Layoff ทั้งทีมกันได้เลย

การทำ Data Orchestration จึงถือเป็นปัญหาสำคัญ โดยเฉพาะกับองค์กรที่ใหญ่ขึ้นเรื่อย ๆ เจอปัญหาเดียวกัน จึงเกิดเป็น เครื่องมือสำหรับทำ Data Orchestration

เครื่องมือ Data Orchestration มีประโยชน์อย่างไรบ้าง

apache-airflow-data-orchestration
เครื่องมือ Data Orchestration ช่วยให้เห็นการทำงานของแต่ละขั้นตอนของ Data Pipeline ช่วยให้แก้ปัญหาได้ง่ายขึ้น – รูปจาก เว็บไซต์ Apache Airflow

เครื่องมือสำหรับทำ Data Orchestration ช่วยให้เราสามารถจัดการ Data Pipeline ได้ดีมากขึ้นในหลากหลายด้าน:

1) ตั้งเงื่อนไขในการทำงานของ Data Pipeline ได้หลายแบบ

นอกจากการตั้งเวลา (Cronjob) แบบเมื่อก่อน เช่น ทำงานทุกเที่ยงคืน เราจะมีอิสระมากขึ้นที่จะตั้งให้ Data Pipeline ทำงานด้วยเงื่อนไขแบบอื่น ๆ ได้

เงื่อนไขของ Data Pipeline ที่เรามักจะพบบ่อย ๆ (นอกจากแบบ Time-based) เช่น

  • Event-based: ทำงานหลังจากเหตุการณ์บางอย่างเกิดขึ้น เช่น พอมีการอัปโหลดไฟล์ใหม่ใน Data Lake, DP ก็จะเริ่มทำงาน
  • API-based: ทำงานหลังจากมี API ส่งข้อมูลเข้ามา เช่น หลังจากระบบภายนอกทำงานเสร็จ มีการส่งข้อมูลผ่าน API ให้ Data Pipeline นี้ทำงาน
  • Manual: ทำงานแบบไม่อัตโนมัติ ต้องมีคนมาคอยสั่งให้ทำงานแต่ละครั้ง

2) ดู Failure Log (สาเหตุที่พัง) ของ Data Pipeline ได้ง่าย

ในการทำงานกับหลายระบบ อาจจะมี Failure Log เก็บไว้ในหลายที่ แต่พอมีเครื่องมือสำหรับทำ Data Orchestration ก็จะรวบรวม Failure Log จากหลายที่ไว้ในที่เดียว ทำให้เราดูได้สะดวก และสามารถเทียบ Log ปัจจุบัน กับ Log ในอดีตได้ง่าย

3) แยกส่วนการจัดการ Data Pipeline กับการทำงาน (Compute) ชัดเจน (Decoupled)

ในการตั้งเวลา เรามักจะตั้งเวลาในคอมพิวเตอร์ (เรียกว่า Server) ที่เราต้องการให้ทำงานด้วยเลย แต่พอมีเครื่องมือด้าน Data Orchestration เข้ามา เราก็สามารถตั้งเงื่อนไขการทำงานที่ตัวเครื่องมือ ซึ่งอยู่บน Server คนละเครื่องกับคอมพิวเตอร์ที่ทำงานได้เลย

ข้อดีของการแยกกันแบบนี้ ทำให้ถ้าในอนาคตธุรกิจเติบโต มี Data Pipeline เยอะจน Server เก่าตั้งเงื่อนไขไม่ไหว เราก็สามารถเปลี่ยนคอมพิวเตอร์ที่ติดตั้งเครื่องมือ Data Orchestration ได้

หรือถ้าข้อมูลเยอะขึ้น เราต้องการคอมพิวเตอร์ที่แรงขึ้นสำหรับทำงาน ก็เปลี่ยนได้โดยไม่กระทบกับคอมพิวเตอร์ที่ติดตั้งเครื่องมือ Data Orchestration

เราเรียกข้อดีนี้ว่าเป็นเทคโนโลยีที่ Scalable

ตัวอย่างเครื่องมือ Data Orchestration ยอดฮิต มีตัวไหนให้เราใช้งานบ้าง

ในยุคแรก ๆ หลายบริษัทที่ข้อมูลเยอะจนเจอปัญหาเรื่องการจัดการ Data Pipeline ก็มักจะสร้างเครื่องมือของตัวเองขึ้นมา เพราะไม่มีเครื่องมือในตลาด ทำให้มีเครื่องมือหลายตัวที่เกิดมาแล้วเงียบไป

แต่ในปัจจุบัน มีเครื่องมือด้าน Data Orchestration ที่คนใช้ทั่วโลก แถมได้รับการอัปเดตบ่อย ออกมาให้เลือกใช้ ทำให้องค์กรที่เจอปัญหาการจัดการ Data Pipeline ไม่ต้องปวดหัวมาสร้างเองแล้ว

วันนี้เราจะเลือกมาแนะนำเครื่องมือ Data Orchestration 2 ตัวที่ใช้ในงานกันบ่อย ๆ และได้รับความนิยมอย่างแพร่หลาย มีคนใช้เยอะ

1) Apache Airflow เครื่องมืออันดับ 1 ด้าน Data Orchestration

apache-airflow-tool-interface
หน้าตา Apache Airflow ถูกพัฒนาให้ดีขึ้นเยอะมาก สมกับมงกุฏเครื่องมืออันดับ 1 (รูปจากเว็บไซต์ Apache Airflow)

Apache Airflow (หรือ Airflow) เป็นเครื่องมือฟรี ที่อยู่ยงคงกระพันมาตั้งแต่ปี 2014 โดยทีม Airbnb (ปัจจุบัน ทีมพัฒนาแยกตัวออกมาแล้ว) และได้รับความนิยมมากในปัจจุบัน มีผู้ใช้จากทั่วโลก เรียกได้ว่าเป็นอันดับ 1 ของเครื่องมือ Data Orchestration ในปัจจุบันเลยก็ว่าได้

จุดเด่นที่ทำให้ Airflow ดังขึ้นมาเลย คือ เป็นเครื่องมือแรก ๆ ที่ออกมาแล้วทำให้สร้าง Data Pipeline ด้วยภาษา Python ได้ ทำให้ผู้ใช้สามารถเขียนการทำงานบน Data Pipeline ได้แบบสะดวกมาก ๆ

นอกจากนั้น ด้วยความที่ได้รับความนิยมมาก ก็มีบริษัทอื่น ๆ ทำบริการจัดการ Server Airflow ให้ทั้งหมดออกมาให้ใช้กัน (แบบเสียเงินนะ) ซึ่งดีกับบริษัทที่ไม่ต้องการดาวน์โหลดไปติดตั้งเอง เช่น Astronomer, Google Cloud Composer, AWS Managed Workflows for Apache Airflow

สำหรับคนที่ต้องการนำไปติดตั้งเอง (ฟรี) สามารถดูข้อมูลได้จากเว็บไซต์ของ Airflow ได้เลย

เข้าดูข้อมูลเว็บไซต์ Apache Airflow

2) Dagster เครื่องมือจัดการ Data Pipeline สายเลือดใหม่

dagster-tool-interface
หน้าตา Dagster แบบโปรเจคที่มี Data Pipeline จำนวนมาก แบ่งกลุ่มชัดเจน สวยงาม เข้าใจง่าย (รูปจากเว็บไซต์ Dagster)

Dagster เป็นเครื่องมือด้าน Data Orchestration ที่ได้รับความนิยมมากขึ้นเรื่อย ๆ และทีมงานก็ขยันอัปเดตมาก เพิ่งเปิดตัวมาในปี 2019 โดยอดีตพนักงาน Facebook ที่สร้าง GraphQL

ข้อดีข้อหนึ่งของ Dagster คือ มีหน้าตาที่สวยงาม ใช้งานได้ง่าย (ดูจากรูปด้านบน)

และยังมีฟีเจอร์เป็น Data Catalog ที่รวบรวมแหล่งข้อมูลในบริษัททั้งหมด เพื่อให้ค้นหาได้ง่าย รวมถึงดูที่มาที่ไป (Data Lineage) ได้อีกด้วย ทำให้ Data Engineer ได้ใช้จัดการ Data Pipeline และฝั่งธุรกิจก็สามารถใช้ดูรายละเอียดข้อมูลได้สะดวก

นอกจากนั้น ตัว Dagster ยังสามารถเชื่อมต่อกับเครื่องมือสาย Data จำนวนมาก รวมถึงเครื่องมือสาย Data ยุคใหม่ด้วย (Modern Data Stack) เช่น dbt, Snowflake, Fivetran

สำหรับองค์กรใหม่ที่ใช้เครื่องมือในกลุ่ม Modern Data Stack เยอะ การใช้ Dagster เข้ามาจัดการ Data Orchestration จึงเป็นตัวเลือกที่น่าสนใจไม่แพ้ Airflow เลย

ดูข้อมูลเว็บไซต์ Dagster

สรุปเรื่อง Data Orchestration ใช้ตอนไหน ใช้อะไรดี

airflow-vs-dagster-data-orchestration

จากในบทความนี้ จะเห็นว่า Data Orchestration มีประโยชน์มากกับองค์กรที่ใหญ่ขึ้นเรื่อย ๆ เพราะฉะนั้นหากช่วงที่ธุรกิจเพิ่งเริ่มต้น อาจจะไม่จำเป็นต้องใช้

แต่ถ้าเรารู้ว่าในอนาคตจะมีโอกาสที่ Data Pipeline จะเยอะมากเกินกว่าที่เราจัดการด้วยวิธีเดิม (Cronjob) ไหว การดูเครื่องมือ Data Orchestration ไว้ก็เป็นสิ่งที่ควรทำตั้งแต่เนิ่น ๆ

ในส่วนของเครื่องมือ Data Orchestration ในปัจจุบันมีให้เลือกใช้เยอะ ซึ่งขอสรุปแนวทางในการเลือกไว้

  • ถ้าเลือกไม่ได้ สามารถดู Apache Airflow ไว้เป็นตัวเลือกแรก ๆ ก่อนได้ เพราะเป็นเครื่องมือที่ได้รับความนิยมสูง ตามหาความช่วยเหลือได้ง่าย
  • ถ้ามีการใช้ Modern Data Stack เยอะ ลองดู Dagster ว่ามีการเชื่อมต่อกับสิ่งที่เราต้องการครบมั้ย
  • ถ้ามีการใช้ Container (เช่น Docker) เยอะ ลองดู Argo ซึ่งเป็นตัวจัดการ Orchestration ที่ได้รับความนิยมในงานสาย Software Development

หากกำลังเลือกระหว่างตัวไหนอยู่ หรือชอบ / ไม่ชอบเครื่องมือตัวไหนเป็นพิเศษ มาคอมเมนต์บอกกันหน่อยครับ จะได้เป็นประโยชน์กับคนอื่น ๆ ที่เปิดมาอ่านบทความนี้ด้วย ไปด้วยกัน ไปได้ไกลครับ 😁

ถ้าชอบเนื้อหาแนวนี้ อยากติดตามบทความดี ๆ ด้าน Data หรือจะเป็นวีดิโอสนุก ๆ ดูชิล ๆ แถมได้ความรู้ติดตามกันได้ที่ Facebook Page: DataTH และ Youtube Channel: Data Science ชิลชิล ได้เลยคร้าบ

บทความอื่น ๆ ที่เกี่ยวข้อง

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save