sql >> Database >  >> RDS >> Sqlserver

Gegevens exporteren van SQL Server naar Excel en tekstbestand via het gebruik van SSIS-pakket

Terwijl we de SSIS-gegevensstroom gebruiken, kunnen we ETL-taken uitvoeren die kunnen worden gebruikt voor gegevensmigratie, gegevensoffload, ontwerp en implementatie van het datawarehouse.

In dit artikel leg ik uit hoe u gegevens kunt exporteren uit een SQL-tabel naar Excel en een tekstbestand met behulp van de SSIS-gegevensstroomtaak.

In deze demo zal ik de volgende stappen uitvoeren:

1. Maak een SSIS-pakket en maak ADO.NET-verbindingsbeheer aan.

2. Maak een gegevensstroomtaak met een ADO.NET-bron om gegevens van SQL Server te vullen. Gegevens worden geschreven naar Excel-bestand en tekstbestand en configureer daarom de platte bestandsbestemming en Excel-bestemming.

3. Voer het SSIS-pakket uit en controleer of de gegevens naar Excel- en tekstbestanden zijn geschreven.

SSIS-pakket en ADO.NET-verbinding maken

Voor deze demo heb ik SQL Server Data-tools 2015 gebruikt. Ten eerste ben ik een nieuw integratieserviceproject aan het maken met de naam "SQL-gegevens exporteren ”:

Na het maken van een SSIS-project, zal ik de gegevensstroomtaak maken. De gegevensstroomtaak gebruikt SQL Server als bron. Excel-bestand en het platte bestand worden als bestemming bepaald. Voordat we de gegevensstroomtaak maken, moeten we de ADO.NET-verbinding . maken .

ADO.NET-verbinding configureren

Zoals ik hierboven al zei, ga ik "WideWorldImportors . gebruiken ” demo-database die hier kan worden gedownload.

Een "Bron . maken ” verbinding, klik met de rechtermuisknop op “Verbindingsmanagers ” en selecteer “Nieuwe ADO.NET-verbinding ” zoals weergegeven in de onderstaande afbeelding:

Een dialoogvenster "ADO.NET Connection Manager configureren " zal openen. Klik in het dialoogvenster op "Nieuw ” zoals weergegeven in de volgende afbeelding:

Een dialoogvenster "Verbindingsbeheer " zal openen. Ik zal de SQL-connectiviteitsparameters configureren:

1. Servernaam – is de hostnaam of het IP-adres van de databaseserver waarop SQL is geïnstalleerd.

2. Verificatie – is een "authenticatietype" dat wordt gebruikt om verbinding te maken met de server die is geselecteerd op "Servernaam ” vervolgkeuzelijst. Dit kan SQL-verificatie of Windows-verificatie zijn.

3. Databasenaam – is de naam van de database die we gaan gebruiken voor het extraheren van gegevens.

In deze demo ga ik mijn lokale VM gebruiken. Ik zal Windows-authenticatie gebruiken om de SQL-instantie te verbinden en ik ga "WideWorldImportors gebruiken ”-database.

Kijk naar de volgende afbeelding:

Klik op "Verbinding testen ” om de succesvolle verbinding te verifiëren. Kijk naar de volgende afbeelding:

Nadat de SQL-verbinding is geconfigureerd, kunt u de verbinding zien in de "Verbindingsmanagers " raam. Het bevindt zich onder in het controlestroomvenster, zoals weergegeven in de volgende afbeelding:

Gegevensstroomtaak maken

Gegevensstroomtaak wordt gebruikt om gegevens tussen bronnen en bestemming te verplaatsen. Het kan worden gebruikt om ETL-taken (Extract, Transform and Load) uit te voeren. Ik zal gegevens van SQL Server naar Excel of tekstbestand exporteren, daarom zullen we de gegevensstroomtaak gebruiken.

Om de gegevensstroomtaak te configureren, zal ik eerst de gegevensstroomtaak in het controlestroomvenster slepen en neerzetten en de naam ervan wijzigen in "Verkoopgegevens exporteren naar Excel ” zoals weergegeven in de onderstaande afbeelding:

ADO.NET-bron configureren

Om gegevens uit de SQL Server-tabel te vullen, moeten we de ADO.Net-broncomponent configureren. Dubbelklik op "Gegevensstroomtaak " om dat te doen. Het venster "Taak gegevensstroom configureren " zal openen. U kunt ook "Gegevensstroom . selecteren ” die zich naast “Control Flow . bevindt ”. Omdat we de SQL-verbinding al hebben geconfigureerd, zullen we ADO.NET Source naar het gegevensstroomvenster slepen en neerzetten, zoals weergegeven in de onderstaande afbeelding:

Nu zullen we ADO.NET Source configureren om gegevens uit de tabel te extraheren via het opvragen van SQL Server-tabel. Dubbelklik hiervoor op “ADO Net source ”. Er wordt een dialoogvenster geopend. In het dialoogvenster moeten we de volgende parameters configureren:

1. ADO.NET Verbindingsbeheer – vult de lijst met ADO.NET-verbindingen die in het SSIS-pakket zijn gemaakt.

2. Gegevenstoegangsmodus heeft twee opties:

a. Als u "Tabel of weergave . selecteert ” in “Gegevenstoegangsmodus ” vervolgkeuzelijst, “Naam van de tabel of de weergave ” vervolgkeuzelijst wordt gevuld met tabellen en weergaven die in de database bestaan. Zie onderstaande afbeelding:

b. Als we "SQL-opdracht . selecteren ”, opent een tekstvak met meerdere regels waarin we de Ad-Hoc-query kunnen schrijven om gegevens uit de database te extraheren.

Zie onderstaande afbeelding:

We hebben de ADO.Net-verbinding al gemaakt, dus in de vervolgkeuzelijst ADO.NET-verbindingsbeheer kunt u de gemaakte naam ervan selecteren. In deze demo gaan we onze eigen query schrijven, dus de methode voor gegevenstoegang is "SQL-opdracht ”.

Ik heb een query gemaakt die me de lijst met klanten uit de database zal geven. Deze vraag staat hieronder:

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

Ten slotte ziet de ADO.NET-broneditor eruit als de onderstaande afbeelding:

We kunnen een voorbeeld van de uitvoer van de zoekopdracht bekijken door op de knop "Voorbeeld . te klikken ” knop in het dialoogvenster. Het resultaat van de zoekopdracht is zoals wordt weergegeven in de onderstaande afbeelding:

Excel-bestemming configureren

Zodra we de ADO.NET-bron hebben geconfigureerd, zullen we de Excel-bestemming configureren.

Sleep in de SSIS-toolbox de Excel-bestemming in het gegevensstroomvenster en hernoem het als "Sales Excel-bestand ” zoals weergegeven in de onderstaande afbeelding:

Dubbelklik op Excel-bestemming. Een dialoogvenster "Excel-bestemmingseditor ” wordt geopend om de volgende parameters te configureren:

1. Excel verbindingsbeheer – gebruikt om het Excel-bestand te verbinden.

2. Gegevenstoegangsmethode . Excel-werkblad wordt beschouwd als een tabel of weergave. Als u "Tabel of weergave . selecteert ”, vervolgkeuzelijst “Naam van Excel-blad ” wordt gevuld met alle werkbladen die zijn gemaakt in de Excel-werkmap.

3. Naam van Excel-blad . Deze vervolgkeuzelijst is standaard uitgeschakeld. Het wordt automatisch ingeschakeld wanneer we "Tabel of Weergave . selecteren ” als gegevenstoegangsmodus. We kunnen ook het juiste Excel-werkblad selecteren.

We hebben nog geen Excel-bestemmingsverbinding gemaakt, dus eerst is het noodzakelijk om een ​​Excel-bestemmingsmanager te maken. Klik hiervoor op "Nieuw ”-knop naast “Excel-verbindingsbeheer ” drop-down box zoals getoond in de afbeelding hieronder:

Het dialoogvenster "Excel-verbindingsbeheer " zal openen. Hier kunnen we configureren:

1. Excel-bestandspad – de locatie van het Excel-bestand.

2. Excel-versie - kan de Excel-versie selecteren in de vervolgkeuzelijst.

Voor deze demo heb ik een Excel-bestand gemaakt en op mijn computer opgeslagen. Om het bestand te vinden, klikt u op Bladeren, bladert u door het bestandssysteem, selecteert u het bestand en klikt u op OK , zoals weergegeven in de onderstaande afbeelding:

Nu in de modus voor gegevenstoegang selecteren als "Tabel of weergave ” in “Excel-bestemmingsmanager ”. Lijst met Excel-werkbladen wordt ingevuld in de vervolgkeuzelijst. Selecteer "Naam van Excel-blad ” uit de vervolgkeuzelijst zoals weergegeven in de onderstaande afbeelding:

Om nu gegevens van de SQL-tabel naar het Excel-bestand te exporteren, moeten we de velden van de SQL-tabel en het Excel-bestand in kaart brengen. Om dat te doen, sleept u de blauwe pijl onder "Verkoopgegevens van DB-server ” component en zet het neer op “Sales Excel-bestand ” component zoals getoond in de onderstaande afbeelding:

Dubbelklik op "Excel-bestemming ” om de velden in kaart te brengen. "Excel-bestemmingseditor (Sales Excel-bestand) " zal openen. Selecteer "Mappings ” optie in het linkerdeelvenster van het dialoogvenster. Bij toewijzing zijn invoerkolommen de kolommen van de uitvoer van SQL-query's en zijn bestemmingskolommen de kolommen van het Excel-bestand. Er wordt voorgesteld om de SQL-query-uitvoer en Excel-kolommen dezelfde naam te geven. Dit maakt het in kaart brengen veel gemakkelijker omdat we velden niet handmatig hoeven toe te wijzen. SSIS wijst kolommen automatisch toe.

Voor deze demo hebben het Excel-bestand en de uitvoer van SQL-query's dezelfde naam, dus de toewijzing werd automatisch uitgevoerd. Controleer of het in kaart brengen correct is uitgevoerd en klik op OK . Zie de afbeelding hieronder:

Nadat het in kaart brengen is voltooid, ziet de volledige gegevensstroomtaak eruit zoals in de onderstaande afbeelding:

Nu kunnen we het pakket uitvoeren. Klik hiervoor op "Start ” knop die zich in de menubalk bevindt. Als het pakket succesvol wordt uitgevoerd, kunt u het groene pictogram op elk onderdeel zien, zoals wordt weergegeven in de onderstaande afbeelding:

Bestemming voor plat bestand configureren

Zoals ik aan het begin van het artikel al zei, kunnen we in SSIS gegevens van SQL-tabel naar tekstbestand exporteren. Om dat te doen, moeten we een platte bestandsbestemming maken in de gegevensstroomtaak. Slepen en neerzetten "Bestemming plat bestand ” naar het gegevensstroomtaakvenster en hernoem het als “Verkoopgegevens naar tekstbestand ” zoals weergegeven in de onderstaande afbeelding:

Dubbelklik nu op "Bestemming plat bestand ”. Een dialoogvenster "Bestemmingseditor voor platte bestanden ” wordt geopend zoals wordt weergegeven in de onderstaande afbeelding:

Klik nu op "Nieuw ”-knop naast “Verbindingsbeheerders voor platte bestanden ” vervolgkeuzelijst. Het dialoogvenster "Flat bestandsformaat " zal openen. Het heeft vier opties:gegevens exporteren naar begrensd, vaste breedte, vaste breedte met rijscheidingstekens en onregelmatig naar rechts. Voor deze demo kiezen we "Gescheiden ”.

Selecteer "Gescheiden ” en klik op OK zoals weergegeven op de afbeelding hieronder:

Een ander dialoogvenster "Bewerker voor platte bestandsverbindingen " zal openen. Geef de verbindingsmanager de naam "Verkoopgegevens exporteren ” zoals weergegeven op de volgende afbeelding:

Om de SQL-gegevens in een tekstbestand op te slaan, kunnen we het nieuwe tekstbestand maken of het bestaande kiezen.

Voor deze demo gaan we een nieuw bestand maken. Ik zal het bestand maken met de naam "Verkoopgegevens ”. Om dat te doen, klik ik op bladeren en blader ik door het bestandssysteem zoals wordt getoond in de onderstaande afbeelding:

Nu zullen we platte bestandsparameters configureren:

  • Geëxporteerde gegevens uit de SQL-tabel worden opgeslagen in het gescheiden formaat, dus selecteer "D uitgeschakeld ” in “Formaat ” drop-down box zoals getoond in de afbeelding hieronder:

  • Scheidingsteken voor koprij ” zal zijn “{CR}{LF} ”, dus kies de juiste optie in de vervolgkeuzelijst, zoals wordt weergegeven in de onderstaande afbeelding:

  • In het tekstbestand is de eerste rij de kolomkop, dus vink 'Kolomnamen in de eerste gegevensrij aan ” zoals weergegeven op de afbeelding hieronder:

Klik op OK om de "Bewerker voor platte-bestandsverbindingsbeheer . te sluiten ”.

Nu gaan we de kolommen in kaart brengen. Klik hiervoor op "Mappings ” aan de linkerkant van “Bestemmingseditor voor platte bestanden ” zoals weergegeven op de afbeelding hieronder:

Zoals de namen van "SQL Query-invoer ” en “Bestemming tekstbestand ” kolommen zijn hetzelfde, SSIS-pakket brengt kolommen automatisch in kaart.

Zodra de toewijzing is voltooid, ziet de volledige gegevensstroomtaak eruit zoals in de onderstaande afbeelding:

Nu kunnen we het pakket uitvoeren. Klik hiervoor op "Start ” knop die zich in de menubalk bevindt. Als het pakket succesvol wordt uitgevoerd, kunt u het groene pictogram op elk onderdeel zien, zoals wordt weergegeven in de onderstaande afbeelding:

Hieronder ziet u de schermafbeelding van gegevens die uit de SQL-tabel zijn geëxtraheerd:

Samenvatting

In dit artikel heb ik het volgende behandeld:

  1. De ADO.NET-verbindingsbeheerder maken
  2. Een gegevensstroomtaak maken en de brondatabase configureren
  3. Excel-bestemming configureren en gegevens exporteren van de SQL-tabel naar Excel-bestand.
  4. Configureren van de bestemming voor een plat bestand en het exporteren van gegevens van de SQL-tabel naar een tekstbestand.

Handige hulpmiddelen:

Devart SSIS Data Flow Components – hiermee kunt u database- en cloudgegevens integreren via SQL Server Integration Services.


  1. Enum in Hibernate, volhardend als een opsomming

  2. SQL Server-lus - hoe loop ik door een set records?

  3. Tabelgegevens duidelijker weergeven in oracle sqlplus

  4. MySQL Wijzig opgeslagen procedure