Während wir den SSIS-Datenfluss verwenden, können wir ETL-Aufgaben ausführen, die für Datenmigration, Datenauslagerung, Design und Implementierung des Data Warehouse verwendet werden können.
In diesem Artikel erkläre ich, wie Sie mithilfe der SSIS-Datenflussaufgabe Daten aus einer SQL-Tabelle in eine Excel- und Textdatei exportieren.
In dieser Demo werde ich die folgenden Schritte ausführen:
1. Erstellen Sie ein SSIS-Paket und erstellen Sie den ADO.NET Connection Manager.
2. Erstellen Sie eine Datenflussaufgabe, die über eine ADO.NET-Quelle verfügt, um Daten aus SQL Server zu füllen. Daten werden in eine Excel-Datei und eine Textdatei geschrieben, daher konfigurieren Sie das Flat-File-Ziel und das Excel-Ziel.
3. Führen Sie das SSIS-Paket aus und überprüfen Sie, ob die Daten in Excel- und Textdateien geschrieben wurden.
SSIS-Paket und ADO.NET-Verbindung erstellen
Für diese Demo habe ich SQL Server Data Tools 2015 verwendet. Zunächst erstelle ich ein neues Integrationsdienstprojekt mit dem Namen „SQL-Daten exportieren“. “:
Nach der Erstellung eines SSIS-Projekts erstelle ich die Datenflussaufgabe. Der Datenflusstask verwendet SQL Server als Quelle. Excel-Datei und Flatfile werden als Ziel bestimmt. Vor der Erstellung der Datenflussaufgabe müssen wir die ADO.NET-Verbindung erstellen .
ADO.NET-Verbindung konfigurieren
Wie ich oben erwähnt habe, werde ich „WideWorldImportors verwenden ” Demo-Datenbank, die hier heruntergeladen werden kann.
Um eine „Quelle zu erstellen Klicken Sie mit der rechten Maustaste auf „Verbindungsmanager“. “ und wählen Sie „Neue ADO.NET-Verbindung “, wie im Bild unten gezeigt:
Ein Dialogfeld „ADO.NET Connection Manager konfigurieren " wird Öffnen. Klicken Sie im Dialogfenster auf „Neu“. “, wie im folgenden Bild gezeigt:
Ein Dialogfeld „Verbindungsmanager " wird Öffnen. Ich werde die SQL-Konnektivitätsparameter konfigurieren:
1. Servername – ist der Hostname oder die IP-Adresse des Datenbankservers, auf dem SQL installiert ist.
2. Authentifizierung – ist ein „Authentifizierungstyp“, der verwendet wird, um den Server zu verbinden, der unter „Servername“ ausgewählt wird " Dropdown-Feld. Dies kann entweder die SQL-Authentifizierung oder die Windows-Authentifizierung sein.
3. Datenbankname – ist der Name der Datenbank, die wir für die Datenextraktion verwenden werden.
In dieser Demo werde ich meine lokale VM verwenden. Ich werde die Windows-Authentifizierung verwenden, um die SQL-Instanz zu verbinden, und ich werde „WideWorldImportors verwenden ” Datenbank.
Sehen Sie sich das folgende Bild an:
Klicken Sie auf „Verbindung testen“. “, um die erfolgreiche Verbindung zu überprüfen. Sehen Sie sich das folgende Bild an:
Sobald die SQL-Verbindung konfiguriert ist, können Sie die Verbindung im „Verbindungsmanager“ sehen " Fenster. Es befindet sich unten im Ablaufsteuerungsfenster, wie in der folgenden Abbildung gezeigt:
Datenflussaufgabe erstellen
Der Datenflusstask wird verwendet, um Daten zwischen Quellen und Zielen zu verschieben. Es kann verwendet werden, um ETL-Aufgaben (Extrahieren, Transformieren und Laden) auszuführen. Ich werde Daten von SQL Server in eine Excel- oder Textdatei exportieren, daher werden wir die Datenflussaufgabe verwenden.
Um die Datenflussaufgabe zu konfigurieren, ziehe ich zunächst die Datenflussaufgabe per Drag-and-Drop in das Ablaufsteuerungsfenster und benenne sie in „Verkaufsdaten nach Excel exportieren“ um “, wie im Bild unten gezeigt:
ADO.NET-Quelle konfigurieren
Um Daten aus der SQL Server-Tabelle zu füllen, müssen wir die ADO.Net-Quellkomponente konfigurieren. Doppelklicken Sie auf „Datenflussaufgabe“. " das zu tun. Das Fenster „Datenflussaufgabe konfigurieren " wird Öffnen. Alternativ können Sie „Datenfluss“ auswählen “, das sich neben „Kontrollfluss“ befindet “. Da wir die SQL-Verbindung bereits konfiguriert haben, ziehen wir die ADO.NET-Quelle per Drag &Drop in das Datenflussfenster, wie in der folgenden Abbildung gezeigt:
Jetzt konfigurieren wir ADO.NET Source, um Daten aus der Tabelle durch Abfragen der SQL Server-Tabelle zu extrahieren. Doppelklicken Sie dazu auf „ADO Net source“. “. Ein Dialogfeld wird geöffnet. Im Dialogfeld müssen wir die folgenden Parameter konfigurieren:
1. ADO.NET-Verbindungsmanager – füllt die Liste der ADO.NET-Verbindungen, die im SSIS-Paket erstellt wurden.
2. Datenzugriffsmodus hat zwei Optionen:
a. Wenn Sie „Tabelle oder Ansicht auswählen “ im „Datenzugriffsmodus ” Drop-down-Feld, “Name der Tabelle oder der Ansicht ” Dropdown wird mit Tabellen und Ansichten gefüllt, die in der Datenbank vorhanden sind. Siehe Bild unten:
b. Wenn wir „SQL-Befehl auswählen “, öffnet sich ein mehrzeiliges Textfeld, in das wir die Ad-hoc-Abfrage schreiben können, um Daten aus der Datenbank zu extrahieren.
Siehe Bild unten:
Wir haben die ADO.Net-Verbindung bereits erstellt, also wählen Sie im Dropdown-Menü des ADO.NET-Verbindungsmanagers den erstellten Namen davon aus. In dieser Demo schreiben wir unsere eigene Abfrage, sodass die Datenzugriffsmethode „SQL Command“ ist “.
Ich habe eine Abfrage erstellt, die mir die Liste der Kunden aus der Datenbank liefert. Diese Abfrage ist unten:
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
Schließlich sieht der ADO.NET-Quelleditor wie im folgenden Bild aus:
Wir können die Ausgabe der Abfrage in der Vorschau anzeigen, indem wir auf „Vorschau“ klicken ” Schaltfläche im Dialogfeld. Das Abfrageergebnis sieht aus wie in der folgenden Abbildung gezeigt:
Excel-Ziel konfigurieren
Sobald wir die ADO.NET-Quelle konfiguriert haben, werden wir das Excel-Ziel konfigurieren.
Ziehen Sie in der SSIS-Toolbox das Excel-Ziel per Drag-and-Drop in das Datenflussfenster und benennen Sie es in „Sales Excel File“ um “, wie im Bild unten gezeigt:
Doppelklicken Sie auf das Excel-Ziel. Ein Dialogfeld „Excel-Zieleditor “ wird geöffnet, um die folgenden Parameter zu konfigurieren:
1. Excel-Verbindungsmanager – wird verwendet, um die Excel-Datei zu verbinden.
2. Datenzugriffsmethode . Excel-Arbeitsblatt wird als Tabelle oder Ansicht betrachtet. Wenn Sie „Tabelle oder Ansicht auswählen “, Dropdown-Feld „Name der Excel-Tabelle ” wird mit allen Arbeitsblättern gefüllt, die in der Excel-Arbeitsmappe erstellt werden.
3. Name der Excel-Tabelle . Standardmäßig ist dieses Dropdown-Feld deaktiviert. Es wird automatisch aktiviert, wenn wir „Tabelle oder Ansicht auswählen ” als Datenzugriffsmodus. Wir können auch ein geeignetes Excel-Arbeitsblatt auswählen.
Wir haben noch keine Excel-Zielverbindung erstellt, daher ist es zunächst erforderlich, einen Excel-Zielmanager zu erstellen. Klicken Sie dazu auf „Neu “ neben „Excel-Verbindungsmanager ” Dropdown-Feld, wie im Bild unten gezeigt:
Das Dialogfenster „Excel Connection Manager " wird Öffnen. Hier können wir konfigurieren:
1. Excel-Dateipfad – der Speicherort der Excel-Datei.
2. Excel-Version – kann die Excel-Version aus dem Dropdown-Feld auswählen.
Für diese Demo habe ich eine Excel-Datei erstellt und auf meinem Computer gespeichert. Um die Datei zu finden, klicken Sie auf Durchsuchen, bewegen Sie sich durch das Dateisystem, wählen Sie die Datei aus und klicken Sie auf OK , wie im Bild unten gezeigt:
Jetzt im ausgewählten Datenzugriffsmodus als „Tabelle oder Ansicht“. “ im „Excel Destination Manager “. Die Liste der Excel-Arbeitsblätter wird im Dropdown-Feld ausgefüllt. Wählen Sie "Name der Excel-Tabelle". ” aus dem Dropdown-Feld, wie im Bild unten gezeigt:
Um nun Daten aus der SQL-Tabelle in eine Excel-Datei zu exportieren, müssen wir die Felder der SQL-Tabelle und der Excel-Datei zuordnen. Ziehen Sie dazu den blauen Pfeil unter "Verkaufsdaten des DB-Servers". “-Komponente und legen Sie sie auf „Verkaufs-Excel-Datei ab ”-Komponente, wie im Bild unten gezeigt:
Doppelklicken Sie auf „Excel-Ziel“. “, um die Felder zuzuordnen. „Excel-Zieleditor (Verkaufs-Excel-Datei) " wird Öffnen. Wählen Sie „Zuordnungen aus ”-Option im linken Bereich des Dialogfelds. Bei der Zuordnung sind die Eingabespalten die Spalten der SQL-Abfrageausgabe und die Zielspalten die Spalten der Excel-Datei. Es wird empfohlen, denselben Namen für die SQL-Abfrageausgabe und die Excel-Spalten beizubehalten. Dadurch wird die Zuordnung viel einfacher, da wir die Felder nicht manuell zuordnen müssen. SSIS ordnet Spalten automatisch zu.
Für diese Demo haben die Excel-Datei und die Ausgabe der SQL-Abfrage denselben Namen, sodass die Zuordnung automatisch durchgeführt wurde. Vergewissern Sie sich, dass die Zuordnung korrekt durchgeführt wurde, und klicken Sie auf OK . Siehe folgendes Bild:
Sobald die Zuordnung abgeschlossen ist, sieht die gesamte Datenflussaufgabe wie in der Abbildung unten aus:
Jetzt können wir das Paket ausführen. Klicken Sie dazu auf „Start“. “ Schaltfläche, die sich in der Menüleiste befindet. Wenn das Paket erfolgreich ausgeführt wird, können Sie das grüne Symbol auf jeder Komponente sehen, wie in der Abbildung unten gezeigt:
Flatfile-Ziel konfigurieren
Wie ich am Anfang des Artikels erwähnt habe, können wir in SSIS Daten aus der SQL-Tabelle in eine Textdatei exportieren. Dazu müssen wir in der Datenflussaufgabe ein Flatfile-Ziel erstellen. Ziehen Sie „Flat File-Ziel per Drag-and-Drop “ in das Datenfluss-Aufgabenfenster und benennen Sie es in „Verkaufsdaten in Textdatei“ um “, wie im Bild unten gezeigt:
Doppelklicken Sie nun auf „Flatfile-Ziel “. Ein Dialogfeld „Zieleditor für Flatfiles “ öffnet sich wie im Bild unten gezeigt:
Klicken Sie nun auf „Neu “ neben „Verbindungsmanager für Flatfiles " Dropdown-Feld. Das Dialogfenster „Flat File Format " wird Öffnen. Es hat vier Optionen:Daten mit Trennzeichen, fester Breite, fester Breite mit Zeilentrennzeichen und unregelmäßig rechts exportieren. Für diese Demo wählen wir „Getrennt “.
Wählen Sie „Getrennt aus “ und klicken Sie auf OK wie auf dem Bild unten gezeigt:
Ein weiteres Dialogfeld „Flatfile-Verbindungsmanager-Editor " wird Öffnen. Benennen Sie den Verbindungsmanager als „Verkaufsdaten exportieren “, wie es auf dem folgenden Bild gezeigt wird:
Um die SQL-Daten in einer Textdatei zu speichern, können wir entweder die neue Textdatei erstellen oder die vorhandene auswählen.
Für diese Demo erstellen wir eine neue Datei. Ich erstelle die Datei mit dem Namen „Sales Data “. Dazu klicke ich auf „Durchsuchen“ und bewege mich durch das Dateisystem, wie im Bild unten gezeigt:
Jetzt konfigurieren wir Flatfile-Parameter:
- Exportierte Daten aus der SQL-Tabelle werden im Format mit Trennzeichen gespeichert, also wählen Sie „D eingeschränkt “ in „Format ” Dropdown-Feld, wie im Bild unten gezeigt:
- “Kopfzeilentrennzeichen “ wird „{CR}{LF} sein “, wählen Sie also die entsprechende Option im Dropdown-Feld aus, wie in der Abbildung unten gezeigt:
- In der Textdatei ist die erste Zeile die Spaltenüberschrift, also markieren Sie „Spaltennamen in der ersten Datenzeile “, wie auf dem Bild unten gezeigt:
Klicken Sie auf OK um den „Flatfile-Verbindungsmanager-Editor zu schließen “.
Jetzt werden wir die Spalten zuordnen. Klicken Sie dazu auf „Mappings“. “ auf der linken Seite des „Zieleditors für Flatfiles “, wie auf dem Bild unten gezeigt:
Als Namen von „SQL Query input “ und „Textdateiziel ” Spalten sind gleich, SSIS-Paket ordnet Spalten automatisch zu.
Sobald die Zuordnung abgeschlossen ist, sieht die gesamte Datenflussaufgabe wie in der Abbildung unten aus:
Jetzt können wir das Paket ausführen. Klicken Sie dazu auf „Start“. “ Schaltfläche, die sich in der Menüleiste befindet. Wenn das Paket erfolgreich ausgeführt wird, können Sie das grüne Symbol auf jeder Komponente sehen, wie in der Abbildung unten gezeigt:
Unten ist der Screenshot von Daten, die aus der SQL-Tabelle extrahiert wurden:
Zusammenfassung
In diesem Artikel behandelte ich:
- Erstellen des ADO.NET-Verbindungsmanagers
- Datenflussaufgabe erstellen und Quelldatenbank konfigurieren
- Konfigurieren des Excel-Ziels und Exportieren von Daten aus der SQL-Tabelle in eine Excel-Datei.
- Konfigurieren des Flat-File-Ziels und Exportieren von Daten aus der SQL-Tabelle in eine Textdatei.
Nützliche Tools:
Devart SSIS-Datenflusskomponenten – ermöglichen Ihnen die Integration von Datenbank- und Cloud-Daten über SQL Server Integration Services.