Knowledge hub công nghệ ứng dụng thực chiến tại Việt Nam Weekly digest · Đăng ký →
Data-driven business

SQL Server Integration Services (SSIS) và những điều cần biết

Trong suốt những năm qua, SQL Server Integration Services – SSIS đã tạo dựng được danh tiếng là một công cụ ETL ổn định, mạnh…

TThủy Tiên
Theo dõi
Tại sao SSIS lại quan trọng 

Trong suốt những năm qua, SQL Server Integration Services – SSIS đã tạo dựng được danh tiếng là một công cụ ETL ổn định, mạnh mẽ và nhanh chóng với sự hỗ trợ đa nguồn. Bài viết này sẽ chia sẻ tổng quan về SSIS và những điều cần biết cho những người mới bắt đầu.

Lịch sử và quá trình hình thành SSIS

SQL Server Integration Services - SSIS

SSIS là viết tắt của SQL Server Integration Services – một công cụ tích hợp và quản lý dữ liệu đi kèm với cơ sở dữ liệu Microsoft SQL Server. 

SSIS giúp lưu trữ dữ liệu linh hoạt và nhanh chóng hơn với các tính năng như 1 công cụ ETL (trích xuất lượng lớn dữ liệu từ nhiều nguồn dữ liệu trong các định dạng khác nhau, chỉnh sửa và làm sạch dữ liệu sau đó tải chúng vào kho dữ liệu đã được thiết kế). 

Các công ty hiện nay sử dụng SSIS với mục đích lưu trữ dữ liệu, trích xuất và tải dữ liệu, quản lý dữ liệu, làm sạch, hợp nhất dữ liệu, v.v. 

Trước khi có SSIS, việc di chuyển dữ liệu giữa các nơi lưu trữ thường rất khó bởi vì cấu trúc của các dữ liệu khác nhau và chúng cần phải được thay đổi trước khi di chuyển đến nơi lưu trữ mới. 

Tuy nhiên với SSIS, nó có thể trích xuất dữ liệu từ nhiều nguồn khác nhau như cơ sở dữ liệu SQL Server, tệp Excel, cơ sở dữ liệu Oracle và DB2,… để đưa đến đích một cách dễ dàng. 

Ngoài ra, SSIS cũng bao gồm các công cụ đồ họa và trình hướng dẫn để thực hiện các chức năng của quy trình công việc như gửi thư email, hoạt động truyền tải tập tin, trích xuất nguồn dữ liệu và truyền tải dữ liệu đến đích.

>> Xem thêm hướng dẫn xây dựng kho dữ liệu

Chúng ta hãy cùng tìm hiểu lịch sử và quá trình hình thành của SSIS dưới đây:

  • Đầu tiên, từ năm 1989 đến năm 2000, các phiên bản SQL lần lượt là SQL Server 7 và 2000 ra đời đi kèm với Dịch vụ chuyển đổi dữ liệu – DST (Data Transformation Services). DST có thể được cho là 1 phiên bản lỗi thời của SSIS.
  • Đến năm 2005, các nhóm phát triển của Microsoft đã quyết định thay thế DST bằng SSIS thay vì chỉ nâng cấp và sửa đổi nó. Đây có thể được xem là 1 sự cải tiến mạnh mẽ và cái tên SQL Server Integration Services chính thức ra đời.  
  • Sau đó đến với SQL Server 2008, nhiều cải tiến hiệu suất đã được thực hiện cho SSIS và các nguồn mới cũng được ra mắt. 
  • Tiếp tục là phiên bản SQL Server 2012, đây là bản phát hành lớn nhất và đại diện cho SSIS. SSIS 2012 giúp cấu hình các gói dễ dàng hơn và nó đi kèm với nhiều tiện ích quản lý và lưu trữ tập trung vào các danh mục. Chúng ta sẽ đi sâu hơn vào các chủ đề đó ở phần sau trong bài chia sẻ này.
  • SQL Server 2014 là 1 phiên bản không có nhiều sự thay đổi lớn so với bản cũ tuy nhiên một số nguồn mới đã được thêm vào. Chúng ta có thể sử dụng chúng bằng cách tải xuống riêng biệt qua kênh CodePlex (một trang web mã nguồn mở) hoặc thông qua Gói tính năng SQL Server. 

Một trong những ví dụ cho nó là gói tính năng Azure (để kết nối với các nguồn và đối tượng đám mây) và bộ phân phối dữ liệu cân bằng (để chia luồng dữ liệu của bạn thành nhiều đường ống).

  • Trong SQL Server 2016, ở phiên bản này bạn có thể triển khai toàn bộ dự án thay vì các gói riêng lẻ. Bên cạnh đó, có các nguồn bổ sung – đặc biệt là các nguồn dữ liệu lớn và đám mây – và phần danh mục cũng có một số sự thay đổi.

Tại sao SSIS lại quan trọng 

Một trong những tính năng vượt trội nhất của SSIS là khả năng trích xuất và đồng bộ dữ liệu nhanh chóng và linh hoạt. SSIS cung cấp một nền tảng thuận tiện để di chuyển dữ liệu một cách dễ dàng từ nguồn này sang nguồn khác. 

Tại sao SSIS lại quan trọng 

SSIS giúp bạn trích xuất dữ liệu từ nhiều nguồn khác nhau như cơ sở dữ liệu SQL, cơ sở dữ liệu Qracle, cơ sở dữ liệu DB2 và các tệp Micrisoft Excel lên kho dữ liệu sau đó sắp xếp và đồng bộ chúng. Nó có thể tải hàng triệu tệp dữ liệu từ nguồn này sang nguồn khác chỉ trong vài phút

Ngoài ra một trong những lý do tại sao SSIS được sử dụng rộng rãi là do tính linh hoạt của nó. SSIS hỗ trợ nhiều loại cơ sở dữ liệu và đồ họa giao diện người dùng (GUI) đơn giản giúp người dùng mới hoàn thành các tác vụ chuyển đổi và lưu trữ dữ liệu vô cùng dễ dàng. Người thể tự thiết kế một quy trình ETL (Trích xuất – biến đổi – tải) như ý muốn.

Các thành phần chính SSIS

Có một số thành phần cốt lõi tạo nên SSIS GUI (Đồ họa giao diện người dùng) trong cấu trúc SSIS:

  • Control Flow (Luồng điều khiển) – Luồng điều khiển là các phần của một gói bao gồm cấu trúc, nhiệm vụ và mức độ ưu tiên.
  • Data Flow (Luồng dữ liệu) – Trong SSIS chúng ta có thể trích xuất và chuyển đổi dữ liệu từ nhiều nguồn khác nhau trên thiết bị. Các thành phần của 1 luồng dữ liệu bao gồm nguồn, biến đổi và đích.
  • Event Handlers (Xử lý sự kiện) – Tạo nhiệm vụ sự kiện tại các thời điểm như gửi tin nhắn, email.
  • Package Explorer – Cung cấp 1 giao diện người dùng đồng bộ cho tất cả các gói.

Control Flow – Luồng điều khiển

Control Flow là nơi bạn kiểm soát việc thực thi các nhiệm vụ bên trong một gói và sắp xếp thứ tự thực hiện các nhiệm vụ đó. Trong SSIS, luồng điều khiển là một phần của một gói và cho phép người dùng thực thi các nhiệm vụ khác nhau.

Các loại nhiệm vụ mà bạn có thể thực thi bao gồm nhiệm vụ SQL, nhiệm vụ luồng dữ liệu, nhiệm vụ gói, nhiệm vụ tập lệnh, nhiệm vụ gửi thư, v.v. Luồng điều khiển cũng bao gồm các ràng buộc về mức độ ưu tiên thứ tự hoàn thành các nhiệm vụ.

Data Flow – Luồng dữ liệu

Ở đây ta hiểu luồng dữ liệu nơi ta đổ dữ liệu từ các cổng dữ liệu tới đích trong quá trình ETL nghĩa là bạn lấy dữ liệu từ một nguồn, biến đổi nó và đặt nó vào một đích khác.

Có ba thành phần tạo nên luồng dữ liệu:

  • Nguồn – Trích xuất dữ liệu từ các nguồn bao gồm tệp, cơ sở dữ liệu và các vị trí khác.
  • Chuyển đổi – Xử lý dữ liệu sau khi nó đã được trích xuất từ ​​nguồn.
  • Đích đến – Ghi dữ liệu vào đích cuối cùng của nó.

Đối với Luồng dữ liệu, bạn hoàn toàn có thể chọn các phép biến đổi dữ liệu mà bạn muốn để thực hiện một chu trình ETL đưa dữ liệu về đích đến cuối cùng của nó theo ý bạn. 

Các tác vụ chính có trong Luồng dữ liệu bao gồm làm sạch dữ liệu, hợp nhất, sắp xếp, kết hợp và phân phối dữ liệu. Những tác vụ này giúp bạn có thể sử dụng dữ liệu một cách dễ dàng và thuận tiện.

Event Handlers – Trình xử lý sự kiện

Các trình xử lý sự kiện cũng tương tự như các gói chúng cũng có các tác vụ và vùng chứa. Bạn có thể tạo 1 trình xử lý sự kiện tùy chỉnh trong tab Event Handlers và sau đó thêm chúng vào một gói.

Các tệp thực thi tạo ra các sự kiện tại thời điểm chạy và bạn có thể sử dụng trình xử lý sự kiện để thực hiện các nhiệm vụ theo thông báo. Các nhiệm vụ của trình xử lý sự kiện bao gồm dọn dẹp kho lưu trữ dữ liệu tạm thời, truy xuất thông tin hệ thống, làm mới dữ liệu trong bảng và gửi email để thông báo cho bạn khi có lỗi hoặc khi tác vụ không thành công.

Package Explorer – Khám phá gói

Trong Package Explorer, bạn có thể xem tất cả các tính năng của một gói bao gồm trình quản lý kết nối, trình cung cấp lượt truy cập, tệp thực thi, ràng buộc ưu tiên, tham số, trình xử lý sự kiện, biến, nhiệm vụ và vùng chứa. Package Explorer sẽ cho phép bạn kiểm tra cấu trúc của một gói bao gồm những gì từ đó bạn có thể dễ dàng lựa chọn, thay đổi, sắp xếp các nhiệm vụ gói.

SSIS Packages

SQL Server Integration Services - SSIS Package

Một trong những nhiệm vụ cơ bản bạn sẽ phải học khi sử dụng SSIS là cách tạo một gói. Gói là tập hợp các kết nối, luồng điều khiển, luồng dữ liệu, trình xử lý sự kiện, tham số và cấu hình mà bạn sử dụng để xử lý dữ liệu. Nội dung của một gói có thể được chia thành ba thành phần:

  • Luồng điều khiển (Nhiệm vụ và vùng chứa) – Luồng điều khiển bao gồm các nhiệm vụ và vùng chứa thực thi khi gói được chạy.
  • Luồng dữ liệu (Nguồn và đích dữ liệu) – Luồng dữ liệu xác định cách dữ liệu được xử lý và chuyển đổi từ nguồn sang đích.
  • Trình quản lý kết nối – Liên kết giữa gói và nguồn dữ liệu xác định chuỗi kết nối mà các thành phần khác của gói sử dụng để tương tác với dữ liệu nguồn.

Nhiệm vụ của SSIS

Trong SSIS, bạn có thể thêm các tác vụ vào luồng điều khiển. Có một loạt các tác vụ khác nhau mà bạn có thể lựa chọn đưa vào cấu hình của gói. Trong đó một số nhiệm vụ chính bạn có thể sử dụng là:

  • Thực thi tác vụ SQL – Cho phép bạn chạy một hoặc nhiều câu lệnh SQL từ một gói.
  • Nhiệm vụ luồng dữ liệu – Trích xuất, chuyển đổi và tải dữ liệu từ một nguồn duy nhất hoặc nhiều nguồn. Làm sạch và sửa đổi dữ liệu khi chuyển tiếp.
  • Nhiệm vụ xử lý dịch vụ phân tích– Các đối tượng của Dịch vụ phân tích xử lý (mô hình bảng, hình khối, kích thước, v.v.). Xử lý một hoặc nhiều đối tượng cùng một lúc.
  • Thực hiện nhiệm vụ gói – Cho phép một gói chạy một gói khác như một phần của quy trình làm việc. Thường được sử dụng để chia nhỏ các quy trình công việc phức tạp thành nhiều gói.
  • Thực hiện nhiệm vụ quy trình – Được sử dụng để chạy một ứng dụng hoặc tệp hàng loạt như một phần của gói SSIS.
  • Nhiệm vụ FTP – File Transfer Protocol (Giao thức truyền tải tập tin)  – Tải xuống và tải lên các tệp dữ liệu bằng FTP. Đồng thời cho phép người dùng sao chép tệp vào thư mục đích.
  • Nhiệm vụ tập lệnh – Nhập mã để thực hiện một tác vụ không có trong SSIS. Có thể kết hợp nhiều nhiệm vụ trong một tập lệnh.
  • Nhiệm vụ gửi thư – Gửi email cho người dùng nếu một quy trình gói thành công, không thành công hoặc một sự kiện (ví dụ: nếu một bản sao lưu cơ sở dữ liệu không thành công) diễn ra.
  • Nhiệm vụ XML – Extensible Markup Language (Truyền dữ liệu và mô tả những loại dữ liệu khác nhau) – Truy cập, hợp nhất, xác thực và sửa đổi các tệp XML. Có thể được sử dụng để hợp nhất nhiều nguồn dữ liệu XML thành một tài liệu.

Lợi ích và bất cập của SSIS

Giống như bất kỳ công cụ nào khác, SSIS có những ưu điểm và nhược điểm riêng như một công cụ ETL.Tuy nhiên, điều này sẽ phụ thuộc phần nhiều vào cách bạn muốn sử dụng công cụ này như thế nào trong tổ chức của mình.

Lợi ích SSIS

  • Linh hoạt

SSIS mang một tính linh hoạt cao giống như một công cụ ETL hay một công cụ chuyển đổi dữ liệu. Người dùng có thể nhập dữ liệu từ các nguồn dữ liệu không đồng nhất và sau đó biến đổi dữ liệu theo cách họ thấy phù hợp. Các tùy chọn cấu hình như luồng điều khiển và luồng dữ liệu cho phép người dùng kiểm soát toàn bộ quy trình đó.

  • Dễ sử dụng

Việc kết nối giao diện người dùng với cấu hình SSIS vô cùng đơn giản. Mọi thứ bạn cần đều dễ dàng tìm thấy và bạn có thể nhấp vào các tab luồng điều khiển và luồng dữ liệu mà không cần tìm kiếm lâu. Nếu bạn không hiểu rõ về cấu trúc, bạn có thể kiểm tra thông qua Package Explorer.

  • Tạo tài liệu

SSIS cung cấp một số tính năng cho phép bạn tạo tài liệu mới khi bạn chuyển đổi dữ liệu ban đầu. Bạn có thể thêm các gói có chú thích, luồng điều khiển và luồng dữ liệu. Trình viết mô tả cho các thành phần trong 1 cấu hình SSIS cho phép bạn ghi lại những thao tác mà bạn thực hiện.

Những bất cập đáng nói khi dùng SSIS

  • Hạn chế trong hỗ trợ hệ điều hành

Một trong những hạn chế lớn nhất của SSIS là nó chỉ hỗ trợ Microsoft Windows. Ngay cả khi đã tích hợp thêm nhiều mã nguồn thì việc không hỗ trợ các hệ điều hành khác cũng gây nên sự hạn chế khi muốn trích xuất và tích hợp dữ liệu từ nhiều nguồn khác nhau không phải của Windows. 

Tuy nhiên nếu bạn chủ yếu làm việc trên nền tảng Microsoft Windows thì nhược điểm này sẽ ít đáng kể hơn.

  • Thiếu các tùy chọn tích hợp

Việc chỉ hỗ trợ hệ điều hành Windows gây khó khăn trong việc tích hợp SSIS với các công cụ thuộc các hệ điều hành khác. Mặc dù SSIS đã cung cấp phần mở rộng tùy chọn cho phép bạn khắc phục phần nào sự bất tiện này nhưng nó khó có thể so với tính linh hoạt của các công cụ mã nguồn mở sẵn như Python. 

SSIS không phải là 1 dịch vụ phù hợp với mọi hệ điều hành, đặc biệt nếu bạn không muốn bị giới hạn trong các dịch vụ của Windows.

Khi nào chúng ta cần dùng SSIS

Nếu bạn đang tìm cách đưa dữ liệu từ các nguồn đến một đích thông qua quy trình ETL thì SSIS là thứ bắt buộc phải có. Trích xuất dữ liệu từ các nguồn sau đó chuyển đổi dữ liệu đưa chúng tập chung vào 1 đích có thể nói là khả năng vượt trội của SSIS. Phần mềm này phù hợp cho các công ty bất kể họ muốn tích hợp một hay nhiều nguồn dữ liệu.

Mặc dù việc sử dụng SQL Server Integration Services (SSIS) để tạo ra các tác vụ làm sạch và xử lý dữ liệu ban đầu có những khó khăn nhưng lợi ích của việc áp dụng công cụ này vào quy trình ETL cũng là rất lớn. Dành thời gian để tìm hiểu về cách ứng dụng SSIS sẽ giúp bạn chuẩn bị được các bộ dữ liệu nhanh chóng khi bạn cần. Bạn có thể xem qua khóa học data analysis cùng Cole với 3 cấp độ Intern, Executive và Specialist.

Tìm hiểu thêm: Khóa học Data Analyst tại Cole.vn

Khóa học Data Science tại Cole.vn

T
Tác giả Cole Blog

Thủy Tiên

Viết về công nghệ, dữ liệu và định hướng nghề thực chiến.

Tác giả trên Cole Blog, phụ trách các bài viết giúp người đi làm học nhanh hơn, hiểu rõ hơn và áp dụng công nghệ vào công việc hiệu quả hơn.

18bài viết12.4kfollowers96klượt đọc

Bài viết khác từ tác giả này

Thảo luận

Đăng nhập để bình luận
Gửi bình luận
C
Cole BlogGợi ý thảo luận

Anh có thể đặt câu hỏi, góp ý hoặc lưu lại insight quan trọng sau khi đọc bài.