Korzystając z przepływu danych SSIS, możemy wykonać zadanie ETL, które można wykorzystać do migracji danych, odciążania danych, projektowania i wdrażania hurtowni danych.
W tym artykule wyjaśnię, jak wyeksportować dane z tabeli SQL do programu Excel i pliku tekstowego za pomocą zadania przepływu danych SSIS.
W tym demo wykonam następujące kroki:
1. Utwórz pakiet SSIS i utwórz menedżera połączeń ADO.NET.
2. Utwórz zadanie przepływu danych, które ma źródło ADO.NET, aby wypełnić dane z SQL Server. Dane zostaną zapisane do pliku Excel i pliku tekstowego, dlatego skonfiguruj miejsce docelowe pliku prostego i miejsce docelowe programu Excel.
3. Uruchom pakiet SSIS i sprawdź, czy dane zostały zapisane w plikach Excel i tekstowych.
Utwórz pakiet SSIS i połączenie ADO.NET
Do tej demonstracji użyłem narzędzi SQL Server Data 2015. Po pierwsze, tworzę nowy projekt usługi integracji o nazwie „Eksportuj dane SQL ”:
Po utworzeniu projektu SSIS stworzę zadanie przepływu danych. Zadanie przepływu danych będzie używać programu SQL Server jako źródła. Plik Excel i plik płaski zostaną określone jako miejsce docelowe. Przed utworzeniem zadania przepływu danych musimy utworzyć połączenie ADO.NET .
Skonfiguruj połączenie ADO.NET
Jak wspomniałem powyżej, zamierzam użyć „WideWorldImportors ” demonstracyjna baza danych, którą można pobrać stąd.
Aby utworzyć „Źródło ”, kliknij prawym przyciskiem myszy „Menedżer połączeń ” i wybierz „Nowe połączenie ADO.NET ”, jak pokazano na poniższym obrazku:
Okno dialogowe „Konfiguruj Menedżera połączeń ADO.NET " będzie otwarte. W oknie dialogowym kliknij „Nowy ”, jak pokazano na poniższym obrazku:
Okno dialogowe „Menedżer połączeń " będzie otwarte. Skonfiguruję parametry łączności SQL:
1. Nazwa serwera – to nazwa hosta lub adres IP serwera bazy danych, na którym zainstalowany jest SQL.
2. Uwierzytelnianie – to „typ uwierzytelniania” używany do łączenia serwera, który jest wybrany w „Nazwa serwera " upuścić pudło. Może to być uwierzytelnianie SQL lub uwierzytelnianie Windows.
3. Nazwa bazy danych – to nazwa bazy danych, której będziemy używać do ekstrakcji danych.
W tym demo zamierzam używać mojej lokalnej maszyny wirtualnej. Użyję uwierzytelniania systemu Windows, aby połączyć instancję SQL i zamierzam użyć „WideWorldImportors ” baza danych.
Spójrz na następujący obraz:
Kliknij „Testuj połączenie ”, aby zweryfikować pomyślne połączenie. Spójrz na następujący obraz:
Po skonfigurowaniu połączenia SQL będzie można je zobaczyć w „Menedżerze połączeń ” okno. Znajduje się w dolnej części okna sterowania, jak pokazano na poniższym obrazku:
Utwórz zadanie przepływu danych
Zadanie przepływu danych służy do przenoszenia danych między źródłami a miejscem docelowym. Może być używany do wykonywania zadań ETL (wyodrębnianie, przekształcanie i ładowanie). Wyeksportuję dane z SQL Server do Excela lub pliku tekstowego, dlatego użyjemy zadania przepływu danych.
Aby skonfigurować zadanie przepływu danych, najpierw przeciągnę i upuszczę zadanie przepływu danych w oknie przepływu kontroli i zmienię jego nazwę na „Eksportuj dane sprzedaży do Excela ”, jak pokazano na poniższym obrazku:
Skonfiguruj źródło ADO.NET
Aby wypełnić dane z tabeli SQL Server, musimy skonfigurować komponent źródłowy ADO.Net. Kliknij dwukrotnie „Zadanie przepływu danych " aby to zrobić. Okno „Konfiguruj zadanie przepływu danych " będzie otwarte. Możesz też wybrać „Przepływ danych ”, który znajduje się obok „Przepływ sterowania ”. Ponieważ już skonfigurowaliśmy połączenie SQL, przeciągamy i upuszczamy źródło ADO.NET do okna przepływu danych, jak pokazano na poniższym obrazku:
Teraz skonfigurujemy ADO.NET Source w celu wyodrębnienia danych z tabeli poprzez odpytywanie tabeli SQL Server. Aby to zrobić, kliknij dwukrotnie „Źródło sieci ADO ”. Otworzy się okno dialogowe. W oknie dialogowym musimy skonfigurować następujące parametry:
1. Menedżer połączeń ADO.NET – wypełnia listę połączeń ADO.NET utworzonych w pakiecie SSIS.
2. Tryb dostępu do danych ma dwie opcje:
a. Jeśli wybierzesz „Tabela lub widok ” w „trybie dostępu do danych ” menu rozwijane, „Nazwa tabeli lub widoku ” rozwijane zostanie wypełnione tabelami i widokami, które istnieją w bazie danych. Zobacz poniższy obraz:
b. Jeśli wybierzemy „Polecenie SQL ”, otworzy się wielowierszowe pole tekstowe, w którym możemy napisać zapytanie Ad-Hoc, aby wyodrębnić dane z bazy danych.
Zobacz poniższy obraz:
Stworzyliśmy już połączenie ADO.Net, więc w menedżerze połączeń ADO.NET rozwiń, aby wybrać utworzoną nazwę. W tym demo napiszemy własne zapytanie, więc metodą dostępu do danych będzie „Polecenie SQL ”.
Stworzyłem zapytanie, które poda mi listę klientów z bazy. To zapytanie znajduje się poniżej:
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
Wreszcie edytor źródeł ADO.NET będzie wyglądał jak na poniższym obrazku:
Możemy wyświetlić podgląd wyniku zapytania, klikając „Podgląd ” w oknie dialogowym. Wynik zapytania będzie taki, jak pokazano na poniższym obrazku:
Konfiguruj miejsce docelowe Excela
Po skonfigurowaniu źródła ADO.NET skonfigurujemy miejsce docelowe w Excelu.
W przyborniku SSIS przeciągnij i upuść miejsce docelowe programu Excel w oknie przepływu danych i zmień jego nazwę na „Plik Sales Excel ”, jak pokazano na poniższym obrazku:
Kliknij dwukrotnie miejsce docelowe programu Excel. Okno dialogowe „Edytor miejsca docelowego Excel ” otworzy się, aby skonfigurować następujące parametry:
1. Menedżer połączeń Excel – służy do podłączenia pliku Excel.
2. Metoda dostępu do danych . Arkusz programu Excel jest traktowany jako tabela lub widok. Jeśli wybierzesz „Tabela lub widok ”, rozwijane pole „Nazwa arkusza Excela ” zostanie wypełniony wszystkimi arkuszami roboczymi utworzonymi w skoroszycie programu Excel.
3. Nazwa arkusza Excela . Domyślnie to pole rozwijane jest wyłączone. Zostanie włączony automatycznie, gdy wybierzemy „Tabela lub widok ” jako tryb dostępu do danych. Możemy również wybrać odpowiedni arkusz programu Excel.
Nie stworzyliśmy jeszcze połączenia docelowego programu Excel, więc najpierw konieczne jest utworzenie menedżera docelowego programu Excel. Aby to zrobić, kliknij „Nowy ” obok „Menedżer połączeń Excel ” menu rozwijane, jak pokazano na poniższym obrazku:
Okno dialogowe „Menedżer połączeń Excel " będzie otwarte. Tutaj możemy skonfigurować:
1. Ścieżka pliku Excel – lokalizacja pliku Excel.
2. Wersja Excela – można wybrać wersję Excela z listy rozwijanej.
Na potrzeby tego demo utworzyłem plik Excela i zapisałem go na swoim komputerze. Aby zlokalizować plik, kliknij Przeglądaj, przejdź przez system plików, wybierz plik i kliknij OK , jak pokazano na poniższym obrazku:
Teraz w trybie dostępu do danych wybierz „Tabela lub widok ” w „Menedżerze miejsc docelowych programu Excel ”. Lista arkuszy programu Excel zostanie wypełniona w rozwijanym polu. Wybierz „Nazwa arkusza Excela ” z listy rozwijanej, jak pokazano na poniższym obrazku:
Teraz, aby wyeksportować dane z tabeli SQL do pliku Excel, musimy zmapować pola tabeli SQL i pliku Excel. Aby to zrobić, przeciągnij niebieską strzałkę pod „Dane sprzedaży serwera DB ” i upuść go na „plik Excel Sales ”, jak pokazano na poniższym obrazku:
Kliknij dwukrotnie „Miejsce docelowe Excela ”, aby zmapować pola. „Edytor docelowy programu Excel (plik Sales Excel) " będzie otwarte. Wybierz „Odwzorowania ” opcja z lewego panelu okna dialogowego. W mapowaniu kolumny wejściowe będą kolumnami danych wyjściowych zapytania SQL, a kolumny docelowe będą kolumnami pliku Excel. Sugeruje się zachowanie tej samej nazwy kolumn wyjściowych zapytania SQL i kolumn programu Excel. Ułatwi to mapowanie, ponieważ nie musimy ręcznie mapować pól. SSIS automatycznie mapuje kolumny.
W tej demonstracji plik Excela i dane wyjściowe zapytania SQL mają tę samą nazwę, więc mapowanie zostało wykonane automatycznie. Sprawdź, czy mapowanie zostało wykonane poprawnie i kliknij OK . Zobacz obrazek poniżej:
Po zakończeniu mapowania całe zadanie przepływu danych będzie wyglądać tak, jak na poniższym obrazku:
Teraz możemy wykonać pakiet. Aby to zrobić, kliknij „Rozpocznij ”, który znajduje się na pasku menu. Jeśli pakiet zostanie pomyślnie uruchomiony, możesz zobaczyć zieloną ikonę na każdym komponencie, jak pokazano na poniższym obrazku:
Konfiguruj miejsce docelowe pliku płaskiego
Jak wspomniałem na początku artykułu, w SSIS możemy eksportować dane z tabeli SQL do pliku tekstowego. Aby to zrobić, musimy utworzyć miejsce docelowe pliku płaskiego w zadaniu przepływu danych. Przeciągnij i upuść „Miejsce docelowe pliku płaskiego ” do okna zadania przepływu danych i zmień jego nazwę na „Dane sprzedaży do pliku tekstowego ”, jak pokazano na poniższym obrazku:
Teraz kliknij dwukrotnie „Miejsce docelowe płaskiego pliku ”. Okno dialogowe „Edytor miejsca docelowego pliku płaskiego ” otworzy się, jak pokazano na poniższym obrazku:
Teraz kliknij „Nowy ” obok „Menedżer połączeń z płaskimi plikami " upuścić pudło. Okno dialogowe „Płaski format pliku " będzie otwarte. Ma cztery opcje:eksportuj dane do rozgraniczonych, stałej szerokości, stałej szerokości z ogranicznikami wierszy i nierównego prawa. W tym pokazie wybierzemy „Rozdzielany ”.
Wybierz „Rozdzielany ” i kliknij OK jak pokazano na poniższym obrazku:
Kolejne okno dialogowe „Edytor menedżera połączeń plików płaskich " będzie otwarte. Nazwij menedżera połączeń „Eksportuj dane sprzedaży ” jak pokazano na poniższym obrazku:
Aby zapisać dane SQL w pliku tekstowym, możemy utworzyć nowy plik tekstowy lub wybrać istniejący.
W tym demo utworzymy nowy plik. Utworzę plik o nazwie „Dane sprzedaży ”. Aby to zrobić, kliknę przeglądaj i przejdę przez system plików, jak pokazano na poniższym obrazku:
Teraz skonfigurujemy parametry plików prostych:
- Wyeksportowane dane z tabeli SQL będą przechowywane w formacie rozdzielanym, więc wybierz „D ograniczona ” w „Format ” menu rozwijane, jak pokazano na poniższym obrazku:
- „Ogranicznik wiersza nagłówka ” będzie „{CR}{LF} ”, wybierz odpowiednią opcję z listy rozwijanej, jak pokazano na poniższym obrazku:
- W pliku tekstowym pierwszy wiersz będzie nagłówkiem kolumny, więc sprawdź „Nazwy kolumn w pierwszym wierszu danych ”, jak pokazano na poniższym obrazku:
Kliknij OK aby zamknąć „Edytor menedżera połączeń plików płaskich ”.
Teraz zmapujemy kolumny. Aby to zrobić, kliknij „Odwzorowania ” po lewej stronie „Edytora docelowego pliku płaskiego ”, jak pokazano na poniższym obrazku:
Jako nazwy „Wejście zapytania SQL ” i „Miejsce docelowe pliku tekstowego ” kolumny są takie same, pakiet SSIS automatycznie mapuje kolumny.
Po zakończeniu mapowania całe zadanie przepływu danych będzie wyglądać tak, jak na poniższym obrazku:
Teraz możemy wykonać pakiet. Aby to zrobić, kliknij „Rozpocznij ”, który znajduje się na pasku menu. Jeśli pakiet zostanie pomyślnie uruchomiony, możesz zobaczyć zieloną ikonę na każdym komponencie, jak pokazano na poniższym obrazku:
Poniżej znajduje się zrzut ekranu danych wyodrębnionych z tabeli SQL:
Podsumowanie
W tym artykule omówiłem:
- Tworzenie menedżera połączeń ADO.NET
- Tworzenie zadania przepływu danych i konfiguracja źródłowej bazy danych
- Konfigurowanie miejsca docelowego programu Excel i eksportowanie danych z tabeli SQL do pliku Excel.
- Konfigurowanie miejsca docelowego pliku płaskiego i eksportowanie danych z tabeli SQL do pliku tekstowego.
Przydatne narzędzia:
Komponenty Devart SSIS Data Flow — umożliwiają integrację danych z bazy danych i danych w chmurze za pośrednictwem usług integracji serwera SQL.