SSIS (Integration service) ตอนที่ 1 พื้นฐาน SSIS และ ETL

SSIS (Integration service) เป็น Business Intelligent Tools ของ Microsoft ที่ออกมาเพื่อใช้งานในการจัดการข้อมูลในรูปแบบ ETL

ซึ่ง ETL คืออะไร
E – Extract การนำข้อมูลออกมาจาก Source database ซึ่งมาจากแหล่งเดียวหรือหลายแหล่ง
T – Transform การแก้ไขและเปลี่ยนแปลงข้อมูลให้เหมาะสมที่จะในไปใช้งานต่อไป
L – Load การเอาข้อมูลไปเก็บที่ปลายทาง (destination) แหล่งเดียวหรือแยกเป็นหลายๆแหล่ง

โดย Business Intelligent Tools ของ Microsoft นั้นประกอบด้วย 3 ตัวได้แก่

SSIS2

Integration service :: เป็น ETL Tool
Analysis service :: เป็น Tool ที่ใช้วิเคราะห์ข้อมูล ใช้ทำ Data warehouse
Reporting service :: เป็น Tool ที่ใช้ในการสร้างรายงาน

 

ก่อนที่จะมี Tools ที่ใช้ทำ ETL (ซึ่งมีหลายตัว หลายค่าย ทั้งฟรีและไม่ฟรี)
เราต้องลำบากในการจัดการข้อมูลดังรูป

unSSIS

ที่มาของภาพ
คือต้องจัดการข้อมูลจาก Source ต่างๆลงใน Database แยกเป็นแต่ละ Source กันไปแล้วค่อยมาทำการ Cleaning data ที่หลังแล้วค่อยไปรวมฐานข้อมูลอีกครั้งจึงจะเอาข้อมูลไปใช้งานได้ ซึ่งจะทำให้การทำงานค่อนข้างยุ่งยากและซับซ้อนและต้องทำซ้ำๆหลายๆครั้ง

 

SSIS ทำงานอย่างไร

SSIS1

ที่มาของภาพ

เตรียมข้อมูลให้พร้อมที่จะ load เข้าไปเก็บในฐานข้อมูล มี audit data เพื่อทำให้ตรวจสอบได้ว่าข้อมูลที่ได้มาได้มากจากไหน เมื่อไร process ไหนเป็นผู้จัดการข้อมูล สามารถทำ data cleaning ได้ก่อนที่จะนำข้อมูลเข้าสู่ฐานข้อมูล สามารถใช้ได้กับข้อมูลที่ใหญ่และซับซ้อนได้เป็นอย่างดี

SSIS ประกอบด้วย

  • Package ไฟล์ของ SSIS นามสกุล *.dtsx
  • Control flow คือ Workflow engine สำหรับจัดการ tasks และ Containers ที่สั่ง Execute

 

Control Flow

  • เป็น Workflow engine โดยมี Objects ใน Control Flow ดังนี้
    -Control flow tasks คือ การเนินการของ Workflow Object
    -Control flow Containers เป็น Grouping tasks กับ Tasks หรือ Containers อื่นๆ
    -Precedence constraints ให้ติดต่อ Tasks และ Containers และ กำหนดลำดับการ execute และ Precedence

สำหรับจัดการ tasks และ Containers ที่สั่ง Execute

 

Data flow

  • ควบคุมการการประมวลผลข้อมูลต่างๆ
  • Transform data จากแหล่งข้อมูล (Sources) ไปยัง ปลายทางข้อมูล (Destinations)

Data flow task ยอดนิยมมีดังนี้

  1. Aggregate
  2. Conditional Split
  3. Data Conversion
  4. Derived Column
  5. Lookup
  6. Merge
  7. Merge Join
  8. Multicast
  9. Sort
  10. Union All

ไว้จะลงรายละเอียดในแต่ละ task กันในตอนต่อๆไปนะครับ สำหรับตอนที่ 1 นี้ก็ขอจบไว้เท่านี้ก่อนครับ