ทำไมโรงงานอุตสาหกรรมต้องใช้ Time-Series Database?

ในโรงงานอุตสาหกรรมยุค Industry 4.0 เซ็นเซอร์ IoT หลายพันตัวส่งข้อมูลทุกวินาที — อุณหภูมิ, ความดัน, การสั่นสะเทือน, กระแสไฟฟ้า, รอบการหมุนของมอเตอร์ ข้อมูลเหล่านี้มีลักษณะพิเศษคือ มีการเวลา (Timestamp) ติดมาด้วยเสมอ และต้องเขียนเร็ว อ่านเป็นช่วงเวลา ซึ่ง Relational Database ทั่วไปอย่าง MySQL หรือ PostgreSQL ไม่ได้ถูกออกแบบมาจัดการข้อมูลลักษณะนี้โดยเฉพาะ

Time-Series Database Architecture สำหรับอุตสาหกรรม

Time-Series Database (TSDB) คือฐานข้อมูลที่ถูกออกแบบมาเพื่อจัดเก็บและ Query ข้อมูลที่มี Timestamp เป็นหลัก โดยเฉพาะข้อมูลจากเซ็นเซอร์และอุปกรณ์ IoT ในโรงงาน ซึ่งมีปริมาณมหาศาลและต้องการ Latency ต่ำ

💡 สถิติสำคัญ: โรงงานอัจฉริยะขนาดกลาง (500-1,000 เซ็นเซอร์) สร้างข้อมูลประมาณ 1-5 GB/วัน หรือ 300 GB-1.8 TB/ปี — นี่คือเหตุผลที่ TSDB จำเป็นอย่างยิ่ง

3 ตัวเลือกยอดนิยมสำหรับโรงงาน

1. InfluxDB — ออกแบบมาเพื่อ IoT โดยเฉพาะ

InfluxDB พัฒนาโดย InfluxData เป็น TSDB แบบ Open-Source ที่ได้รับความนิยมสูงสุดในวงการ IoT ใช้ภาษา Flux ในการ Query และมีระบบ TSM (Time Structured Merge Tree) Engine ที่รองรับการเขียนข้อมูลความเร็วสูง

  • จุดเด่น: ติดตั้งง่าย, มี Telegraf Collector พร้อม 400+ Input Plugin, มี Dashboard (Grafana หรือ Chronograf) ในตัว
  • เหมาะกับ: Monitoring, Alerting, Predictive Maintenance ที่ต้อง Query ข้อมูลย้อนหลังระดับนาที
  • License: Open Source (MIT) + Enterprise/Cloud
  • Performance: เขียนได้ >500,000 points/วินาที บนฮาร์ดแวร์ทั่วไป

2. TimescaleDB — PostgreSQL Extension สำหรับ Time-Series

TimescaleDB ไม่ใช่ Database ใหม่ แต่เป็น Extension ที่เพิ่มความสามารถ Time-Series บน PostgreSQL โดยตรง ทำให้สามารถใช้ SQL มาตรฐานในการ Query ข้อมูลได้ พร้อมฟีเจอร์ Hypertable ที่แบ่งข้อมูลอัตโนมัติตามเวลา

  • จุดเด่น: ใช้ SQL ได้ (ไม่ต้องเรียนรู้ภาษาใหม่), JOIN กับตาราง Relational ได้, รองรับ GIS (PostGIS)
  • เหมาะกับ: โรงงานที่มีระบบ PostgreSQL อยู่แล้ว, ต้องการ Query ข้อมูลร่วมกับ ERP/MES
  • License: Apache 2.0 (Community) + Enterprise
  • Performance: Continuous Aggregates ช่วยลดเวลา Query ข้อมูลสรุปรายชั่วโมง/วัน

3. Prometheus — มาตรฐาน Monitoring ของ Cloud-Native

Prometheus พัฒนาโดย CNCF เป็นระบบ Monitoring + Alerting ที่มี TSDB ในตัว ใช้ PromQL ในการ Query ออกแบบมาเพื่อดึงข้อมูลแบบ Pull Model (Scrape) เหมาะกับระบบ Cloud-Native และ Kubernetes

  • จุดเด่น: รวมเป็นชุดเดียว (TSDB + Alerting + Service Discovery), มี Ecocystem เชื่อมกับ Grafana ได้ดีมาก
  • เหมาะกับ: โรงงานที่ใช้ Kubernetes/Docker, IT Infrastructure Monitoring
  • ข้อจำกัด: ไม่ได้ออกแบบมาสำหรับ Long-term Storage (>15 วัน) ต้องใช้ Thanos/Cortex เพิ่มเติม

เปรียบเทียบ Time-Series Database

ตารางเปรียบเทียบ: InfluxDB vs TimescaleDB vs Prometheus

Feature InfluxDB TimescaleDB Prometheus
Query Language Flux / InfluxQL SQL PromQL
Storage Engine TSM Tree Hypertable (PostgreSQL) LSM-based TSDB
Data Model Measurement + Tags + Fields Table + Columns Metric + Labels
Write Throughput >500K points/s ~200K rows/s ~100K samples/s
Long-term Storage ✅ ดีมาก ✅ ดีมาก ⚠️ ต้องใช้ Thanos
JOIN Support ❌ จำกัด ✅ เต็มรูปแบบ ❌ ไม่รองรับ
IoT/OT Use Case ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐

การเลือก TSDB ให้เหมาะกับ Use Case ของโรงงาน

Use Case 1: Real-Time Monitoring + Alerting

ต้องการแสดง Dashboard อุณหภูมิเครื่องจักรแบบ Real-time แจ้งเตือนเมื่อเกิน Threshold → InfluxDB + Telegraf + Grafana เป็น Stack ที่ได้รับความนิยมสูงสุด

Use Case 2: Predictive Maintenance + Data Lake

ต้องการเก็บข้อมูลเซ็นเซอร์ย้อนหลัง 1-3 ปี เพื่อฝึกโมเดล Machine Learning → TimescaleDB เพราะสามารถ JOIN ข้อมูลกับตาราง ERP/MES และ Export ไปยัง Data Lake ได้ง่าย

Use Case 3: Cloud-Native Monitoring

โรงงานที่ระบบ IT ใช้ Kubernetes → Prometheus + Grafana สำหรับ IT Metrics และอาจใช้ InfluxDB แยกสำหรับ OT Data

Architecture ตัวอย่าง: InfluxDB สำหรับโรงงาน

ตัวอย่าง Architecture ที่ใช้จริงในโรงงานอุตสาหกรรม:

  1. Data Source: PLC/SCADA → OPC UA Server → Telegraf (OPC UA Input Plugin)
  2. Collection: Telegraf ดึงข้อมูลทุง 1-10 วินาที ส่งไป InfluxDB
  3. Storage: InfluxDB เก็บข้อมูล Retention Policy: 30 วัน (raw) → Downsample เป็น 1 ชม. → เก็บ 2 ปี
  4. Visualization: Grafana Dashboard แสดง Real-time + Historical Trend
  5. Alerting: Kapacitor/InfluxDB Alert ส่ง Line Notify / Email เมื่อเกิน Threshold

🔧 Best Practice: ตั้งค่า Retention Policy อย่างน้อย 3 ระดับ — Raw data (7-30 วัน), Hourly aggregate (6 เดือน), Daily aggregate (2-5 ปี) เพื่อลดพื้นที่จัดเก็บโดยไม่สูญเสียข้อมูลสำคัญ

Key Takeaways

  • Time-Series Database จำเป็นสำหรับโรงงานที่มีเซ็นเซอร์ IoT มากกว่า 100 ตัว — Relational DB ทั่วไปไม่สามารถรองรับได้
  • InfluxDB เหมาะสำหรับ IoT/OT Monitoring โดยตรง — ติดตั้งง่าย, มี Telegraf 400+ Plugin
  • TimescaleDB เหมาะเมื่อต้อง JOIN ข้อมูลกับ ERP/MES — ใช้ SQL ได้, เรียนรู้ง่าย
  • Prometheus เหมาะกับ Cloud-Native/IT Monitoring — แต่ไม่ใช่ตัวเลือกแรกสำหรับ OT Data ระยะยาว
  • Stack ยอดนิยม: InfluxDB + Telegraf + Grafana คือ Stack ที่พบมากที่สุดในโรงงานอุตสาหกรรม
  • Retention Policy แบบหลายระดับช่วยลด Storage ได้ 60-80% โดยยังคงข้อมูลสำคัญไว้