BLOGS

CDC ข้อมูลจาก Oracle ไป BigQuery ง่ายนิดเดียวด้วย Datastream (ฉบับจับมือสอน EP.3/3)

Thakorn.T • 24/08/2023
Google Cloud Solutions Specialist

บทความใน EP.2 ที่ผ่านมาจะเป็นการติดตั้ง Oracle เพื่อเตรียมพร้อมให้ Datastream เชื่อมต่อมา โดยในบทความนี้จะสาธิตถึงวิธีการสร้าง Profile ที่เชื่อมต่อจาก Datastream และสร้าง Streaming Pipeline มาลงยัง BigQuery

ทบทวนขั้นตอนการทำ CDC จาก Oracle ไปยัง BigQuery

  1. ฝํ่ง Oracle
    • เตรียม Oracle Database ให้พร้อม
    • Configure Archivelog บน Oracle Database เพื่อรองรับ CDC
  2. ฝั่ง Google Cloud
    • สร้าง Connection Profiles บน Datastream
      • Source Profile เป็น Oracle
      • Destination Profile เป็น BigQuery
    • สร้าง Streams บน Datastream
    • Start Streams และดูผลลัพธ์บน BigQuery

สิ่งที่จะ Focus ในบทความนี้คือขั้นตอนที่ 2 คือ ฝั่ง Google Cloud แต่หากใครยังไม่ได้เตรียมฝั่ง Oracle ในขั้นตอนที่ 1 สามารถไปเตรียมตัวได้ที่ EP.2

สร้าง Profile บน Datastream

Oracle Profile

ไปที่ Connection Profiles บน Datastream Console แล้วกด CREATE PROFILE

เลือก Oracle

ใส่ IP Username และ Password ที่ได้จาก EP.2 ให้เรียบร้อย

ขั้นตอนนี้จะมี Option ในการกำหนดการเชื่อมต่อได้ 3 แบบ ต่อไปนี้

  1. IP Allowlisting
  2. Forward SSH tunnel
  3. Private Connectivity (VPC Peering)

ในการทำงานจริงให้เราเลือกการเชื่อมต่อที่เหมาะสม หากเราทำ VPN Site-to-site เป็นวง VPC บน Cloud เรียบร้อยแล้วก็สามารถเลือก Option นี้ได้

ในบทความนี้จะกำหนด Connectivity Method เป็น IP Allowlisting ซึ่งได้ Allow Port 1521 ใน EP.2 ไปแล้วกับทุก ๆ IP ที่เข้ามา จึงไม่ต้องใส่ IP ที่ Datastream ให้มาเพิ่ม แต่หากมีการตั้ง Firewall ที่จำกัด IP ที่เรียกเข้ามาเฉพาะเจาะจง จำเป็นที่ต้อง Allow IP เหล่านี้เพิ่ม

กด CONTINUE และ RUN TEST ได้เลยเมื่อ Test สำเร็จจะขึ้น Message ดังภาพ และกด CREATE

จากนั้นจะ redirect มาหน้ารายละเอียด profile ดังภาพ เป็นอันจบการสร้าง Oracle profile ครับ

BigQuery Profile

คราวนี้ Create Connection Profile ที่เป็น BigQuery กัน

กำหนดชื่อ Profile แล้ว CREATE ได้เลย

หน้าโปรไฟล์เมื่อสร้างสำเร็จครับ

สร้าง Streams

ไปที่หน้า Strems แล้วกด CREATE STREAM

ขั้นตอนที่ 1 กำหนดชื่อ Source และ Destination

ขั้นตอนที่ 2 เลือก Source Profile เป็น Oracle ที่เราสร้าง

ขั้นตอนที่ 3 เลือก Specific Schemas and Tables เป็น Table ที่เราอัพโหลดใน EP.2 แล้ว CONTINUE ได้เลย

ขั้นตอนที่ 4 เลือก Destination Connection Profile เป็น BigQuery

ขั้นตอนที่ 5 เลือก Dataset ที่เราจะให้ข้อมูลมาลง หรือจะสร้าง Dataset ใหม่ โดยกด CREATE DATASET ซึ่งสามารถสร้างใหม่ได้ และกด CONTINUE ได้เลย

ขั้นตอนที่ 6 กด RUN VALIDATE  ถ้าผ่านหมดก็กด CREATE & START ได้เลย

กรณีมี Error บางตัวให้เราตรวจสอบว่าเรา Config Oracle เรียบร้อยไหม แต่หากเจอ Archivelog Files Configuration Failed แปลว่าเรายังไม่มี Archivelog เนื่องจากข้อมูลบน Oracle เราไม่ได้ทำอะไรเลย แค่อัพโหลดไฟล์เข้าไปเฉย ๆ ดังนั้นควรจะมี Data ที่เปลี่ยนแปลง เพื่อให้เกิด Archivelog

โดยอาจจะไปลบบาง Record แล้วรอสักพัก เพื่อให้ Oracle มีการเขียน Archive Log

เมื่อ CREATE & START แล้ว Datastream จะเริ่ม Stream ข้อมูล

กดที่ Tab: OBJECTS จะมีรายละเอียดปรากฎ

เนื่องจากเป็นข้อมูล Streaming สำหรับ Table ที่ถูกสร้างใหม่ให้รออย่างน้อย 2 นาที แต่หากเป็น Existing Table อยู่แล้วเราจะ Query ได้อย่าง Real-time ซึ่งข้อมูลจะไหลไปที่ BigQuery เป็น Table ดังภาพ

จากนั้นเราก็สามารถเอา Table นี้ไปใช้ต่อได้อย่างเก๋ ๆ แล้ว จะไปทำเป็น Dashboard ผ่าน Looker Studio หรือ Google Sheets ก็ได้ด้วย Connected Sheets หรือจะไปทำ AI ต่อด้วย BigQuery ML หรือ Vertex AI Platform ก็ได้

สำหรับการต่อยอดจากข้อมูล Oracle เราสามารถไปทำ Machine Learning Model ต่อบน BigQuery ได้ง่าย ๆ เช่นกัน ด้วยบทความนี้ที่จะสาธิตการทำ Churn Predictive Model

Summary

จนถึงท้ายสุดของซีรี่ย์การทำ Streaming ข้อมูลจาก Oracle ไม่ยากเลยใช่ไหม ใคร ๆ ก็สามารถ Integrate Data ทำ Data Warehouse ได้ง่าย ๆ ด้วย Datastream บทความหน้าจะเป็นอย่างไรต่อไป สามารถติดตามได้ที่ Blog ของ Tangerine

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

หากสนใจบริการต่าง ๆ หรือต้องการคำปรึกษาเพิ่มเติมติดต่อเรา
ได้ที่ marketing@tangerine.co.th หรือเบอร์ 02-285-5511
เพื่อรับคำตอบจากผู้เชี่ยวชาญที่ได้รับการรับรองมาตรฐานและมีประสบการณ์

Get a Free Consultation
Contact Form_EN Sources (#25)