Tôi có một tệp excel có nhiều trang tính và tôi cần nhập những dữ liệu đó từ mỗi trang tính riêng biệt sang một bảng SQL riêng bằng SSIS. Bởi vì mục đích của tôi là tạo dự án dạng bảng bằng cách sử dụng cơ sở dữ liệu máy chủ SQL. Vì vậy, trong bài viết này, tôi dự định thảo luận về cách nhập dữ liệu từ nhiều bảng excel vào nhiều bảng riêng biệt
Trong ví dụ của tôi, tôi có tệp nguồn dưới dạng excel và có dữ liệu tài chính như sau
Giải pháp
Đầu tiên, điều bạn muốn làm là tạo cơ sở dữ liệu SQL với các bảng cho từng trang tính riêng biệt. Hãy nhớ rằng cấu trúc bảng chính xác phải giống với bảng mà chúng ta sẽ tải
Sau đó, tạo gói SSIS và đổi tên thành “LoadingMultipleExcelSheets. dtsx”
Bây giờ chúng ta phải tải dữ liệu. Để làm được điều đó, chúng ta cần một "Nhiệm vụ luồng dữ liệu". Kéo tác vụ luồng dữ liệu từ Hộp công cụ SSIS –> Mục ưa thích –> Tác vụ luồng dữ liệu
Trong tác vụ luồng dữ liệu, chúng ta sẽ đọc dữ liệu từ “Tệp nguồn Excel”. Nhấp đúp vào tác vụ luồng dữ liệu và kéo nguồn Excel từ Thanh công cụ SSIS –> Nguồn khác –> Nguồn Excel
Sau đó, chúng ta phải tạo kết nối cho tệp excel mà chúng ta sẽ tải như sau
Sau đó, chúng ta cần đưa ra một điểm đến. Đối với điều đó, hãy chuyển đến Hộp công cụ SSIS -> Điểm đến khác và chọn điểm đến theo ý muốn. Ở đây tôi chọn OLE DB Destination để lưu trữ tập dữ liệu của mình. Trong đích OLE DB, chúng tôi phải tạo lại kết nối
Bây giờ chúng ta phải tạo kết nối giữa nguồn Excel và đích OLE DB. Nhưng tôi đã nhận lỗi. Do kiểu dữ liệu của cột Nhập và cột Đích khác nhau. Vì vậy, tôi đã sử dụng chuyển đổi dữ liệu. Sau đó, nhấp đúp vào đó và thay đổi kiểu dữ liệu và Bí danh đầu ra như sau và nhấp vào ok
Bây giờ, một lần nữa đi đến OLE DB Destination và ánh xạ lại với kiểu dữ liệu chính xác. Bây giờ phần này là ok
Sau đó, chúng ta phải tạo một tác vụ luồng dữ liệu khác để tải một bảng excel khác. Ở đây cũng làm điều tương tự đã làm trước đó. Kéo tác vụ luồng dữ liệu và đưa nguồn excel vào đó
Vào đây không cần tạo lại kết nối mới. Chúng tôi sử dụng cùng một kết nối mà chúng tôi đã tạo trước đó và chúng tôi chỉ chọn tên trang tính
Sau đó, kéo đích OLE DB và chọn bảng có liên quan từ danh sách bảng. Ở đây tôi sử dụng cùng một cơ sở dữ liệu. Nhưng nếu bạn muốn sử dụng nhiều cơ sở dữ liệu, một lần nữa bạn phải tạo kết nối OLE DB mới
Một lần nữa, chúng tôi muốn kéo chuyển đổi dữ liệu và thay đổi loại dữ liệu và Bí danh đầu ra như sau và nhấp vào ok. Nếu không, chúng tôi sẽ gặp lỗi khi tạo kết nối giữa nguồn Excel với đích OLE Db
Tôi có ba trang excel trong tệp excel của mình. Vì vậy, tôi đã làm quy trình tương tự cho bảng excel thứ ba. Sau khi định cấu hình chính xác ánh xạ và đích, chúng ta cần chạy gói. Sau đó tải dữ liệu vào nguồn dữ liệu từ nhiều bảng excel
Tôi được yêu cầu nhập dữ liệu vào SQL từ nhiều [15] tệp Excel và mỗi tệp Excel chứa dữ liệu lịch sử với hơn 200.000 hàng
Tôi có thể làm điều đó với 15 luồng dữ liệu và kết nối Excel trong SSIS, nhưng tôi không muốn làm theo cách đó vì tôi muốn tìm một cách hiệu quả hơn là tạo 15 luồng dữ liệu và kết nối Excel. Tôi quá lười để tạo tất cả các luồng dữ liệu và kết nối Excel đó. Điều đó sẽ mất rất nhiều thời gian. Vì vậy, tôi Googled nó
Tôi đã tìm thấy nhiều bài báo, nhưng mỗi bài báo hơi khác nhau và sử dụng một cách tiếp cận khác để xử lý tình huống
Tôi đã làm theo các bước trong một số bài viết và video trên YouTube, nhưng tôi không gặp may. Mỗi khi có điều gì đó không ổn hoặc tôi đã bỏ lỡ điều gì đó. tôi gãi đầu
Sau một thời gian, tôi đã tìm ra cách để làm cho nó hoạt động và tôi muốn chia sẻ nó với mọi người để tiết kiệm thời gian của bạn
Dưới đây là hướng dẫn từng bước của tôi để tạo gói SSIS để nhập dữ liệu từ nhiều tệp Excel sang SQL chỉ với một luồng dữ liệu và một kết nối Excel
Ví dụ: tôi có hai tệp Excel tại C. \BI\SSIS\Nhập dữ liệu lịch sử\Tệp nguồn\Kiểm tra
Lưu ý rất quan trọng
Đảm bảo rằng mỗi tệp Excel có cùng một lược đồ
Ví dụ,
- Số cột
- Tên của tiêu đề cột
- Tên của các tab
Cách nhập nhiều tệp Excel vào SQL
- Mở Visual Studio
- Tạo một dự án mới
- Chọn Dự án Dịch vụ Tích hợp
- Tạo một biến
- Tên. Đường dẫn tập tin
- Loại dữ liệu. Chuỗi
- Giá trị. trống
- Kéo và thả Bộ chứa vòng lặp Foreach vào Luồng điều khiển
- Nhấp chuột phải vào Vùng chứa vòng lặp Foreach sau đó nhấp vào Chỉnh sửa
- Vào Bộ sưu tập > Nhập đường dẫn thư mục > Nhập phần mở rộng tệp
Đảm bảo rằng Trình liệt kê là “Foreach File Enumerator” và Truy xuất tên tệp được đặt thành “Đủ điều kiện”