บทที่ 9: Serving Data for Analytics, Machine Learning, and Reverse ETL
2 min readการสร้าง Trust ใน Data
ก่อน serving data ต้องมี trust ใน data ก่อน — ถ้าคนไม่เชื่อถือ data จะไม่มีค่า
- Trust → Data products → Self-service → Data-driven culture
Figure 9-1. Serving delivers data for use cases
3 ประเภท Analytics
-
Business Intelligence (BI): อดีตและปัจจุบัน, reports, dashboards — แนวโน้ม self-service analytics
- Self-service analytics: ทุกคน access data และ slice/dice เองได้ — ทฤษฎีง่ายแต่ปฏิบัติยากเพราะ data quality
-
Operational Analytics: ปัจจุบัน, real-time, live view — inventory, system health
Figure 9-2. An operational analytics dashboard showing some key metrics from Google Compute Engine -
Embedded Analytics: customer-facing — hard ที่สุดเพราะต้องรับมือ 3 เรื่องพร้อมกัน: data latency (ต้องสดใหม่), query performance (ต้องเร็ว), concurrency (query rate สูงกว่ามาก จากลูกค้าหลายรายพร้อมกัน)
- Multitenancy: แต่ละ customer ต้องเห็นเฉพาะ data ของตัวเอง — data leak = disaster
Machine Learning Serving
- Feature engineering → feature stores → model training → serving
- Feature store: ลด operational burden สำหรับ ML engineers — maintain history, versions, sharing
- อย่าเพิ่งทำ ML จนกว่าจะมี data foundation ที่ดี — ทำ analytics ให้เก่งก่อน
- Data scientist มักดึงข้อมูลผ่าน notebook (Jupyter) เข้า pandas dataframe จากหลายแหล่ง (API, database, data warehouse, data lake) — ต้องระวังเรื่อง credential handling (ห้าม hardcode ใน code) และเมื่อข้อมูลใหญ่เกิน local memory ต้องย้ายไป cloud notebook หรือ distributed execution (Dask, Ray, Spark)
Figure 9-4. A notebook can be served data from many sources, such as object storage or a database, data warehouse, or data lake
Reverse ETL
ส่ง processed data กลับไป ยัง source systems (CRM, ad platforms)
- จาก antipattern → product category (Census, Hightouch)
- Marketing analysts เคยทำ manual ใน Excel — ปัจจุบัน automate
- ระวัง feedback loop: ถ้า model ที่คำนวณค่ากลับไปมี error (เช่น bid model) อาจวนเพิ่มค่าเรื่อยๆ จนเผาผลาญ budget มหาศาล — ต้องมี monitoring/guardrail
Figure 9-5. Reverse ETL
Undercurrents ในการ Serving
- Security: row/column-level security, encryption, masking, data obfuscation (ปลอมข้อมูลจริงเป็น synthetic/anonymized data ให้ user ใช้ได้โดยไม่หลุด PII)
- Data Management: data validation, SLA (Service-Level Agreement) monitoring, cost optimization
- DataOps: automation, monitoring, observability
- Orchestration: dependency management สำหรับ serving pipelines
Serving คือปลายทางสุดท้ายของ lifecycle แต่ก็วนกลับมาเป็น feedback loop เสมอ — build → learn → improve แล้วกลับไปเริ่มใหม่
Figure 9-6. Build, learn, improve