Pages

แสดงบทความที่มีป้ายกำกับ ssis แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ ssis แสดงบทความทั้งหมด

วันเสาร์, มกราคม 28, 2555

Master Project #3 : สร้าง Master Table ด้วย SSIS


ได้กลับมานั่งทำ master project อีกครั้งหลังจากทิ้งไปพักใหญ่
แต่ต้องมาปวดหัวกับการเอา data เข้าไปใน database ครับ
เพราะเนื่องมาจากข้อมูลที่จะเอามาทำ data warehouse นั้น ค่อนข้าง confidential
จึงเป็นเหตุให้การที่จะได้ data มาพร้อมใช้งานนั้นเป็นไปได้ยากแน่นอน

สิ่งที่ได้มาก็เลยเป็น schema ที่เค้าใช้เก็บข้อมูลและตัวอย่าง data บางส่วนมาเท่านั้น ...
ปัญหาเลยบังเกิดว่า หากต้องการทำ data แบบเร็วๆ และ mass มากๆ เพื่อที่จะเอามาทำ Warehouse นั้น
การที่จะมานั่ง key ทีละ row คงเป็นอะไรที่สิ้นคิดสุดๆ แน่นอน

อีกทั้ง Tool ที่ใช้ก็ค่อนข้างแตกต่างจากชาวบ้านตรงที่ใช้ product ของ microsoft ทั้งชุด
จึงต้องใช้กำลังภายในพอสมควรครับ ... แต่ Microsoft ก็ไม่ได้ ใจร้ายถึงขนาดไม่มี tool อะไรให้เลย
สิ่งที่ Microsoft ให้มาจึงเป็น SQL Server Integration Service ( SSIS ) ซึ่งการใช้งาน SSIS นั้น
ถ้าให้ Developer มาใช้ก็อาจจะมึนๆ ไปบ้าง สำหรับคนทำงานสาย Java
เพราะด้วยความที่มันเป็น visual เอามากๆ ... เลยทำให้บางทีดูสับสนไปหมด ...
ตัวอย่าง Workflow ของ SSIS จึงเป็นลักษณะการเขียน flow chart ดังรูปด้านล่างครับ ...

จะเห็นว่า การ import data ผ่าน SSIS นั้น ถ้าเปรียบกับการเขียนโปรแกรม
ก็เหมือนเป็นการ call function ที่เค้าทำไว้ให้อยู่แล้ว  ซึ่ง task แต่ละอย่าง ที่  Microsoft มีมาให้ก็ค่อนข้าง
ที่จะครอบคลุม การ integrate ขั้นพื้นฐานไว้ให้อยู่แล้ว ...

ซึ่งการใช้งานพื้นฐานของที่ master project ใช้นั้น ไม่ค่อยซับซ้อนมากเท่าไหร่ ..
สิ่งที่ทำให้ชีวิตสบายขึ้นคือการนำข้อมูลจาก Excel ไปแปะลงใน Database ได้ทันที ...
นอกจากสะดวกแล้ว ยังทำให้ เราสามารถปรับปรุง Data เพื่อ duplicate ให้มีจำนวนมากขึ้นได้
โดยไปยุ่งกับส่วนที่เป็น SQL Command เพียงเล็กน้อย เท่านั้น ...

สรุป ...
โดยรวมแล้วการ import Data เพื่อไปทำ OLAP Cube ในการใช้งานจริง
เราสามารถ import ได้จาก Table ที่เป็น Transaction ได้โดยตรงซึ่งแน่นอนว่าจำเป็นจะต้องทำ App
หรือเขียน store procedure เพื่อใช้ในการดึงข้อมูลที่ต้องการไปใช้งานให้ได้รวดเร็ว ...
SSIS ก็เป็นอีกตัวเลือกสำหรับ SQL Server ที่ช่วยให้ชีวิตดีขึ้นเมื่อเทียบกับการที่จะต้องไปเขียน C# หรือ SQL ตรงๆ ครับ :)

เท่าที่ใช้งานมันก็ค่อนข้าง simple มาก ไม่ได้เข้าถึงระดับทำ Integration Service
ที่เป็น advance ซักเท่าไหร่นัก ... หากต้องการข้อมูลเพิ่ม msdn น่าจะเป็นคำตอบที่ดีที่สุดครับ :)