พอดีมีคำถามในเพจ Data Engineer Cafe เกี่ยวกับหัวข้อนี้ ผมขอเอามาตอบในนี้ด้วย แล้วก็อยากชวนทุกคนมาคอมเม้นต์เสริมกันด้วยนะครับ หรือถ้ามีคำถามเพิ่มเติมก็ยินดี
คำว่า analytics engineering ตามความเข้าใจของผมนะ อ้างอิงจากนิยามคือการที่เรานำเอา software engineering practices ต่าง ๆ เข้ามาในส่วนของ analytics ครับ เช่น เป็น ambassador ของข้อมูล การออกรายงาน การเตรียมชุดข้อมูลเอาไว้ขุดหา insights ต่าง ๆ รวมไปถึงการเตรียมข้อมูลสำหรับ data scientists มาหยิบเอาไปทำโมเดลต่อ
แน่นอนว่างานแนว analytics engineering จะรวมไปถึงการเขียนเทส การ deploy โค้ด การเขียน docs การทำ version control ด้วยเช่นกัน
แล้วทีนี้ data engineering จะไปอยู่ส่วนไหน? จริง ๆ ถ้า scale ของเราไม่ได้ใหญ่มาก ส่วนที่กล่าวมาด้านบนก็คือส่วนของ data engineering ครับ แต่เมื่อไหร่ก็ตามถ้า scale ใหญ่ขึ้นมามากเมื่อไหร่ data engineering จะเริ่มไปในเชิงการวางระบบ วางแพลตฟอร์มต่าง ๆ เพื่อรองรับ big data และทำ data tools/products ออกมา ทีนี้จะไม่ได้มีเวลามา focus ในส่วนของการเตรียมข้อมูลต่าง ๆ ให้กับ data scientists ล่ะ ตรงนี้ก็จะเกิด role ใหม่ขึ้นมาเป็น analytics engineer ครับ ที่มา focus และช่วยในการเตรียมข้อมูล และการขุดหา insights
ทั้งนี้ทั้งนั้น ที่เกิด analytics engineering ขึ้นมา เป็นเพราะว่าเราสามารถทำ ELT (extract-load-transform) ซึ่งจะโหลดข้อมูลดิบ ๆ เข้าไปใน data warehouse ได้ แล้วไปทำ transformation บนนั้น แทนที่จะทำ transformation ก่อนโหลด (ETL) เข้าไปครับผม
แอบขายของ อิอิ ผมเคยไปพูดในงาน dev mountain เกี่ยวกับ analytics engineering ไว้ ลองดูได้ครับ