สำหรับใครที่ไม่สะดวกเข้าฟังกิจกรรมสัมมนา หรืออาจจะยังไม่เข้าใจ วันนี้ทีม Cloud Ace ขอมาสรุปให้ฟังกันว่า Data Pipeline คืออะไร
Data Pipeline คือกระบวนการ หรือขั้นตอนในการ “ย้ายข้อมูลจากต้นทาง ไปยังปลายทาง” โดยมี 4 Phase หลักๆ คือ นำเข้าข้อมูล (Ingest), เก็บข้อมูล (Store), จัดการข้อมูล (Process) และ นำข้อมูลไปใช้ (Consume) ซึ่งในแต่ละขั้นตอนจะมีวิธีการย่อยๆ และใช้เครื่องมือแตกต่างกันออกไป
ก่อนจะเข้าสู่ทั้ง 4 ขั้นตอน เราจะอธิบายถึงศัพท์ของการทำ Data pipeline ที่คุณต้องรู้กันก่อนครับ
Data Source คือแหล่งข้อมูลต่างๆ ไม่ว่าจะมาจาก Cloud หรือ On-premise โดยผมจะแบ่งออกเป็นกลุ่มๆ ดังนี้
ซึ่งการจะได้ขอมูลแต่ละตัวนั้นไม่ง่าย บางตัวเราอาจต้องเขียนโปรแกรม เพื่อดักหรือนำข้อมูลออกมา เช่น การทำ Web Scraping เป็นต้น
Dataset คือชุดของข้อมูลที่ถูกต้องตามลักษณะโครงสร้างข้อมูล และเพียงพอที่จะนำไปใช้ประมวลผลได้
Data Lake คือแหล่งที่เก็บข้อมูลแบบทุกรูปแบบที่ไม่มีการเปลี่ยนแปลงรูปแบบใดๆ เก็บเหมือนๆ กับที่มาจากต้นทาง เรียกสั้นๆง่าย ก็คือ “RAW DATA” หรือ “ข้อมูลดิบ” นั่นเอง
Data Warehouse คือแหล่งข้อมูลส่วนกลางขนาดใหญ่ ที่รวบรวมข้อมูลมากจากหลายๆ แหล่งที่ผ่านการคัดกรอง และมีประโยชน์ เพื่อนำไปใช้ประกอบการตัดสินใจ, นำไปทำรีพอร์ท หรือทำการวิเคราะห์ทางธุรกิจ
Data Mart คือแหล่งข้อมูลขนาดกลาง ที่มุ่งเน้น เฉพาะเจาะจง ไปในเรื่องใดเรื่องหนึ่ง หรือ Summarize Data (ข้อมูลที่สรุปคัดมาแล้ว)
ต่อไปเรามาทำความรู้จักกับ ETL และ ELT ที่เราต้องเลือกให้เหมาะกับการทำ Data Pipeline ของเราด้วย
ETL ย่อมาจาก Extract-Transform-Load เป็นการนำข้อมูล (Extract) จากหลากหลายแหล่งข้อมูล มาแปลงรูปแบบให้เหมาะสม (Transform) แล้วเก็บ (Load) เข้าไปใน Data Warehouse
ELT ย่อมาจาก Extract-Load-Transform เป็นการนำข้อมูล (Extract) จากหลากหลายแหล่งข้อมูล แล้วนำไปเก็บ(Load) เข้าไปใน Data Warehouse จากนั้นทำการแปลงรูปแบบให้เหมาะสม(Transform)
กลับมาที่ 4 ขั้นตอนของการทำ Data Pipeline กันบ้าง เดี๋ยวเราจะมาดูกันต่อว่าใน 4 ขั้นตอนนี้ เราจะต้องใช้เครื่องมืออะไรบน Google Cloud บ้าง (ขั้นตอนที่เราบอกตอนต้นอาจจะชื่อไม่ตรงกับในภาพ เพราะเรามองว่ามันสามารถนำไปทำอย่างอื่นได้มากกว่าการทำ Visualize เราเลยขอใช้คำว่า Consume แทน)
Batch Process คืออะไร
การประมวลผลแบบ Batch คือ การประมวลผลของกลุ่มข้อมูลที่ถูกเก็บไว้ในช่วงระยะเวลาหนึ่ง เช่น การประมวลผลในรอบ สัปดาห์ หรือรอบหนึ่งเดือน เหมาะสำหรับข้อมูลที่มีขนาดใหญ่
Streaming Process หรือ Real Time Process คืออะไร
การประมวลผลแบบ Stream คือ การประมวลผลแบบเรียลไทม์ เช่น การเก็บค่าของอุปกรณ์ IOT, GPS เป็นต้น
1. App Engine
App Engine เป็น Services Compute ที่เป็นแบบ Serverless เราสามารถเขียน Code แล้ว Deploy ลงไปได้เลย เหมาะสำหรับเขียนโปรแกรมที่ Ingest Data ในรูปแบบของเว็บ การทำ Web Scraping เช่น Python (Pandas, BeautifulSoup) เป็นต้น
Transfer Services เป็นการ Transfer file รูปแบบ Batch เท่านั้น เช่น การนำไฟล์ที่ Export มาจาก Data Source จำพวก File, Database โดยต้องนำ Cloud SDK ไป Install ที่เครื่องที่มี Data Source ก่อน ในที่นี้จะแบ่งเป็น
Cloud Pub/Sub เป็นการ Ingest Data ที่สามารถใช้ได้ทั้ง Batch process และ Stream process โดยอิงตาม Event คือให้มันไป Subscribe Event เอาไว้ ทีนี้เวลามีคนส่งเข้ามาที่ Event ดังกล่าว มันก็จะไปปลุกขึ้นมาทำงาน คล้ายกับ Apache Kafka
Cloud Data Fusion เป็น End-to-End Services Fully-mangaged ที่สามารถทำได้ตั้งแต่ Ingest Data, Transform Data ไปจน Visualize เลย การใช้งานง่ายเพราะมี User Interface คลิ๊กๆ ลากๆ ก็เสร็จแล้ว หลังบ้านใช้ CDAP ในการทำ แต่ราคาอาจจะค่อนข้างสูงกว่าตัวอื่น
Store Data คือ Phase ที่เอาไว้จัดเก็บข้อมูลในรูปแบบต่างๆ ไม่ว่าจะเป็น Object, Unstructured, Structure เอาไว้ทำ Data Lake Data Warehouse หรือ Data Mart
1. BigQuery
BigQuery เป็น Fully-Managed NoOps Serverless ส่วนที่สำคัญมากส่วนหนึ่งของการทำ Data analyze ซึ่งสามารถทำหน้าที่ได้หลายอย่าง ไม่ว่าจะเป็น Data Lake , Data Warehouse , Data Mart ทั้งนี้ยังสามารถทำ BigQueryML ได้ด้วย ทั้งการใช้งารสามารถใช้ผ่านภาษา SQL ได้ด้วยทำให้ง่ายต่อการใช้งาน และยังมีความเร็วในการประมวลผลข้อมูลระดับ TB ในระดับวินาที
2. Cloud Storage
Cloud Storage เป็นที่เก็บข้อมูลประเภท Object เช่น รูป , วีดีโอ , เสียง หรือ ไฟล์เอกสารต่างๆ เป็นต้น มีให้เลือก 4 แบบ คือ
นอกจากนี้ยังมีฟังชั่นก์ Life Cycle ไว้กำหนดระยะเวลาของแต่ละไฟล์ หรือย้าย Type ของ Storage ตามเงื่อนไขได้ด้วย
3. Cloud Bigtable
Cloud Bigtable เป็น Fully-managed ที่ไว้เก็บข้อมูลจำพวก NoSQL รองรับ Workload ขนาดใหญ่ได้ อีกทั้งยังมีความเร็วสูง และ Latency สูง เหมาะสำหรับการใข้งานกับพวก Sensor Devices หลังบ้านขอตัวนี้คือ HBase
4. Cloud SQL
Cloud SQL เป็น Fully-managed ที่ไว้ใช้เก็บข้อมูลจำพวก SQL รองรับการทำงานทั้ง MySQL, PostgretSQL และ SQL Server ซึ่งมีฟังชั่น Auto backup, Read Replica, Failover เป็นต้น ทั้งยังง่ายต่อการนำไปเชื่อมต่อกับ services อื่นๆ เป็น Google Cloud ด้วย
5. Cloud Spanner
Cloud Spanner เป็น Fully-managed ที่ใช้เก็บข้อมูลจำพวก NewSQL (support ทั้ง SQL และ NOSQL) ที่เหมาะกับการใช้งานระดับ Enterpise ที่ต้องการเก็บข้อมูลที่มากกว่า Cloud SQL และยังเร็วกว่าอีกด้วย นอกจากนั้นยังรอบรับการ Scale ใหญ่ระดับ Global อีกด้วย
6. Cloud Firestore
Cloud Firestore Fully-managed บริการจัดเก็บข้อมูล NoSQL ที่เป็น Real time database มี 2 โหมดให้เลือกใช้คือ
Process & Transform เป็น Phase ที่จะมีหลาย Operation พวก ETL, ELT ที่เรากล่าวถึงในช่วงแรกก็จะอยู่ที่ช่วงนี้เช่นกัน เพื่อที่จะทำการแปลงข้อมูลเช่น Convert data, Clean data, Transform data เป็นต้น และสามารถ Integration กับ Services ต่างๆ ของ Google Cloud ได้เช่น Cloud Storage, BigQuery , Operation (Stackdriver) Monitor เป็นต้น เพื่อเตรียมพร้อมส่ง ไป Phase ต่อไป
1. Cloud Dataflow
Cloud Dataflow เป็น Service ที่สำคัญในการทำ Data pipeline มีลักษณะการทำงานเป็น Job ทำงานได้ทั้งแบบ Batch และ Stream เราสามารถทำ Data flow ได้โดยการเลือก Template ในการเชื่อมต่อข้อมูล หรือ Process ข้อมูลต่างๆ เช่น การนำข้อมูลจาก Cloud Pub/Sub เข้า BigQuery, การนำข้อมูลจาก Cloud Storage ไป BigQuery เป็นต้น นอกจากนี้ถ้าไม่มี Template ให้เลือกสามารถเขียนโปรแกรมทำ Custom Template ได้ด้วย
2. Cloud Dataprep
Cloud Dataprep เป็น Service ที่เอาไว้จัดเตรียมข้อมูล เช่น Clean data, Prepare data, Transform data ทำให้ข้อมูลพร้อมไปสู่แหล่งข้อมูลต่อไป ซึ่ง Cloud dataprep สามารถ ทำ Automate data pipeline ได้ในตัว หรือก็คือ สามารถ ingest data จากแหล่งข้อมูล data lake ใน Google Cloud ได้ จากนั้นทำการ Process data ผ่าน Dataprep จากนั้นส่งต่อไป Sink เช่น Cloud Storage, BigQuery เป็นต้น นอกจากนี้สามารถตั้งการทำงานเป็นแบบ Schedule ได้อีกด้วย
3. Cloud Dataproc
Cloud Dataproc เป็น Service ที่เหมาะสำหรับ Data pipeline ทำงานเป็น Job, สร้าง Templates การทำงานได้, ตั้งค่าสเปคของหลังบ้านได้ ตั้ง Schedule ได้ และ มีระบบ Auto Scaling ส่วนมากการงานก็จะเป็นแบบ Hadoop หรือ จะเป็น Apache Spacke ถ้าใช้อยู่แล้วก็สามารถ Migration ขึ้น Google Cloud Platform ได้ และ Integration กับ Sink ต่าง ๆ ได้ เช่น BigQuery , AI Hub , Monitor เป็นต้น
4. Cloud Function
Cloud Function เป็น Service ใน Computing ซึ่งสามารถทำงานในรูปแบบ Process, transform, Integration ได้ ลักษณะการทำงาน จะเป็นการสร้าง Event Trigger เช่น เมื่อมีข้อมูลเข้า มาที่ Cloud Storage ให้ทำการส่งข้อมูลไปที่ Bigquery เป็นต้น แต่ Service นี้จำเป็นต้องเขียนโปรแกรมเองทำให้เมื่อเทียบกับ Services อื่นๆตัวบนที่กล่าวมา ราคาจะถูกกว่า
Analyze and Machine Learning คือ Phase ที่จะนำข้อมูลที่ผ่านการ Process แล้ว หรือ ยังไม่ผ่านการ Process ก็ได้ นำไปใช้งานในการทำวิเคราะห์ที่ หรือ Query ที่ BigQuery หรือใช้พวก Machine Learning นำข้อมูลที่ได้ไป Train เพื่อได้ตัว Model ที่มีประสิทธิภาพมากยิ่งขึ้น
Visualize และ Reporting คือ phase ที่นำข้อมูลไปแสดงเป็น Report, Dashboard, Graph หรือ Table สวยๆ ไว้ให้ดูง่ายและเห็นเป็นภาพ ส่วนมากจะเป็น phase สุดท้ายในการทำ Data Pipeline
1. Google Data Studio
Google Data Studio เป็น Service ที่ใช้ทำ Visualize, Report, Table, Graph ที่เปิดใช้งานฟรี สามารถเชื่อมต่อ Integration ได้กับ Services อื่นๆ ของ Google ได้ เช่น BigQuery , Google Sheet , Google Analytics และ Google Ads เป็นต้น
นอกจากนี้ยังเหลือ Service อีกตัวหนึ่งที่ทำหน้าที่ควบคุมการทำงานของ Service ต่างๆ ที่เกี่ยวข้องกับ Data Pipeline นั่นก็คือ Google Cloud Composer
Cloud Composer คือ Service ที่เป็น Fully-managed ที่ไว้ควบคุมการทำงาน Workflow ต่างๆ ที่หลังบ้านของมันสร้างมาจาก Apache Airflow หน้าที่หลัก ๆ ก็คือ ทำ Schedule, Monitor เป็นต้น สร้างมาเขียนโปรแกรม Python เพิ่มเติมลงไปใน Apache Airflow ได้เลย
Written by Thanatip Suwanchundee
Edited by Thanabat Raksanawes
Cloud Ace Thailand
หากคุณสนใจทำ Data Pipeline และต้องการคำปรึกษา Cloud Ace Thailand พร้อมให้บริการที่จะสนับสนุนคุณตั้งแต่ การให้คำปรึกษา (Consulting) จนถึงการออกแบบระบบ ติดตั้งระบบ ย้ายระบบ ในฐานะ Google Cloud Partner ที่มีความเชี่ยวชาญ และได้รับรางวัล Service partner of the year ในปี 2019
Thank you for having interesting in our services!
After you submitted the form we will get back to you as soon as possible. Have a great day!