ODI : Introduction to ODI Data Transform

ODI : Introduction to ODI Data Transform

พบกันอีกเช่นเคยวันนี้มาดึกหน่อยเพิ่งจะว่างจากงานครับ รู้สึกคิดถึงผู้อ่านที่เข้ามาเยี่ยมชม blog ครับ
เลยขอแวะเข้ามาทักทาย แล้วก็มีของฝากสักหน่อย วันนี้อาจจะเปลี่ยนจากแนว admin, tips, มาเป็น
เรื่องของ Product ซึ่งวันนี้จะมานำเสนอเรื่องของ “Data Transform” or “Data Intergation” Product ครับ

คำ 2 คำนี้มีความหมายยังไง โดยปกติแล้วถ้าเราเป็นคนทำงานทางด้านฐานข้อมูล หรือทางด้านข้อมูลอยู่ เราจะมีโอกาส
พบกับงานที่ต้องมีการส่งถ่าย (transfer) ระหว่าง Source <-> Destination ซึ่งอาจเป็นระหว่าง

1. OS File to OS File ( เช่น copy, ftp, scp, etc )
2. OS File to Database ( เช่น load, import, etc )
3. Database to Database ( เช่น create via database link , etc )
4. Database to OS File
5. etc,

จากตัวอย่างถ้า Source / Destination ไม่เหมือนกัน เช่น Database <-> OS, หรือ Database คนละยี่ห้อกัน
จะเกิดอุปสรรคขึ้นมาทันที เพราะว่าเราไม่สามารถใช้คำสั่ง copy os-file ไปใส่ database ได้ หรือไม่สามารถใช้คำสั่ง
“create table … as select * from ….@dblink..” ระหว่าง oracle <-> informix ได้

ดังนั้นจึงเกิดคำว่า “Data Transform” นั่นคือการแปลงข้อมูลจากต้นทางไปยังปลายทาง โดยปกติวิธีการที่ถือว่าเป็น
พื้นฐานและใช้ได้กับฐานข้อมูลทั่วไปคือ “การดึงข้อมูล (export) ออกมาในรูปแบบของ text file” จากนั้นจึงค่อยทำการนำเข้า (import) ไปยังปลายทาง เพราะโดยปกติฐานข้อมูลทุกยี่ห้อจะมีวิธีการนำเข้าของตัวเองอยู่แล้ว

คราวนี้ถ้าสมมติว่า เราต้องส่งข้อมูลจาก oracle ไปยัง MySQL, SQL Server, Informix, DB2, Fox Pro, MS Access, etc เป็นประจำล่ะ เราจะทำยังไงดี อุปสรรคที่ 2 เกิดขึ้นทันที นั่นคือ เราต้องเรียนรู้วิธีการนำเข้า (import) ของทุกยี่ห้อ databases ที่เราต้องเชื่อมต่อ แต่คงไม่เท่านั้นคงต้องเรียนรู้วิธีการดูแลระบบฐานข้อมูลเบื้องต้นด้วย เช่น installation, stop/start, query, เป็นต้น

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

ซึ่งวันนี้ผมมีเครื่องมือมาแนะนำจากประสบการณ์ที่เคยลองใช้เครื่องมือในลักษณะนี้มาสัก 3 ค่าย พบว่าตัวนี้ใช้งานง่ายสุด
และก็ใช้งานได้ดีครับ เครื่องมือที่ว่านี้คือ “Oracle Data Integrator (ODI)” (และนี่คือที่มาของคำที่ 2 “Data Integrator”)

Application ตัวนี้ oracle ไป take over มาและก็มีการปรับปรุงผลิตภัณท์ให้เข้ากับผลิตภัณท์อื่นๆด้วย คุณสมบัติเด่นๆ
ของ ODI เท่าที่ผมได้สัมผัสมาเลยคือ

1. Too many database supports
สามารถเชื่อมต่อฐานข้อมูลได้เยอะมาก (จนมีบางคนบอกว่าเชื่อมได้ทุกฐานข้อมูลที่มีในโลกนี้) ทำไมถึงกล้าพูดแบบนี้ล่ะ เพราะว่าจริงๆแล้วการเชื่อมต่อของ ODI ก็ใช้หลักการเดียวกับ application ทั่วไป คือเรียกใช้ database driver ไม่ว่าจะเป็น odbc, jdbc, etc เพราะฉะนั้นจึงสามารถเชื่อมต่อได้หมด

2. E-LT Style
E-LT (Extract then Load & Transform) ซึ่งเป็นรูปแบบการ transform ที่มีการปรับปรุงเพิ่มขึ้นจาก
ETL (Extract, Transform, Load) ทำให้มีประสิทธิภาพในการแปลงข้อมูลส่งถ่ายระหว่างกัน

3. Near Realtime Replication
โดยปกติความถี่ในการนำส่งข้อมูลทั่วๆไปจะใช้วิธีการตั้งเวลาเช่น Hourly, Daily, Monthly, etc หรือตั้งเป็นเวลา ซึ่งส่วนใหญ่แล้วจะตั้งได้เร็วที่สุดคือ 1 นาที แล้วโปรแกรมก็จะตื่นมาทำงานตามที่เรากำหนดไว้
แต่ในเวอร์ชันปัจจุบันของ ODI มีคุณสมบัติใหม่เพิ่มขึ้น เรียกว่า “Data Log Minor” (ถ้าผมจำไม่ผิดนะ) เฉพาะฐานข้อมูล Oracle คือแทนที่จะเข้าไป query จากตารางแล้วตัดข้อมูลตามเงื่อนไขไปส่ง ก็จะเข้าไปอ่านจาก log file ของ Oracle เมื่อพบว่ามีการเปลี่ยนแปลงก็จะทำการนำส่งให้ ซึ่งใช้ feature Oralce Stream ทำให้ข้อมูลที่ปลายทางมีความใกล้เคียงกับต้นทางมากที่สุดด้วย ( แต่ในส่วนของ network ก็ต้องรองรับด้วยนะ)

4. friendly and easy
เนื่องจากผมเคยลองใช้ ETL tools ของยี่ห้ออื่นมาก่อน ด้วยหลักการเหมือนกัน แต่การสร้าง Business process ง่ายกว่า ทำให้เราสามารถนำมาใช้ได้สะดวกรวดเร็วขึ้น

และอื่นๆก็สุดแล้วแต่ผู้ใช้ครับ ซึ่งก็ทำให้เราสามารถทำงานได้ง่ายขึ้น ปัจจุบันผมใช้ ODI เชื่อมต่อฐานข้อมูล Oracle, Informix, MySQL, SQL Server 2005, Text file และนี่คือสาเหตุที่ผมต้องหาตัวช่วย เพราะว่าผมไม่สามารถเรียนรู้ฐานข้อมูลทั้งหมดนี้ในเวลาเดียวกันได้ครับ 😛

Leave a Reply

Your email address will not be published.