Breaking News
Loading...
25/07/2013

ETL - Khi nào sử dụng T-SQL - Khi nào sử dụng SSIS

Một trong những chủ đề thường được nhóm DBA của công ty tôi trao đổi là so sánh performance của T-SQL và SSIS, hay khi nào thì dùng T-SQL, khi nào thì dùng SSIS trong các dự án về Business Intelligence cần ETL

Câu trả lời là tùy yêu cầu nghiệp vụ và tùy vào thiết kế. Qua tìm hiểu, tôi chia sẻ vài yếu tố tác động đến điều này như:


  • Nếu chỉ xét tới Performance, và sau khi nghiên cứu yêu cầu nghiệp vụ, kết luận rằng ta có thể làm mọi thứ không nhiều khó khăn với T-SQL hay SSIS, thì ta nên chọn T-SQL.
  • Nếu ta cần kết hợp dữ liệu từ nhiều nguồn thành một tập kết quả duy nhất, sau đó mới xử lý tiếp, thì SSIS là một lựa chọn đúng đắn, SSIS có thể dễ dàng làm điều này và kết nối đến SQL Server, Oracle, hay các dạng file như .txt, .csv hay Excel. Còn nếu ta làm điều này với T-SQL thì mức độ khó khăn gấp nhiều lần.
  • Nếu yêu cầu chỉ đơn giản là join các table lại với nhau. T-SQL là lựa chọn đơn giản và nhanh chóng nhất. Nếu ta làm với SSIS, sẽ có nhiều bước cần cấu hình và sẽ mất thời gian nhau.
  • Tùy thuộc vào kỹ năng hiện có của các Developer, nếu các Dev giỏi về SSIS, thì họ làm việc nhanh chóng hơn so với các Dev giỏi về T-SQL.
  • Với SSIS, ta có thể dễ dàng xử lý từng dòng. Còn dùng T-SQL có lẽ ta phải dùng Cursor, bạn đã đọc qua bài viết nào về Performance tuning SQL Server dùng Cursor chưa? Không nên dùng Cursor trừ phi không còn sự lựa chọn nào khác, nó ảnh hưởng ghê gớm đến Performance.
  • SSIS có cơ chế ghi log, có thể log ra 1 table, Windows Event Log hay 1 file. Còn SQL Server thì mặc định không hỗ trợ việc này.

Để tìm hiểu thêm, tham khảo: http://www.jamesserra.com/archive/2011/08/when-to-use-t-sql-or-ssis-for-etl/

0 comments:

Post a Comment

 
Toggle Footer