Import File vào Database Dùng SSIS

Discussion in 'Tableau' started by tableau, Aug 1, 2017.

  1. tableau

    tableau Well-Known Member

    SQL Server Integration Service (SSIS) được đưa vào từ bản 2005, là phiên bản tiếp theo của DTS trong SQL Server 2000 trở về trước. Đây là công cụ dùng để thực hiện các tác vụ tích hợp dữ liệu (Data integration), là thành phần chính trong các ứng dụng data warehouse. Nói nôm na là nó gom dữ liệu từ các nguồn khác nhau và tổ chức lại theo cách thích hợp cho các mục đích báo cáo nhất định. Bài viết này giới thiệu cách xây dựng 1 ứng dụng đơn giản là import 1 file dữ liệu ở dạng text vào database.

    - Giả sử đây là file dữ liệu bán hàng hàng ngày được lưu tại C:\Users\BSD\Desktop\Sale.txt và có cấu trúc như sau:

    Ngay, TenSP, SL, Gia
    4/25/2012, Lolita, 14, 50000
    4/25/2012, Ai va Ky, 9, 60000
    4/26/2012, Tieu su Steve Jobs,5, 75000
    Trước hết là tạo database và bảng để chứa dữ liệu này:

    USE master
    GO
    CREATEDATABASE SaleImport
    GO
    USE SaleImport
    GO
    CREATETABLE dbo.Sale(
    Ngay DATE NULL,
    TenSP VARCHAR(100)NULL,
    SL INT NULL,
    Gia INT NULL
    )


    Để tạo ứng dụng SSIS bạn dùng Visual Studio. Sau khi mở Visual Studio và tạo new project, ở cửa sổ mở ra bạn thực hiện các lựa chọn như trong hình dưới:
    upload_2017-8-1_15-0-53.png

    Ở đây mình sử dụng Visual Studio 2015 và SQL SERVER 2016

    Một project mới sẽ được tạo và một file package.dtsx được mở sẵn. SSIS được tổ chức thành các file .dtsx và thường được gọi là các SSIS package. Vì các SSIS package đều liên quan đến việc di chuyển dữ liệu từ môt nơi (nguồn) đến một nơi khác (đích) nên thành phần cơ bản của mỗi SSIS package bao gồm:
    - Connection (kết nối) đến nguồn
    - Connection đến đích
    - Data Flow Task là tác vụ dẫn dữ liệu từ nguồn đến đích

    Ta sẽ lần lượt tạo các thành phần này cho package ở trên.

    Tạo connection đến nguồn: Nguồn ở đây là file text, nên ở ô Connection managers bạn bấm phải chuột và chọn “New Flat File Connection…”:

    upload_2017-8-1_15-1-15.png

    Ở cửa sổ hiện ra, bạn nhập vào như hình dưới:

    upload_2017-8-1_15-1-31.png

    Tạo connection đến đích: Đích ở đây là SQL Server database, bạn sẽ kết nối vào thông qua OLE DB, nên lần này nên ở ô Connection managers bạn bấm phải chuột và chọn “New OLE DB Connection…”:

    upload_2017-8-1_15-1-48.png

    Ở cửa sổ tiếp theo bạn thực hiện các lựa chọn như hình dưới (server tôi đang dùng có tên là devdbbi1, bạn cần đánh tên server của bạn):

    upload_2017-8-1_15-2-1.png

    Tạo Data Flow Task: Ở cột Toolbox bạn chọn “Data Flow Task” rồi kéo và thả vào trong lòng package:

    upload_2017-8-1_15-2-12.png
    Sau đó bạn nhắp đúp vào hộp “Data Flow Task” trong package để mở nó ra. Một trang trắng sẽ hiện ra và cột Toolbox bên trái cũng chỉ hiện các chức năng liên quan đến data flow task. Ở đây bạn cần tạo hai thứ: data flow source và data flow destination tương ứng với hai connection bạn tạo ở trên.
    Tạo data flow source: Ở cột Toolbox bạn kéo “Flat File Source” và thả vào lòng trang bên phải. Sau đó bạn nhắp đúp để mở nó ra như sau:
    upload_2017-8-1_15-2-28.png
    upload_2017-8-1_15-2-33.png

    Tạo data flow destination: Ở cột Toolbox bạn kéo “OLE DB Destination” và thả vào lòng trang bên phải. Tiếp đến bạn dùng chuột nối mũi tên xanh từ hộp “Flat File Source” vào hộp “OLE DB Destination”:

    upload_2017-8-1_15-2-50.png

    Sau đó bạn nhắp đúp vào hộp “OLE DB Destination” để cấu hình nó:

    upload_2017-8-1_15-3-4.png

    Vậy là package đã được tạo xong. Bạn có thể chạy và khi kết thúc thành công các hộp sẽ chuyển thành màu xanh thế này:
    Bạn kiểm tra bảng trong SaleImport database sẽ thấy dữ liệu đã được chuyển vào.
    Có thể bạn sẽ hỏi, tại sao phải cần đến SSIS để import dữ liệu? Việc này có thể làm được bằng giao diện trong Management Studio, hoặc dùng BULK INSERT. Xin thưa SSIS có thể làm được rất nhiều việc mà BULK INSERT hoặc giao diện không làm được. SSIS rất linh hoạt và mạnh mẽ cho các ứng dụng kiểu này, một vài ví dụ:
    - Nó có thể đồng thời import dữ liệu từ nhiều nguồn khác nhau: text, xml, các database khác.
    - Nó cũng có thể download file từ ftp hoặc internet.
    - Trong quá trình import nó có khả năng thực hiện rất nhiều các tác vụ xử lý dữ liệu (transformation) trước khi nhập vào database
     
  2. Loading...


Share This Page