# Dagster คืออะไร? คู่มือ Data Orchestration Framework สำหรับ SME ไทย 2026
ในยุคที่ข้อมูลคือสินทรัพย์สำคัญที่สุดของธุรกิจ ทีมวิศวกรข้อมูล (Data Engineer) ของ SME ไทยต้องเผชิญกับโจทย์ที่ยากขึ้นทุกวัน ไม่ว่าจะเป็นการรวมข้อมูลจาก CRM, ERP, Google Analytics, Shopee และ Lazada เข้า Data Warehouse หรือการสร้าง Dashboard ให้ผู้บริหารทุกเช้าเวลา 8:00 น. หากคุณเคยเขียน Cron job หรือ Airflow DAG แล้วรู้สึกว่า "ทำไมถึงพังบ่อย" "Debug ยากจัง" หรือ "ตามรอยข้อมูลไม่ได้" บทความนี้จะช่วยให้คุณรู้จัก Dagster ซึ่งเป็น Data Orchestration Framework ยุคใหม่ที่กำลังกลายเป็นทางเลือกแรกของทีม Data ที่จริงจังเรื่อง Data Reliability
Dagster แตกต่างจาก Airflow ตรงที่มอง Data Pipeline เป็น "Asset Graph" ไม่ใช่แค่ "Task Graph" นั่นหมายความว่าคุณจะโฟกัสที่ "ผลลัพธ์ข้อมูล" ที่ต้องการ เช่น Table `customer_ltv` หรือ Dashboard `weekly_sales` มากกว่าจะสนใจว่าต้องรัน Step ไหนก่อนหลัง แนวคิดนี้ทำให้การทดสอบ Debug และวิเคราะห์ Dependency ง่ายขึ้นอย่างมาก เหมาะกับ SME ที่มีทีม Data ขนาดเล็กแต่ต้องดูแลระบบข้อมูลที่ซับซ้อน
ในบทความนี้คุณจะได้เรียนรู้ว่า Dagster คืออะไร จุดแข็งที่เหนือกว่า Airflow และ Prefect วิธีเริ่มต้นใช้งานทีละขั้นตอน พร้อมตัวอย่างโค้ดที่นำไปปรับใช้กับธุรกิจไทยได้ทันที
Dagster คืออะไร และทำไมถึงน่าสนใจสำหรับ SME ไทย
Dagster คือ Open-Source Data Orchestration Framework ที่พัฒนาด้วยภาษา Python เปิดตัวในปี 2018 โดย Nick Schrock อดีตวิศวกรของ Facebook ผู้สร้าง GraphQL วัตถุประสงค์หลักคือแก้ปัญหาที่ทีม Data ทั่วโลกต้องเจอ คือ Pipeline พังโดยไม่มีใครรู้ การ Rerun ซ้ำยากลำบาก และการตามรอยว่าข้อมูลในตารางมาจากไหนแทบเป็นไปไม่ได้
แก่นของ Dagster คือแนวคิด Software-Defined Assets (SDAs) ซึ่งให้คุณประกาศ "ข้อมูลที่ Pipeline นี้ผลิต" อย่างชัดเจน แทนที่จะเขียน Task ที่บอกว่า "ทำอะไร" Dagster จะรู้ Dependency ระหว่าง Asset โดยอัตโนมัติ สามารถ Visualize เป็นกราฟ Lineage ได้ครบถ้วน และ Rerun เฉพาะส่วนที่ข้อมูลเปลี่ยนแปลงได้โดยไม่ต้องรันทั้ง Pipeline
ความสามารถหลักของ Dagster
| ความสามารถ | ประโยชน์สำหรับ SME |
|-----------|------------------|
| Asset Graph | มองเห็น Lineage ข้อมูลทั้งระบบในหน้าเดียว |
| Declarative Scheduling | Refresh Asset อัตโนมัติเมื่อข้อมูลต้นทางเปลี่ยน |
| Rich Metadata | บันทึก Row Count, Schema, Quality Check ทุกรัน |
| Typed I/O | จับ Bug ตั้งแต่ตอน Build ไม่ต้องรอจน Pipeline Fail |
| Built-in Testing | เขียน Unit Test ได้เหมือนโค้ด Python ทั่วไป |
| Dagit UI | Web UI สวยงาม เห็นทุก Pipeline ในหน้าเดียว |
Dagster vs Airflow vs Prefect เปรียบเทียบอย่างตรงไปตรงมา
หลายทีม Data ในไทยใช้ Airflow มานาน แต่เมื่อระบบใหญ่ขึ้นจะเริ่มรู้สึกว่า Airflow ไม่เหมาะกับงาน Modern Data Stack ส่วน Prefect เป็นคู่แข่งที่ใกล้เคียง Dagster มากที่สุด มาดูความต่างกันแบบเข้าใจง่าย
| หัวข้อ | Dagster | Airflow | Prefect |
|-------|---------|---------|---------|
| Paradigm | Asset-based | Task-based | Task-based |
| Local Dev UX | ยอดเยี่ยม รันใน 30 วิ | ต้องตั้ง Webserver + DB | ดี |
| Data Lineage | Built-in ทั้งระบบ | ต้องใช้ OpenLineage เสริม | Flow-level เท่านั้น |
| Testing | Pytest ตรงๆ | ยาก ต้อง Mock เยอะ | ปานกลาง |
| Scheduling | Declarative + Sensor | Cron เท่านั้น | Cron + Event |
| UI | Dagit สวยและใช้ง่าย | Web UI พื้นฐาน | Cloud UI สวย |
| Cost (Self-host) | Free | Free | Free |
| Cloud Option | Dagster+ (จาก $10/user) | Astronomer | Prefect Cloud |
สรุปโดยย่อ ถ้าคุณเริ่มโปรเจคใหม่ในปี 2026 Dagster คือตัวเลือกที่ดีที่สุด สำหรับทีมที่เน้น Data Quality และ Developer Experience ส่วน Airflow เหมาะกับทีมที่มีระบบ Legacy อยู่แล้วและต้องการ Integration กว้าง
เริ่มต้นใช้งาน Dagster ภายใน 15 นาที
สำหรับ PM หรือ Data Engineer ที่อยากทดลองก่อนตัดสินใจ ลองทำตามขั้นตอนนี้ได้เลย
ขั้นที่ 1 ติดตั้ง Dagster
```bash
# สร้าง Virtual Environment ด้วย uv (เร็วกว่า pip 10 เท่า)
uv venv --python 3.12
source .venv/bin/activate
# ติดตั้ง Dagster พร้อม Webserver
uv pip install dagster dagster-webserver dagster-pandas
```
ขั้นที่ 2 สร้าง Asset แรก
สร้างไฟล์ `assets.py`
```python
import pandas as pd
from dagster import asset, AssetExecutionContext
@asset
def raw_orders(context: AssetExecutionContext) -> pd.DataFrame:
"""ดึงข้อมูลออเดอร์จาก API หรือ Database"""
df = pd.read_csv("https://example.com/orders.csv")
context.add_output_metadata({"row_count": len(df)})
return df
@asset
def monthly_revenue(raw_orders: pd.DataFrame) -> pd.DataFrame:
"""คำนวณรายได้ต่อเดือน"""
raw_orders['date'] = pd.to_datetime(raw_orders['created_at'])
return raw_orders.groupby(
raw_orders['date'].dt.to_period('M')
)['amount'].sum().reset_index()
```
ขั้นที่ 3 รัน Dagster UI
```bash
dagster dev -f assets.py
```
เปิดเบราว์เซอร์ไปที่ `http://localhost:3000` จะเห็น Asset Graph สวยงาม สามารถคลิก "Materialize" เพื่อรัน Pipeline ได้ทันที
ขั้นที่ 4 ตั้ง Schedule ให้รันอัตโนมัติ
```python
from dagster import ScheduleDefinition, define_asset_job
daily_job = define_asset_job("daily_refresh", selection="*")
daily_schedule = ScheduleDefinition(
job=daily_job,
cron_schedule="0 8 * * *", # ทุกวัน 8 โมงเช้า
)
```
ขั้นที่ 5 เชื่อมต่อ Data Warehouse
Dagster มี Integration สำเร็จรูปกับ BigQuery, Snowflake, DuckDB, Postgres, dbt และอื่นๆ อีกมาก ตัวอย่างเชื่อม BigQuery
```python
from dagster_gcp import BigQueryResource
@asset(required_resource_keys={"bigquery"})
def load_to_warehouse(context, monthly_revenue: pd.DataFrame):
bq: BigQueryResource = context.resources.bigquery
with bq.get_client() as client:
client.load_table_from_dataframe(
monthly_revenue, "analytics.monthly_revenue"
)
```
Use Case จริงที่เห็นในธุรกิจไทย
Dagster ไม่ใช่แค่เครื่องมือของบริษัทเทคระดับ Unicorn อีกต่อไป ธุรกิจไทยหลายประเภทเริ่มนำไปใช้แล้ว
Best Practice ที่ควรทำก่อน Production
ก่อนที่จะเอา Dagster ไปใช้ Production จริง ทีมควรเตรียมความพร้อมดังนี้
1. แยก Environment เป็น `local`, `staging`, `production` ด้วย Dagster Resources
2. ใส่ `AssetChecks` ทุก Asset สำคัญ เช่น "ต้องมี Row Count มากกว่า 1000"
3. ใช้ Partitioned Assets สำหรับข้อมูลรายวันหรือรายชั่วโมง เพื่อ Rerun ได้ง่าย
4. Deploy ผ่าน Docker + Kubernetes หรือใช้ Dagster+ Cloud ถ้าไม่อยากดูแล Infra เอง
5. Monitor ด้วย Dagster Insights + Sentry สำหรับ Alert เมื่อ Pipeline ล้มเหลว
6. ใส่ Data Documentation ใน Asset descriptions เพื่อให้ทีมใหม่เข้าใจได้เร็ว
สรุปและขั้นตอนถัดไป
Dagster คือ Data Orchestration Framework ที่ออกแบบมาสำหรับยุค Modern Data Stack โดยแท้จริง ด้วยแนวคิด Asset-based ทำให้ Pipeline เข้าใจง่าย ทดสอบได้ Debug ได้ง่าย และ Scale ได้ดีเมื่อทีมใหญ่ขึ้น สำหรับ SME ไทยที่ต้องการยกระดับทีม Data จากการใช้ Cron/Script แบบเดิมไปสู่ระบบที่มี Reliability ระดับ Enterprise Dagster เป็นจุดเริ่มต้นที่คุ้มค่าการลงทุน
ขั้นตอนถัดไปแนะนำให้ลอง Dagster บน Laptop ของคุณภายในสุดสัปดาห์นี้ แล้วเริ่ม Migrate Pipeline ที่สำคัญที่สุดเข้ามาทีละตัว หากต้องการคำปรึกษาเรื่องการออกแบบ Data Platform สำหรับองค์กรไทย ADS FIT พร้อมช่วยคุณวางสถาปัตยกรรม เลือก Cloud Provider และ Deploy Dagster บน Production ด้วย Best Practice ระดับ Enterprise ติดต่อทีมของเราได้เลย หรืออ่านบทความอื่นในหมวด Development เพื่อเรียนรู้เทคโนโลยีใหม่ๆ ที่เหมาะกับธุรกิจคุณ
