Chào mừng đến với BIS Đăng nhập | Đăng ký | Trợ giúp
trong Tìm kiếm

Giải pháp tích hợp dữ liệu doanh nghiệp với SQL Server Integration Service (ETL)

Bài cuối 09-22-2017 11:40 AM của chucnv. 0 trả lời.
Trang 1 trong số 1 (1 nội dung)
Sắp xếp bài viết: Trước Tiếp theo
  • 09-22-2017 11:40 AM

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 9,460

    Giải pháp tích hợp dữ liệu doanh nghiệp với SQL Server Integration Service (ETL)

    Triển khai ETL Project với SQL Server Integration Service

    chuc1803@gmail.com

    Khó khăn lớn nhất trong việc sử dụng, quản lý và khai thác dữ liệu trong các doanh nghiệp hiện nay xuất phát từ vấn đề không thuần nhất của dữ liệu trong việc tổ chức lưu trữ (khác định dạng); sự khác nhau về qui ước, mã hóa của dữ liệu của các ứng dụng; sự dư thừa do lưu trữ nhiều nơi, trùng lặp dẫn đến sự thiếu nhất quán và xung đột dữ liệu; việc sử dụng các hệ quản trị cơ sở dữ liệu khác nhau; sự phân tán của dữ liệu… Để giải quyết vấn đề này, trong lĩnh vực kho dữ liệu người ta quan tâm đến kỹ thuật ETL.

    ETL (Extract, Transform, Load) là bước rất quan trọng trong quá trình xây dựng kho dữ liệu. Bao gồm 3 bước chính là trích xuất dữ liệu (Extraction) từ nhiều nguồn khác nhau (ERP, CRM, Weblogs, SCM…); Chuyển đổi dữ liệu (Transformation) cho phù hợp với yêu cầu sử dụng của người dùng; Nạp dữ liệu vào kho dữ liệu (Loading).

    Qui trình triển khai ETL như hình sau:

    Bài viết này giới thiệu cách triển khai một ETL Project bằng công cụ SSIS.

    Kịch bản triển khai:

    Data Source: File CSV dữ liệu về nhân viên như sau


     WorkFlow cho tiến trình ETL như sau:


    1.     1. Load dữ liệu từ data Source (flat file)

    2.     2. Data Conversion: Chuyển kiểu dữ liệu (Data Type). Cụ thể các kiểu dữ liệu chuyển đổi cho các cột như sau: Age, Salary: Number; Gender: Bit; HireDate: Date

    3.   3. Derived Column: Xây dựng các thuộc tính dẫn suất. Trong ví dụ này tính thêm cột SalVND bằng cách lấy Salary*20000

    4.    4. Conditional Split: Chia dữ liệu thành 2 bảng để Load vào Data warehouse. Một bảng chứa các nhân viên thuê từ tháng 5 năm 2015 trở về trước và một bảng chứa các nhân viên thuê sau tháng 5 năm 2015.

    Sau đây trình bày các bước sử dụng SSIS để thực hiện ETL theo kịch bản trên

    Bước 1. Tạo một Integration Service Project có tên ETL_PROJECT

    Bước 2: Tạo một Data Flow Task (kéo thả từ SSIS Toolbox)

    Bước 3. Kết nối với nguồn dữ liệu

    Double Click vào Icon Data Flow Task, chọn Source Assistant, chọn Flat file, chọn new, OK, chọn file CSV

    Bước 4. Chuyển đổi dữ liệu (Data Conversion): Chuyển đổi Data Type cho các thuộc tính Age, Gender, Salary và HireDate như sau:


    Bước 5.  Tính Thêm cột SalVND từ cột Salary. Sử dụng Deriverd Column

    Bước 6.  Chia dữ liệu thành 2 bảng chứa các nhân viên được thuê trước và sau tháng 05/2015 (Conditional Split)

    Bước 7. Load Dữ liệu vào Destination (Destination Assistant)


    Tạo mới bảng dữ liệu để lưu trữ: Table PreHireDateMay2015


    Mapping các cột giữa Source và Destination


    Tạo bảng PostHireDateMay2015


    Mapping các cột giữa Source và Destination


    Run ETL Project


    Kết quả sau khi Load dữ liệu vào Kho dữ liệu


    ETL Project để Tổng hợp dữ liệu theo phòng ban:

    Đếm số nhân viên, tuổi trung bình, lương cao nhất, thấp nhất, trung bình của mỗi phòng ban và lưu vào Kho dữ liệu.

    Workflow ETL như sau


    Thiết lập các thống kê dữ liệu theo yêu cầu


    Kết quả sau Khi Load dữ liệu vào Kho


     ETL tích hợp dữ liệu từ nhiều nguồn và Load vào Kho

    Giả sử có dữ liệu về nhân viên được lưu trữ ở 2 nguồn là file CSV (gồm 40 nhân viên) và File Text (gồm 5 nhân viên), ETL project này giúp gộp dữ liệu từ 2 file này và lưu vào kho dữ liệu với SQL SERVER.

    File TXT như sau:

    Workflow cho ETL như sau:


    ETL Project sử dụng MultiCast để đọc dữ liệu từ file CSV và Load vào các định dạng khác như Flat file (txt), SQL Server và Raw file

     

     

    Từ khóa đại diện: , , , ,
    • Điểm chủ đề: 20
Trang 1 trong số 1 (1 nội dung)
Powered by Community Server (Commercial Edition), by Telligent Systems