Taking too long? Close loading screen.

สถาบันข้อมูลขนาดใหญ่ (องค์การมหาชน)

Zero ETL: อนาคตของการทำ data integration

May 18, 2023
Zero-ETL

               หลายคนที่ติดตามข่าวสารเกี่ยวกับซอฟต์แวร์จัดการข้อมูลขนาดใหญ่ อาจเคยได้ยินคำว่า Zero ETL มาแล้วบ้าง หลายคนอาจจะอยากรู้ว่า

               “Zero ETL จะเป็นอนาคตของการทำ data integration จริง ๆ หรือจะเป็นเพียง buzzword ที่ผ่านมาแล้วก็หายไปตามกาลเวลา”

               ในบทความนี้เราจะมารู้จักกันว่า Zero ETL คืออะไร มีข้อดี ข้อเสียอย่างไร และเหมาะสมกับการใช้งานของเราหรือไม่กันครับ

ทำความรู้จักกับ ETL กันก่อน

               ก่อนที่เราจะมารู้จัก Zero ETL เราต้องรู้จัก ETL ก่อนครับ ETL ย่อมาจากขั้นตอนการจัดการข้อมูล 3 ขั้นตอน ได้แก่ Extract Transform และ Load ซึ่งเป็นส่วนประกอบพื้นฐานของกระบวนการจัดเตรียมข้อมูล และเป็นจุดเริ่มต้นของการนำข้อมูลไปใช้ในโครงการ Big Data ใด ๆ ก็ตาม (ตัวอย่างการทำ ETL ด้วย Talend และ Python) Data Engineer หลายท่านก็เรียก ETL pipeline ว่า data pipeline หรือ batch processing

               โดยทั่วไปแล้ว ETL pipeline จะทำงานโดยการดึงข้อมูลจากแหล่งที่มา ซึ่งอาจจะมีมากกว่าหนึ่งแห่ง และอาจจะมีรูปแบบข้อมูลที่แตกต่างกัน จากนั้นทำการแปลงข้อมูลให้อยู่ในรูปแบบที่เหมาะสมกับสิ่งที่ผู้ใช้งานต้องการ แล้ววางข้อมูลที่ถูกแปลงไปยัง data warehouse ที่ business analyst หรือ data scientist จะนำข้อมูลไปใช้ต่อไป การเตรียมข้อมูลในแบบ ETL เคยเป็นสิ่งที่จำเป็นตอนที่ต้นทุนการเก็บข้อมูลสูง จึงต้องเตรียมข้อมูลให้ผู้ใช้งานเท่าที่ต้องการ แต่ตอนนี้ค่าเก็บข้อมูลถูกลงมากจนทำให้ไม่ได้เป็นข้อจำกัดของระบบอีกต่อไป ข้อเสียของ ETL คือ ผู้ใช้งานสูญเสียความยืดหยุ่นในการคำนวณข้อมูลใหม่ เนื่องจากผู้ใช้งานไม่ได้ถือข้อมูลดิบ ทำให้ต้องติดต่อ Data Engineer ให้ทำการรัน ETL อีกครั้งหากมีความต้องการที่เปลี่ยนแปลงไป

แล้ว Zero ETL คืออะไร

               Zero ETL เป็นคอนเซ็ปใหม่ในวงการ Data Engineering ที่หมายถึงการเตรียมข้อมูลโดยไม่ต้องทำ ETL โดยจะเป็น automatic pipeline ที่ย้ายข้อมูลดิบมายัง data warehouse โดยอาจจะมีการทำ transform เล็กน้อยโดยอัตโนมัติ เช่นการแปลงข้อมูล JSON จาก API ให้เป็นรูปแบบตาราง เป็นต้น ทำให้ผู้ใช้งานสามารถ query ข้อมูลจาก data warehouse ได้เองโดยตามที่ต้องการ (ตามสิทธิของการเข้าถึงข้อมูล) และได้ใช้ข้อมูลที่อัพเดทแบบ real time

               หลายคนอาจจากสงสัยว่า สิ่งที่ Zero ETL ทำ ก็เหมือนกับการให้ผู้ใช้งานเข้าไป query จากฐานข้อมูลของ application ได้เองหรือไม่ ก่อนจะตอบคำถามนี้เราต้องเข้าใจก่อนว่าคำว่า “Zero ETL” เป็นคำที่ AWS ใช้เพื่อโฆษณาการ integrate ข้อมูลโดยไม่ต้องมีการทำ ETL จาก Amazon Aurora ซึ่งเป็นฐานข้อมูลบนคลาวด์ ไปยัง Amazon Redshift ซึ่งเป็น data warehouse product ที่มีฟีเจอร์ที่ช่วยการทำงานเกี่ยวกับ data analysis ดังนั้น ผมจึงอยากให้มองว่า Zero ETL คือการ integrate data warehouse product เข้ากับฐานข้อมูลโดยอัตโนมัติ และอาจจะ integrate หลาย ๆ ฐานข้อมูลเข้าด้วยกันได้ ดังนั้นสิ่งที่แตกต่างจากการให้ผู้ใช้งาน query database เองก็คือ ผู้ใช้งานสามารถใช้ฟีเจอร์ต่าง ๆ ของ data warehouse product ไปพร้อมกันได้

Zero ETL กับการนำมาใช้

               นอกจาก AWS ที่เป็นผู้ที่เริ่มใช้คำนี้แล้ว ก็มีผู้ให้บริการ Big Data อีกหลายแพลตฟอร์มที่มีฟีเจอร์นี้ เช่น Google Cloud Platform (BigTable to BigQuery) และ Snowflake (Unistore) และมีฟีเจอร์ของ Snowflake (Secure Data Sharing) และ Databricks (Delta Sharing) เป็นการแชร์ข้อมูลโดยไม่คัดลอก “no copy data sharing” ซึ่งทำงานไม่เหมือนกับ Zero ETL แต่ให้ผลลัพธ์ที่คล้ายกัน

               Cloud platform ชื่อดังต่าง ๆ ก็เริ่มได้นำคอนเซ็ป Zero ETL มาใช้กันแล้ว ผมจึงคิดว่าธุรกิจใหม่ ๆ ในอนาคตที่เลือกใช้ platform เหล่านั้น น่าจะได้นำ Zero ETL มาใช้เพิ่มความสามารถในการวิเคราห์ข้อมูลในแบบ real time กันมากขึ้น ส่วนระบบเก่า ๆ ที่ไม่ได้ใช้ cloud platform ตั้งแต่แรกไม่น่าจะได้รับผลกระทบอะไรมากนัก โดย Zero ETL อาจจะเป็นแค่ข้อดีเล็ก ๆ ข้อหนึ่งของการย้ายไปใช้ cloud platform เท่านั้น

สรุปข้อดีและข้อเสีย Zero ETL

ข้อดี

  • ความเร็วสูง
  • ลด latency ของข้อมูล
  • ไม่มีการ copy ข้อมูล
  • User สามารถใช้งานข้อมูลได้โดยไม่จำเป็นต้องรอให้ Data Engineer เตรียมข้อมูล
  • ลด manual process ในการเตรียมข้อมูล ทำให้ลดความผิดพลาดได้

ข้อเสีย

  • ความสามารถในการแปลงข้อมูลจำกัด ทำให้ผู้ใช้งานอาจจะต้องแปลงข้อมูลเองอีกครั้งหนึ่งก่อนนำไปใช้
  • ขาดการรับรองคุณภาพของข้อมูล เนื่องจากกระบวนการทั้งหมดเป็นกระบวนการ automatic ทำให้ไม่สามารถตรวจสอบคุณภาพและความสมบูรณ์ของข้อมูลก่อนที่จะส่งไปให้ผู้ใช้งานได้
  • ไม่สามารถใช้งานร่วมกันกับระบบอื่น ๆ ได้ และเปลี่ยนไปใช้ระบบอื่น ๆ ได้ยาก (Vendor Lock-in)

สิ่งที่จะเกิดขึ้นต่อไป – การวิเคราะห์ข้อมูลแบบบริการตนเอง (Self Service Data Analytics) ที่แท้จริง

               One Big Table and Large Language Model – ไอเดียหลัก ๆ คือรวมข้อมูลดิบทุกอย่าง ทุกคอลัมน์ บนตารางขนาดใหญ่ตารางเดียว (One Big Table) และใช้โมเดลภาษาขนาดใหญ่ (Large Language Model) อย่างเช่น GPT-4 ในการทำการ query ข้อมูลตามคำสั่งที่เป็นภาษาธรรมชาติ (natural language) ของผู้ใช้งาน คอนเซ็ปนี้ยังอยู่ในขั้นพัฒนา โดยมีสตาร์ทอัพที่ผลักดันไอเดียนี้ ได้แก่ Delphi, GetDot.AI และ Narrator

ข้อสรุป

               Zero ETL เป็นการ transform กระบวนการเตรียมข้อมูล ให้เป็นไปอย่างอัตโนมัติ โดยในปัจจุบันมี Big Data platform ชื่อดังหลาย ๆ แพลตฟอร์มได้ทำออกมาให้ใช้แล้ว ผลกระทบหลัก ๆ คือ ทำให้ผู้ใช้งานข้อมูล (Data Scientist, Data Analyst) สามารถใช้ข้อมูลได้โดยไม่จำเป็นต้องรอคนเตรียมข้อมูลให้ และมีผลกับ Data Engineer ที่จะไม่ต้องทำงาน manual ตามความต้องการที่หลากหลายของผู้ใช้งาน เปลี่ยนมาเป็นทำการออกแบบ automated data pipeline แทน

               ผมคิดว่า Zero ETL เป็นคอนเซ็ปที่มีประโยชน์ และเป็นก้าวหนึ่งของการ automate การทำงาน เพื่อให้คนทำงานได้มีประสิทธิภาพมากขึ้น ถึงแม้ Zero ETL อาจจะเป็นการโฆษณาฟีเจอร์หนึ่งของ Big Data platform แต่ผมคิดว่า Zero ETL เป็นฟีเจอร์ที่ดี และสร้าง impact ให้กับผู้ใช้งานได้จริงครับ

อ้างอิง

https://insightsndata.com/zero-etl-a-new-future-of-data-integration-9ca2ea3f6c2e

https://towardsdatascience.com/zero-etl-chatgpt-and-the-future-of-data-engineering-71849642ad9c

https://medium.com/starschema-blog/so-whats-all-this-talk-about-zero-etl-integration-aa3b0ca9612b

https://dataengineering.wiki/Concepts/Data+Pipeline

บทความโดย พชร  วงศ์สุทธิโกศล

ตรวจทานและปรับปรุงโดย นววิทย์ พงศ์อนันต์

Patchara Wongsutthikoson

Data Scientist Government Big Data Institute (GBDi)

Navavit Ponganan

Editor-in-Chief and Senior Data Scientist at Big Data Institute (Public Organization), BDI