Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Xuất dữ liệu từ SQL Server sang Excel và tệp Văn bản thông qua gói SSIS

Trong khi sử dụng luồng dữ liệu SSIS, chúng tôi có thể thực hiện tác vụ ETL có thể được sử dụng để di chuyển dữ liệu, giảm tải dữ liệu, thiết kế và triển khai kho dữ liệu.

Trong bài viết này, tôi giải thích cách xuất dữ liệu từ bảng SQL sang tệp excel và tệp văn bản bằng cách sử dụng tác vụ luồng dữ liệu SSIS.

Trong bản demo này, tôi sẽ thực hiện qua các bước sau:

1. Tạo gói SSIS và tạo trình quản lý kết nối ADO.NET.

2. Tạo tác vụ luồng dữ liệu có nguồn ADO.NET để điền dữ liệu từ SQL Server. Dữ liệu sẽ được ghi vào tệp excel và tệp văn bản do đó định cấu hình đích tệp phẳng và đích excel.

3. Thực thi gói SSIS và xác minh rằng dữ liệu đã được ghi vào tệp excel và tệp văn bản.

Tạo gói SSIS và kết nối ADO.NET

Đối với bản trình diễn này, tôi đã sử dụng các công cụ Dữ liệu SQL Server 2015. Đầu tiên, tôi đang tạo một dự án dịch vụ Tích hợp mới có tên “ Xuất dữ liệu SQL ”:

Sau khi tạo dự án SSIS, tôi sẽ tạo tác vụ luồng dữ liệu. Tác vụ luồng dữ liệu sẽ sử dụng SQL Server làm nguồn. Tệp Excel và tệp phẳng sẽ được xác định là đích. Trước khi tạo tác vụ luồng dữ liệu, chúng ta phải tạo kết nối ADO.NET .

Định cấu hình kết nối ADO.NET

Như tôi đã đề cập ở trên, tôi sẽ sử dụng “ WideWorldImportors ”Cơ sở dữ liệu demo có thể được tải xuống từ đây.

Để tạo “ Nguồn Kết nối ”, nhấp chuột phải vào“ Trình quản lý kết nối ”Và chọn“ Kết nối ADO.NET mới ”Như thể hiện trong hình ảnh bên dưới:

Hộp thoại “ Định cấu hình trình quản lý kết nối ADO.NET " sẽ mở. Trong hộp thoại, nhấp vào “ Mới ”Như thể hiện trong hình ảnh sau:

Hộp thoại “ Trình quản lý kết nối " sẽ mở. Tôi sẽ định cấu hình các tham số kết nối SQL:

1. Tên máy chủ - là tên máy chủ hoặc địa chỉ IP của máy chủ cơ sở dữ liệu nơi SQL được cài đặt.

2. Xác thực - là “loại xác thực” được sử dụng để kết nối Máy chủ được chọn trên “ Tên máy chủ " thả cái hộp xuống. Nó có thể là Xác thực SQL hoặc Xác thực Windows.

3. Tên cơ sở dữ liệu - là tên của cơ sở dữ liệu mà chúng tôi sẽ sử dụng để trích xuất dữ liệu.

Trong bản demo này, tôi sẽ sử dụng máy ảo cục bộ của mình. Tôi sẽ sử dụng xác thực cửa sổ để kết nối phiên bản SQL và tôi sẽ sử dụng “ WideWorldImportors ”Cơ sở dữ liệu.

Nhìn vào hình ảnh sau:

Nhấp vào “ Kiểm tra kết nối ”Để xác minh kết nối thành công. Nhìn vào hình ảnh sau:

Sau khi kết nối SQL được định cấu hình, bạn sẽ có thể thấy kết nối trong “ Trình quản lý kết nối " cửa sổ. Nó nằm ở dưới cùng của cửa sổ luồng điều khiển như thể hiện trong hình ảnh sau:

Tạo tác vụ Luồng dữ liệu

Tác vụ luồng dữ liệu được sử dụng để di chuyển dữ liệu giữa các nguồn và đích. Nó có thể được sử dụng để thực hiện các tác vụ ETL (Trích xuất, Biến đổi và tải). Tôi sẽ xuất dữ liệu từ SQL Server sang Excel hoặc tệp Văn bản, do đó chúng tôi sẽ sử dụng tác vụ luồng dữ liệu.

Để định cấu hình nhiệm vụ luồng dữ liệu, trước tiên tôi sẽ kéo và thả nhiệm vụ luồng dữ liệu trong cửa sổ luồng điều khiển và đổi tên nó thành “ Xuất dữ liệu bán hàng sang Excel ”Như thể hiện trong hình ảnh bên dưới:

Định cấu hình Nguồn ADO.NET

Để điền dữ liệu từ bảng SQL Server, chúng ta phải cấu hình thành phần nguồn ADO.Net. Nhấp đúp vào “ Nhiệm vụ luồng dữ liệu " Để làm việc đó. Cửa sổ “ Định cấu hình tác vụ Luồng dữ liệu " sẽ mở. Ngoài ra, bạn có thể chọn “ Luồng dữ liệu ”Nằm bên cạnh“ Luồng kiểm soát ”. Khi chúng ta đã định cấu hình kết nối SQL, chúng ta sẽ kéo và thả Nguồn ADO.NET vào cửa sổ luồng dữ liệu như thể hiện trong hình ảnh bên dưới:

Bây giờ chúng ta sẽ cấu hình Nguồn ADO.NET để trích xuất dữ liệu từ bảng thông qua truy vấn bảng SQL Server. Để làm điều đó, hãy nhấp đúp vào “ ADO Net source ”. Một hộp thoại sẽ mở ra. Trong hộp thoại, chúng ta phải cấu hình các tham số sau:

1. Trình quản lý kết nối ADO.NET - điền danh sách các kết nối ADO.NET được tạo trong gói SSIS.

2. Chế độ truy cập dữ liệu có hai tùy chọn:

một. Nếu bạn chọn “ Bảng hoặc Chế độ xem ”Trong“ Chế độ truy cập dữ liệu ”Hộp thả xuống,“ Tên của bảng hoặc chế độ xem ”Thả xuống sẽ chứa đầy các bảng và dạng xem tồn tại trong cơ sở dữ liệu. Xem hình ảnh bên dưới:

b. Nếu chúng tôi chọn “ Lệnh SQL ”, Nó sẽ mở ra một hộp văn bản nhiều dòng nơi chúng ta có thể viết truy vấn Ad-Hoc để trích xuất dữ liệu từ cơ sở dữ liệu.

Xem hình ảnh bên dưới:

Chúng tôi đã tạo kết nối ADO.Net, vì vậy trong trình quản lý kết nối ADO.NET, hãy thả xuống để chọn tên đã tạo của nó. Trong bản trình diễn này, chúng tôi sẽ viết truy vấn của riêng mình để phương thức truy cập dữ liệu sẽ là “ SQL Command ”.

Tôi đã tạo một truy vấn sẽ cung cấp cho tôi danh sách khách hàng từ cơ sở dữ liệu. Truy vấn này dưới đây:

SELECT s.CustomerID, 
s.CustomerName, 
sc.CustomerCategoryName, 
pp.FullName AS PrimaryContact, 
ap.FullName AS AlternateContact, 
s.PhoneNumber, 
s.FaxNumber, 
bg.BuyingGroupName, 
dm.DeliveryMethodName AS DeliveryMethod, 
c.CityName AS CityName 
FROM Sales.Customers AS s 
LEFT OUTER JOIN Sales.CustomerCategories AS sc 
ON s.CustomerCategoryID = sc.CustomerCategoryID 
LEFT OUTER JOIN [Application].People AS pp 
ON s.PrimaryContactPersonID = pp.PersonID 
LEFT OUTER JOIN [Application].People AS ap 
ON s.AlternateContactPersonID = ap.PersonID 
LEFT OUTER JOIN Sales.BuyingGroups AS bg 
ON s.BuyingGroupID = bg.BuyingGroupID 
LEFT OUTER JOIN [Application].DeliveryMethods AS dm 
ON s.DeliveryMethodID = dm.DeliveryMethodID 
LEFT OUTER JOIN [Application].Cities AS c 
ON s.DeliveryCityID = c.CityID

Cuối cùng, trình biên tập mã nguồn ADO.NET sẽ giống như hình dưới đây:

Chúng tôi có thể xem trước đầu ra của truy vấn bằng cách nhấp vào “ Xem trước ”Trong hộp thoại. Kết quả truy vấn sẽ như được hiển thị trong hình ảnh bên dưới:

Định cấu hình đích excel

Khi chúng tôi định cấu hình nguồn ADO.NET, chúng tôi sẽ định cấu hình đích đến của Excel.

Trong hộp công cụ SSIS, kéo và thả đích đến của excel trong cửa sổ luồng dữ liệu và đổi tên nó thành “ Tệp Excel bán hàng ”Như thể hiện trong hình ảnh bên dưới:

Nhấp đúp vào đích excel. Hộp thoại “ Trình chỉnh sửa đích đến của Excel ”Sẽ mở để định cấu hình các thông số sau:

1. Trình quản lý kết nối Excel - được sử dụng để kết nối tệp excel.

2. Phương thức truy cập dữ liệu . Trang tính Excel được coi là một bảng hoặc dạng xem. Nếu bạn chọn “ Bảng hoặc Chế độ xem ”, Hộp thả xuống“ Tên trang tính excel ”Sẽ chứa tất cả các trang tính được tạo trong sổ làm việc excel.

3. Tên của trang tính excel . Theo mặc định, hộp thả xuống này bị tắt. Nó sẽ tự động được bật khi chúng tôi chọn “ Bảng hoặc Chế độ xem ”Làm chế độ truy cập dữ liệu. Chúng tôi cũng có thể chọn bảng tính excel phù hợp.

Chúng tôi chưa tạo kết nối đích excel, vì vậy trước tiên cần tạo một trình quản lý đích excel. Để làm điều đó, hãy nhấp vào “ Mới ”Bên cạnh“ Trình quản lý kết nối Excel ”Hộp thả xuống như được hiển thị trong hình ảnh bên dưới:

Hộp thoại “ Trình quản lý kết nối Excel " sẽ mở. Tại đây chúng ta có thể cấu hình:

1. Đường dẫn tệp Excel - vị trí của tệp excel.

2. Phiên bản Excel - có thể chọn phiên bản excel từ hộp thả xuống.

Đối với bản demo này, tôi đã tạo một tệp excel và lưu nó trên máy tính của mình. Để định vị tệp, hãy nhấp vào Duyệt qua, di chuyển qua hệ thống tệp, chọn tệp và nhấp vào OK , như thể hiện trong hình ảnh bên dưới:

Bây giờ ở chế độ truy cập dữ liệu được chọn là “ Bảng hoặc chế độ xem ”Trong“ Trình quản lý đích Excel ”. Danh sách các bảng tính excel sẽ được điền trong hộp thả xuống. Chọn “ Tên của trang tính excel ”Từ hộp thả xuống như được hiển thị trong hình ảnh bên dưới:

Bây giờ, để xuất dữ liệu từ bảng SQL sang tệp excel, chúng ta phải ánh xạ các trường của bảng SQL và tệp Excel. Để làm điều đó, hãy kéo mũi tên màu xanh lam bên dưới “ Dữ liệu bán hàng của máy chủ DB ”Và thả nó vào“ Tệp excel bán hàng ”Như thể hiện trong hình ảnh bên dưới:

Nhấp đúp vào “ Đích đến của Excel ”Để lập bản đồ các trường. “ Trình chỉnh sửa đích đến của Excel (Tệp Excel Bán hàng) " sẽ mở. Chọn “ Ánh xạ ”Từ ngăn bên trái của hộp thoại. Trong ánh xạ, các cột đầu vào sẽ là các cột của đầu ra Truy vấn SQL và các cột đích sẽ là các cột của tệp excel. Nên giữ nguyên tên của đầu ra Truy vấn SQL và các cột excel. Điều này sẽ làm cho việc lập bản đồ dễ dàng hơn nhiều vì chúng ta không cần lập bản đồ các trường theo cách thủ công. SSIS sẽ tự động ánh xạ các cột.

Đối với bản trình diễn này, tệp excel và đầu ra Truy vấn SQL có cùng tên nên việc ánh xạ được thực hiện tự động. Xác minh thực tế rằng ánh xạ đã được thực hiện chính xác và nhấp vào OK . Xem hình ảnh bên dưới:

Sau khi hoàn thành ánh xạ, toàn bộ tác vụ luồng dữ liệu sẽ giống như trong hình bên dưới:

Bây giờ chúng ta có thể thực thi gói. Để làm điều đó, hãy nhấp vào “ Bắt đầu ”Nằm trong thanh menu. Nếu gói thực thi thành công, bạn có thể thấy biểu tượng màu xanh lá cây trên mỗi thành phần như được hiển thị trong hình ảnh bên dưới:

Định cấu hình đích tệp phẳng

Như tôi đã đề cập ở đầu bài viết, trong SSIS chúng ta có thể xuất dữ liệu từ Bảng SQL sang tệp văn bản. Để làm điều đó, chúng ta phải tạo một đích tệp phẳng trong tác vụ luồng dữ liệu. Kéo và thả “ Đích đến của tệp phẳng ”Vào cửa sổ tác vụ luồng dữ liệu và đổi tên nó thành“ Dữ liệu bán hàng thành tệp văn bản ”Như được hiển thị trong hình ảnh bên dưới:

Bây giờ nhấp đúp vào “ Đích tệp phẳng ”. Hộp thoại “ Trình chỉnh sửa đích của tệp phẳng ”Sẽ mở ra như được hiển thị trong hình ảnh bên dưới:

Bây giờ hãy nhấp vào “ Mới ”Bên cạnh“ Trình quản lý kết nối tệp phẳng " thả cái hộp xuống. Hộp thoại “ Định dạng tệp phẳng " sẽ mở. Nó có bốn tùy chọn:xuất dữ liệu sang phân cách, chiều rộng cố định, chiều rộng cố định với dấu phân cách hàng và lệch phải. Đối với bản demo này, chúng tôi sẽ chọn “ Delimited ”.

Chọn “ Được phân cách ”Và nhấp vào OK như nó được hiển thị trên hình ảnh bên dưới:

Một hộp thoại khác “ Trình chỉnh sửa trình quản lý kết nối tệp phẳng " sẽ mở. Đặt tên cho trình quản lý kết nối là “ Xuất dữ liệu bán hàng ”Như được hiển thị trên hình ảnh sau:

Để lưu dữ liệu SQL trong tệp văn bản, chúng ta có thể tạo tệp văn bản mới hoặc chọn tệp hiện có.

Đối với bản demo này, chúng tôi sẽ tạo một tệp mới. Tôi sẽ tạo tệp có tên “ Dữ liệu bán hàng ”. Để làm điều đó, tôi sẽ nhấp vào trình duyệt và di chuyển qua hệ thống tệp như được hiển thị trong hình ảnh bên dưới:

Bây giờ chúng ta sẽ định cấu hình các thông số tệp phẳng:

  • Dữ liệu đã xuất từ ​​Bảng SQL sẽ được lưu trữ ở định dạng được phân tách, vì vậy hãy chọn “ D không giới hạn ”Ở“ Định dạng ”Hộp thả xuống như được hiển thị trong hình ảnh bên dưới:

  • Dấu phân cách hàng tiêu đề ”Sẽ là“ {CR} {LF} ”, Vì vậy hãy chọn tùy chọn thích hợp trong hộp thả xuống như được hiển thị trong hình ảnh bên dưới:

  • Trong tệp văn bản, hàng đầu tiên sẽ là tiêu đề cột, vì vậy hãy chọn “ Tên cột trong hàng dữ liệu đầu tiên ”Như được hiển thị trên hình ảnh bên dưới:

Nhấp vào OK để đóng “ trình chỉnh sửa trình quản lý kết nối tệp phẳng ”.

Bây giờ chúng ta sẽ lập bản đồ các cột. Để làm điều đó, hãy nhấp vào “ Ánh xạ ”Ở bên trái của“ Trình chỉnh sửa đích đến tệp phẳng ”Như được hiển thị trên hình ảnh bên dưới:

Như tên của “ Đầu vào truy vấn SQL ”Và“ Đích đến của tệp văn bản ”Giống nhau, gói SSIS tự động ánh xạ các cột.

Sau khi hoàn thành ánh xạ, toàn bộ tác vụ luồng dữ liệu sẽ giống như trong hình bên dưới:

Bây giờ chúng ta có thể thực thi gói. Để làm điều đó, hãy nhấp vào “ Bắt đầu ”Nằm trong thanh menu. Nếu gói thực thi thành công, bạn có thể thấy biểu tượng màu xanh lá cây trên mỗi thành phần như được hiển thị trong hình ảnh bên dưới:

Dưới đây là ảnh chụp màn hình dữ liệu được trích xuất từ ​​bảng SQL:

Tóm tắt

Trong bài viết này, tôi đã đề cập đến:

  1. Tạo trình quản lý kết nối ADO.NET
  2. Tạo tác vụ luồng dữ liệu và định cấu hình cơ sở dữ liệu nguồn
  3. Định cấu hình đích đến của excel và xuất dữ liệu từ bảng SQL sang Tệp Excel.
  4. Định cấu hình đích của tệp phẳng và xuất dữ liệu từ bảng SQL sang tệp Văn bản.

Các công cụ hữu ích:

Devart Thành phần luồng dữ liệu SSIS - cho phép bạn tích hợp cơ sở dữ liệu và dữ liệu đám mây thông qua Dịch vụ tích hợp máy chủ SQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CHARINDEX () so với PATINDEX () trong SQL Server - Sự khác biệt là gì?

  2. Theo dõi tuổi thọ trang trong SQL Server

  3. SQL Server:Tôi có nên sử dụng bảng information_schema trên bảng sys không?

  4. Chẩn đoán bế tắc trong SQL Server 2005

  5. Cách tạo Bảng bằng GUI trong SQL Server - Hướng dẫn SQL Server / T-SQL Phần 37