สร้าง Data Pipeline ด้วย Google Cloud


สร้าง Data Pipeline ด้วย Google Cloud

สำหรับใครที่ไม่สะดวกเข้าฟังกิจกรรมสัมมนา หรืออาจจะยังไม่เข้าใจ วันนี้ทีม Cloud Ace ขอมาสรุปให้ฟังกันว่า Data Pipeline คืออะไร


Data Pipeline คืออะไร?


Data Pipeline คือกระบวนการ หรือขั้นตอนในการ “ย้ายข้อมูลจากต้นทาง ไปยังปลายทาง” โดยมี 4 Phase หลักๆ คือ นำเข้าข้อมูล (Ingest), เก็บข้อมูล (Store), จัดการข้อมูล (Process) และ นำข้อมูลไปใช้ (Consume) ซึ่งในแต่ละขั้นตอนจะมีวิธีการย่อยๆ และใช้เครื่องมือแตกต่างกันออกไป


ก่อนจะเข้าสู่ทั้ง 4 ขั้นตอน เราจะอธิบายถึงศัพท์ของการทำ Data pipeline ที่คุณต้องรู้กันก่อนครับ

1. Data Source

Data Source คือแหล่งข้อมูลต่างๆ ไม่ว่าจะมาจาก Cloud หรือ On-premise โดยผมจะแบ่งออกเป็นกลุ่มๆ ดังนี้

  1. Database ซึ่งมีทั้งแบบ Structure และ UnStructured เช่น MySQL , MS SQL , MongoDB , Realtime database
  2. File ต่างๆ เช่น Microsoft Office , G Suite , รูปภาพ , เสียง
  3. Application หรือ Program ต่างๆ เช่น CRM , ERP , POS
  4. Website หรือพวก API ต่าง ๆ
  5. อุปกรณ์ IOT

ซึ่งการจะได้ขอมูลแต่ละตัวนั้นไม่ง่าย บางตัวเราอาจต้องเขียนโปรแกรม เพื่อดักหรือนำข้อมูลออกมา เช่น การทำ Web Scraping เป็นต้น

2. Dataset

Dataset คือชุดของข้อมูลที่ถูกต้องตามลักษณะโครงสร้างข้อมูล และเพียงพอที่จะนำไปใช้ประมวลผลได้

3. Data Lake

Data Lake คือแหล่งที่เก็บข้อมูลแบบทุกรูปแบบที่ไม่มีการเปลี่ยนแปลงรูปแบบใดๆ เก็บเหมือนๆ กับที่มาจากต้นทาง เรียกสั้นๆง่าย ก็คือ “RAW DATA” หรือ “ข้อมูลดิบ” นั่นเอง

4. Data Warehouse

Data Warehouse คือแหล่งข้อมูลส่วนกลางขนาดใหญ่ ที่รวบรวมข้อมูลมากจากหลายๆ แหล่งที่ผ่านการคัดกรอง และมีประโยชน์ เพื่อนำไปใช้ประกอบการตัดสินใจ, นำไปทำรีพอร์ท หรือทำการวิเคราะห์ทางธุรกิจ

5. Data Mart

Data Mart คือแหล่งข้อมูลขนาดกลาง ที่มุ่งเน้น เฉพาะเจาะจง ไปในเรื่องใดเรื่องหนึ่ง หรือ Summarize Data (ข้อมูลที่สรุปคัดมาแล้ว)

ETL vs ELT

ต่อไปเรามาทำความรู้จักกับ ETL และ ELT ที่เราต้องเลือกให้เหมาะกับการทำ Data Pipeline ของเราด้วย

ETL คืออะไร

ETL ย่อมาจาก Extract-Transform-Load เป็นการนำข้อมูล (Extract) จากหลากหลายแหล่งข้อมูล มาแปลงรูปแบบให้เหมาะสม (Transform) แล้วเก็บ (Load) เข้าไปใน Data Warehouse

ELT คืออะไร

ELT ย่อมาจาก Extract-Load-Transform เป็นการนำข้อมูล (Extract) จากหลากหลายแหล่งข้อมูล แล้วนำไปเก็บ(Load) เข้าไปใน Data Warehouse จากนั้นทำการแปลงรูปแบบให้เหมาะสม(Transform)


กลับมาที่ 4 ขั้นตอนของการทำ Data Pipeline กันบ้าง เดี๋ยวเราจะมาดูกันต่อว่าใน 4 ขั้นตอนนี้ เราจะต้องใช้เครื่องมืออะไรบน Google Cloud บ้าง (ขั้นตอนที่เราบอกตอนต้นอาจจะชื่อไม่ตรงกับในภาพ เพราะเรามองว่ามันสามารถนำไปทำอย่างอื่นได้มากกว่าการทำ Visualize เราเลยขอใช้คำว่า Consume แทน)

Ingest Data

Ingest Data คืออะไร

Ingest Data คือ Phase ในการนำข้อมูลจากแหล่งข้อมูล (Data Source) เข้ามาเก็บใน Data Lake ก่อน เพื่อนำไปใช้ในกระบวนการต่อไป ซึ่งการ Ingest data จะแบ่งออกเป็น 2 แบบคือ Batch และ Streaming

Batch Process คืออะไร

การประมวลผลแบบ Batch คือ การประมวลผลของกลุ่มข้อมูลที่ถูกเก็บไว้ในช่วงระยะเวลาหนึ่ง เช่น การประมวลผลในรอบ สัปดาห์ หรือรอบหนึ่งเดือน เหมาะสำหรับข้อมูลที่มีขนาดใหญ่

Streaming Process หรือ Real Time Process คืออะไร

การประมวลผลแบบ Stream คือ การประมวลผลแบบเรียลไทม์ เช่น การเก็บค่าของอุปกรณ์ IOT, GPS เป็นต้น

Services ของ Google Cloud ในการ Ingest Data

1. App Engine

App Engine เป็น Services Compute ที่เป็นแบบ Serverless เราสามารถเขียน Code แล้ว Deploy ลงไปได้เลย เหมาะสำหรับเขียนโปรแกรมที่ Ingest Data ในรูปแบบของเว็บ การทำ Web Scraping เช่น Python (Pandas, BeautifulSoup) เป็นต้น

2. Transfer Services

Transfer Services เป็นการ Transfer file รูปแบบ Batch เท่านั้น เช่น การนำไฟล์ที่ Export มาจาก Data Source จำพวก File, Database โดยต้องนำ Cloud SDK ไป Install ที่เครื่องที่มี Data Source ก่อน ในที่นี้จะแบ่งเป็น

  • Transfer Appliance ไฟล์ที่มีขนาดใหญ่ 100 TB ขึ้นไป
  • Gsutil Services เหมาะกับไฟล์ที่มีขนาดเล็ก ถึงปานกลาง

3. Cloud Pub/Sub

Cloud Pub/Sub เป็นการ Ingest Data ที่สามารถใช้ได้ทั้ง Batch process และ Stream process โดยอิงตาม Event คือให้มันไป Subscribe Event เอาไว้ ทีนี้เวลามีคนส่งเข้ามาที่ Event ดังกล่าว มันก็จะไปปลุกขึ้นมาทำงาน คล้ายกับ Apache Kafka

4. Cloud Data Fusion

Cloud Data Fusion เป็น End-to-End Services Fully-mangaged ที่สามารถทำได้ตั้งแต่ Ingest Data, Transform Data ไปจน Visualize เลย การใช้งานง่ายเพราะมี User Interface คลิ๊กๆ ลากๆ ก็เสร็จแล้ว หลังบ้านใช้ CDAP ในการทำ แต่ราคาอาจจะค่อนข้างสูงกว่าตัวอื่น

Store Data


Store Data คืออะไร

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 แบบ คือ

    • Standard เหมาะกับผู้ที่ Operation กับข้อมูลเยอะๆ เข้าถึงหลายๆ ครั้งต่อวัน
    • Nearline เหมาะกับผู้ที่ Operation กับข้อมูลในระยะ 30 วัน
    • Coldline เหมาะกับผู้ที่ Operation กับข้อมูลในระยะ 90 วัน เช่น Backup , PDPA
    • Archive เหมาะกับผู้ที่ Operation กับข้อมูลในระยะเกินกว่า 90 วัน เช่น Log

    นอกจากนี้ยังมีฟังชั่นก์ 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 โหมดให้เลือกใช้คือ

    • Cloud Firestore in Datastore mode เหมาะสำหรับเก็บ Userprofile , Product catalogs เป็นต้น
    • Cloud Firestore in Native mode เหมาะสำหรับ Mobile application , Web application เป็นต้น


    Process & Transform


    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 & Machine Learning


    Analyze and Machine Learning คือ Phase ที่จะนำข้อมูลที่ผ่านการ Process แล้ว หรือ ยังไม่ผ่านการ Process ก็ได้ นำไปใช้งานในการทำวิเคราะห์ที่ หรือ Query ที่ BigQuery หรือใช้พวก Machine Learning นำข้อมูลที่ได้ไป Train เพื่อได้ตัว Model ที่มีประสิทธิภาพมากยิ่งขึ้น

    Visualize


    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

    Cloud Composer คือ Service ที่เป็น Fully-managed ที่ไว้ควบคุมการทำงาน Workflow ต่างๆ ที่หลังบ้านของมันสร้างมาจาก Apache Airflow หน้าที่หลัก ๆ ก็คือ ทำ Schedule, Monitor เป็นต้น สร้างมาเขียนโปรแกรม Python เพิ่มเติมลงไปใน Apache Airflow ได้เลย


    Written by Thanatip Suwanchundee

    Edited by Thanabat Raksanawes

    Cloud Ace Thailand

    Make It Now!

    หากคุณสนใจทำ Data Pipeline และต้องการคำปรึกษา Cloud Ace Thailand พร้อมให้บริการที่จะสนับสนุนคุณตั้งแต่ การให้คำปรึกษา (Consulting) จนถึงการออกแบบระบบ ติดตั้งระบบ ย้ายระบบ ในฐานะ Google Cloud Partner ที่มีความเชี่ยวชาญ และได้รับรางวัล Service partner of the year ในปี 2019

    ติดต่อเรา

    .