sql >> Databasteknik >  >> RDS >> Sqlserver

Exportera data från SQL Server till Excel och textfil via SSIS-paketet

När vi använder SSIS-dataflödet kan vi utföra ETL-uppgifter som kan användas för datamigrering, dataavlastning, design och implementering av datalagret.

I den här artikeln förklarar jag hur man exporterar data från en SQL-tabell till excel- och textfil med hjälp av uppgiften SSIS-dataflöde.

I den här demon kommer jag att utföra följande steg:

1. Skapa ett SSIS-paket och skapa ADO.NET-anslutningshanteraren.

2. Skapa dataflödesuppgift som har ADO.NET-källa för att fylla i data från SQL Server. Data kommer att skrivas till excel-fil och textfil och konfigurera därför platt fildestination och excel-destination.

3. Kör SSIS-paketet och verifiera att data skrevs till excel- och textfiler.

Skapa SSIS-paket och ADO.NET-anslutning

För den här demon använde jag SQL Server Data Tools 2015. För det första skapar jag ett nytt integrationstjänstprojekt med namnet "Export SQL Data ”:

Efter skapandet av ett SSIS-projekt kommer jag att skapa dataflödesuppgiften. Dataflödesuppgiften kommer att använda SQL Server som källa. Excel-filen och den platta filen kommer att bestämmas som destination. Innan dataflödesuppgiften skapas måste vi skapa ADO.NET-anslutningen .

Konfigurera ADO.NET-anslutning

Som jag nämnde ovan kommer jag att använda "WideWorldImportors ” demodatabas som kan laddas ner härifrån.

För att skapa en "Källa ” anslutning, högerklicka på “Anslutningshanterare ” och välj ”Ny ADO.NET-anslutning ” som visas i bilden nedan:

En dialogruta "Konfigurera ADO.NET Connection Manager " kommer öppna. Klicka på "Ny i dialogrutan ” som visas i följande bild:

En dialogruta "Anslutningshanteraren " kommer öppna. Jag kommer att konfigurera SQL-anslutningsparametrarna:

1. Servernamn – är värdnamnet eller IP-adressen för databasservern där SQL är installerat.

2. Autentisering – är en "autentiseringstyp" som används för att ansluta server som är vald på "Servernamn ” rullgardinsmenyn. Det kan vara antingen SQL-autentisering eller Windows-autentisering.

3. Databasnamn – är namnet på databasen som vi ska använda för dataextrahering.

I den här demon kommer jag att använda min lokala virtuella dator. Jag kommer att använda Windows-autentisering för att ansluta SQL-instansen och jag kommer att använda "WideWorldImportors " databas.

Titta på följande bild:

Klicka på Testa anslutning ” för att verifiera den framgångsrika anslutningen. Titta på följande bild:

När SQL-anslutning är konfigurerad kommer du att kunna se anslutningen i "Anslutningshanterare " fönster. Den finns längst ner i kontrollflödesfönstret som visas i följande bild:

Skapa dataflödesuppgift

Dataflödesuppgift används för att flytta data mellan källor och destination. Den kan användas för att utföra ETL-uppgifter (extrahera, transformera och ladda). Jag kommer att exportera data från SQL Server till Excel eller textfil, därför kommer vi att använda uppgiften dataflöde.

För att konfigurera dataflödesuppgiften kommer jag först att dra och släppa dataflödesuppgiften i kontrollflödesfönstret och byta namn på den till "Exportera försäljningsdata till Excel ” som visas i bilden nedan:

Konfigurera ADO.NET-källa

För att fylla i data från SQL Server-tabellen måste vi konfigurera ADO.Net-källkomponenten. Dubbelklicka på "Dataflödesuppgift " att göra det. Fönstret "Konfigurera dataflödesuppgift " kommer öppna. Alternativt kan du välja "Dataflöde ” som finns bredvid ”Kontrollflöde ”. Eftersom vi redan har konfigurerat SQL-anslutning kommer vi att dra och släppa ADO.NET Source till dataflödesfönstret som visas i bilden nedan:

Nu kommer vi att konfigurera ADO.NET Source för att extrahera data från tabellen via frågeställning i SQL Server-tabellen. För att göra det, dubbelklicka på "ADO Net source ”. En dialogruta öppnas. I dialogrutan måste vi konfigurera följande parametrar:

1. ADO.NET Connection Manager – fyller i listan över ADO.NET-anslutningar som skapats i SSIS-paketet.

2. Dataåtkomstläge har två alternativ:

a. Om du väljer "Tabell eller vy " i "Dataåtkomstläge ” rullgardinsmenyn, “Namn på tabellen eller vyn ” rullgardinsmenyn kommer att fyllas med tabeller och vyer som finns i databasen. Se bilden nedan:

b. Om vi ​​väljer "SQL-kommando ” öppnar den en textruta med flera rader där vi kan skriva ad-hoc-frågan för att extrahera data från databasen.

Se bilden nedan:

Vi har redan skapat ADO.Net-anslutningen, så i ADO.NET-anslutningshanteraren rullgardinsmeny för att välja det skapade namnet på den. I den här demon kommer vi att skriva vår egen fråga så dataåtkomstmetoden kommer att vara "SQL Command ”.

Jag skapade en fråga som ger mig listan över kunder från databasen. Den här frågan är nedan:

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

Slutligen kommer ADO.NET-källredigeraren att se ut som bilden nedan:

Vi kan förhandsgranska resultatet av frågan genom att klicka på Förhandsgranska ”-knappen i dialogrutan. Frågeresultatet blir som visas i bilden nedan:

Konfigurera Excel-destination

När vi har konfigurerat ADO.NET-källan kommer vi att konfigurera Excel-destinationen.

Dra och släpp excel-destinationen i SSIS-verktygslådan i dataflödesfönstret och byt namn på den till "Excel-fil för försäljning ” som visas i bilden nedan:

Dubbelklicka på excel-destinationen. En dialogruta "Excel destination editor ” öppnas för att konfigurera följande parametrar:

1. Excel-anslutningshanterare – används för att ansluta excel-filen.

2. Dataåtkomstmetod . Excel-kalkylblad betraktas som en tabell eller vy. Om du väljer "Tabell eller vy ", rullgardinsmenyn "Namn på excelark ” kommer att fyllas med alla kalkylblad som skapas i excel-arbetsboken.

3. Namn på excelark . Som standard är den här rullgardinsmenyn inaktiverad. Det kommer att aktiveras automatiskt när vi väljer "Tabell eller vy ” som dataåtkomstläge. Vi kan också välja lämpligt excel-kalkylblad.

Vi har inte skapat en excel-destinationsanslutning ännu, så för det första är det nödvändigt att skapa en excel-destinationshanterare. För att göra det, klicka på "Ny "-knappen bredvid "Excel-anslutningshanteraren ” rullgardinsmenyn som visas i bilden nedan:

Dialogrutan "Excel-anslutningshanterare " kommer öppna. Här kan vi konfigurera:

1. Excel-filsökväg – platsen för excel-filen.

2. Excel-version – kan välja excel-version från rullgardinsmenyn.

För denna demo skapade jag en excel-fil och sparade den på min dator. För att hitta filen, klicka på Bläddra, gå igenom filsystemet, välj filen och klicka på OK , som visas i bilden nedan:

Välj nu dataåtkomstläge som "Tabell eller vy ” i “Excel-destinationshanteraren ”. Lista över excel-kalkylblad kommer att fyllas i i rullgardinsmenyn. Välj "Namn på excelark ” från rullgardinsmenyn som visas i bilden nedan:

Nu, för att exportera data från SQL-tabell till Excel-fil, måste vi kartlägga fälten för SQL-tabell och Excel-fil. För att göra det, dra den blå pilen under Säljdata för DB-server ”-komponenten och släpp den på “Sales excel-fil ”-komponent som visas i bilden nedan:

Dubbelklicka på "Excel-destination ” för att kartlägga fälten. "Excel-destinationsredigerare (Excel-fil för försäljning) " kommer öppna. Välj "Mappningar ” från den vänstra rutan i dialogrutan. Vid mappning kommer indatakolumner att vara kolumnerna i SQL Query-utdata och destinationskolumner kommer att vara kolumnerna i excel-filen. Det rekommenderas att behålla samma namn på SQL Query-utdata och excel-kolumner. Detta kommer att göra kartläggningen mycket enklare eftersom vi inte behöver kartlägga fält manuellt. SSIS kommer att mappa kolumner automatiskt.

För denna demo har excel-filen och SQL Query-utdata samma namn så mappningen utfördes automatiskt. Kontrollera att mappningen har gjorts korrekt och klicka på OK . Se bilden nedan:

När mappningen är klar kommer hela dataflödesuppgiften att se ut som på bilden nedan:

Nu kan vi köra paketet. För att göra det, klicka på "Start ”-knappen som finns i menyraden. Om paketet körs framgångsrikt kan du se den gröna ikonen på varje komponent som visas i bilden nedan:

Konfigurera platt fildestination

Som jag nämnde i början av artikeln, i SSIS kan vi exportera data från SQL Table till textfil. För att göra det måste vi skapa en platt fildestination i dataflödesuppgiften. Dra och släpp "Flat fildestination " till uppgiftsfönstret för dataflödet och byt namn på det till "Försäljningsdata till textfil ” som visas i bilden nedan:

Dubbelklicka nu på "Flat fildestination ”. En dialogruta "Destinationsredigerare för platt fil ” öppnas som visas i bilden nedan:

Klicka nu på "Ny "-knappen bredvid "Anslutningshanterare för platt fil ” rullgardinsmenyn. Dialogrutan "Flat filformat " kommer öppna. Den har fyra alternativ:exportera data till avgränsad, fast bredd, fast bredd med radavgränsare och trasig höger. För denna demo kommer vi att välja "Avgränsad ”.

Välj Avgränsad ” och klicka på OK som det visas på bilden nedan:

En annan dialogruta "Redaktör för platt filanslutning " kommer öppna. Namnge anslutningshanteraren "Exportera försäljningsdata ” som det visas på följande bild:

För att spara SQL-data i en textfil kan vi antingen skapa den nya textfilen eller välja den befintliga.

För denna demo kommer vi att skapa en ny fil. Jag kommer att skapa filen med namnet Försäljningsdata ”. För att göra det klickar jag på bläddra och går igenom filsystemet som visas i bilden nedan:

Nu kommer vi att konfigurera parametrar för platt fil:

  • Exporterad data från SQL Table kommer att lagras i det avgränsade formatet så välj "D elimited " i "Format ” rullgardinsmenyn som visas i bilden nedan:

  • "Rubrikradavgränsare " kommer att vara "{CR}{LF} ”, så välj lämpligt alternativ i rullgardinsmenyn som visas i bilden nedan:

  • I textfilen kommer den första raden att vara kolumnrubriken så markera "Kolumnnamn i den första dataraden " som visas på bilden nedan:

Klicka på OK för att stänga "redigeraren för platt filanslutningshanterare ”.

Nu ska vi kartlägga kolumnerna. För att göra det klickar du på "Mappningar " på vänster sida av "Destinationsredigerare för platt fil ” som visas på bilden nedan:

Som namnen på "SQL Query input " och "Textfildestination ” kolumner är samma, SSIS-paket mappar kolumner automatiskt.

När mappningen är klar kommer hela dataflödesuppgiften att se ut som på bilden nedan:

Nu kan vi köra paketet. För att göra det, klicka på "Start ”-knappen som finns i menyraden. Om paketet körs framgångsrikt kan du se den gröna ikonen på varje komponent som visas i bilden nedan:

Nedan är skärmdumpen av data som extraherades från SQL-tabellen:

Sammanfattning

I den här artikeln täckte jag:

  1. Skapa ADO.NET-anslutningshanteraren
  2. Skapa dataflödesuppgift och konfigurera källdatabasen
  3. Konfigurera Excel-destination och exportera data från SQL-tabellen till Excel-fil.
  4. Konfigurera platt-fildestination och exportera data från SQL-tabell till textfil.

Användbara verktyg:

Devart SSIS Data Flow Components – låter dig integrera databas- och molndata via SQL Server Integration Services.


  1. Hur man lägger till administratörsservern i R12.2

  2. Uppdatera rader i en tabell med data från en annan tabell baserat på att en kolumn i varje är lika

  3. SQLite JSON_QUOTE()

  4. Oracle:Uppdatering av en tabellkolumn med ROWNUM i kombination med ORDER BY-satsen