Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Esporta i dati da SQL Server in Excel e file di testo tramite il pacchetto SSIS

Durante l'utilizzo del flusso di dati SSIS, possiamo eseguire attività ETL che possono essere utilizzate per la migrazione dei dati, l'offload dei dati, la progettazione e l'implementazione del data warehouse.

In questo articolo spiego come esportare i dati da una tabella SQL in Excel e in un file di testo utilizzando l'attività del flusso di dati SSIS.

In questa demo, eseguirò i seguenti passaggi:

1. Crea un pacchetto SSIS e crea ADO.NET Connection Manager.

2. Creare un'attività del flusso di dati con un'origine ADO.NET per popolare i dati da SQL Server. I dati verranno scritti su file Excel e file di testo, quindi configura la destinazione del file flat e la destinazione Excel.

3. Eseguire il pacchetto SSIS e verificare che i dati siano stati scritti su Excel e file di testo.

Crea pacchetto SSIS e connessione ADO.NET

Per questa demo, ho utilizzato SQL Server Data Tools 2015. In primo luogo, sto creando un nuovo progetto di servizio di integrazione denominato "Esporta dati SQL ”:

Dopo la creazione di un progetto SSIS, creerò l'attività di flusso di dati. L'attività Flusso di dati utilizzerà SQL Server come origine. Il file Excel e il file flat verranno determinati come destinazione. Prima della creazione dell'attività di flusso di dati, è necessario creare la connessione ADO.NET .

Configura connessione ADO.NET

Come accennato in precedenza, utilizzerò "WideWorldImportors ” database demo scaricabile da qui.

Per creare una "Sorgente ” connessione, fai clic con il pulsante destro del mouse su “Gestione connessioni ” e seleziona “Nuova connessione ADO.NET ” come mostrato nell'immagine qui sotto:

Una finestra di dialogo "Configura ADO.NET Connection Manager " aprirà. Nella finestra di dialogo, fai clic su "Nuovo ” come mostrato nell'immagine seguente:

Una finestra di dialogo "Gestione connessioni " aprirà. configurerò i parametri di connettività SQL:

1. Nome server – è il nome host o l'indirizzo IP del server di database in cui è installato SQL.

2. Autenticazione – è un "tipo di autenticazione" utilizzato per connettere il server selezionato su "Nome server " casella a discesa. Può essere Autenticazione SQL o Autenticazione Windows.

3. Nome database – è il nome del database che utilizzeremo per l'estrazione dei dati.

In questa demo, utilizzerò la mia VM locale. Userò l'autenticazione di Windows per connettere l'istanza SQL e utilizzerò "WideWorldImportors ” banca dati.

Guarda la seguente immagine:

Fai clic su "Verifica connessione ” per verificare la corretta connettività. Guarda la seguente immagine:

Una volta configurata la connessione SQL, potrai vedere la connessione in "Gestione connessioni " finestra. Si trova nella parte inferiore della finestra del flusso di controllo, come mostrato nell'immagine seguente:

Crea attività flusso di dati

L'attività Flusso di dati viene utilizzata per spostare i dati tra le origini e la destinazione. Può essere utilizzato per eseguire attività ETL (estrazione, trasformazione e caricamento). Esporterò i dati da SQL Server in Excel o in un file di testo, quindi utilizzeremo l'attività del flusso di dati.

Per configurare l'attività del flusso di dati, in primo luogo trascinerò l'attività del flusso di dati nella finestra del flusso di controllo e la rinominerò come "Esporta dati di vendita in Excel ” come mostrato nell'immagine qui sotto:

Configura sorgente ADO.NET

Per popolare i dati dalla tabella di SQL Server, è necessario configurare il componente di origine ADO.Net. Fare doppio clic su "Attività flusso di dati " fare quello. La finestra "Configura attività flusso di dati " aprirà. In alternativa, puoi selezionare "Flusso di dati ” che si trova accanto a “Controllo flusso ”. Poiché abbiamo già configurato la connessione SQL, trascineremo e rilasciamo ADO.NET Source nella finestra del flusso di dati come mostrato nell'immagine seguente:

Ora configureremo ADO.NET Source per estrarre i dati dalla tabella tramite query sulla tabella di SQL Server. Per farlo, fai doppio clic su "ADO Net source ”. Si aprirà una finestra di dialogo. Nella finestra di dialogo dobbiamo configurare i seguenti parametri:

1. Gestione connessioni ADO.NET – popola l'elenco delle connessioni ADO.NET create nel pacchetto SSIS.

2. Modalità di accesso ai dati ha due opzioni:

un. Se selezioni "Tabella o Visualizza ” in “Modalità di accesso ai dati ” casella a discesa, “Nome della tabella o della vista ” verrà riempito con le tabelle e le viste esistenti nel database. Vedi immagine sotto:

b. Se selezioniamo "Comando SQL ”, si aprirà una casella di testo multiriga dove possiamo scrivere la query Ad-Hoc per estrarre i dati dal database.

Vedi immagine sotto:

Abbiamo già creato la connessione ADO.Net, quindi in Gestione connessione ADO.NET a discesa per selezionarne il nome creato. In questa demo, scriveremo la nostra query in modo che il metodo di accesso ai dati sia "Comando SQL ”.

Ho creato una query che mi darà l'elenco dei clienti dal database. Questa domanda è sotto:

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

Infine, l'editor di sorgenti ADO.NET sarà simile all'immagine seguente:

Possiamo visualizzare in anteprima l'output della query facendo clic su "Anteprima ” nella finestra di dialogo. Il risultato della query sarà come mostrato nell'immagine seguente:

Configura destinazione excel

Una volta configurato il sorgente ADO.NET, configureremo la destinazione di Excel.

Nella casella degli strumenti SSIS, trascina e rilascia la destinazione Excel nella finestra del flusso di dati e rinominala come "File Sales Excel ” come mostrato nell'immagine qui sotto:

Fare doppio clic sulla destinazione excel. Una finestra di dialogo "Editor di destinazione di Excel ” si aprirà per configurare i seguenti parametri:

1. Gestione connessioni Excel – utilizzato per collegare il file excel.

2. Metodo di accesso ai dati . Il foglio di lavoro di Excel è considerato una tabella o una vista. Se selezioni "Tabella o Visualizza ”, casella a discesa “Nome del foglio Excel ” verrà riempito con tutti i fogli di lavoro creati nella cartella di lavoro di Excel.

3. Nome del foglio Excel . Per impostazione predefinita, questa casella a discesa è disabilitata. Verrà abilitato automaticamente quando selezioniamo "Tabella o Visualizza ” come modalità di accesso ai dati. Possiamo anche selezionare il foglio di lavoro Excel appropriato.

Non abbiamo ancora creato una connessione di destinazione excel, quindi per prima cosa è necessario creare un gestore di destinazione excel. Per farlo, fai clic su "Nuovo ” accanto a “Gestione connessioni Excel ” come mostrato nell'immagine qui sotto:

La finestra di dialogo "Gestione connessioni Excel " aprirà. Qui possiamo configurare:

1. Percorso file Excel – la posizione del file excel.

2. Versione Excel – può selezionare la versione di Excel dalla casella a discesa.

Per questa demo, ho creato un file excel e l'ho salvato sul mio computer. Per individuare il file, fai clic su Sfoglia, spostati nel file system, seleziona il file e fai clic su OK , come mostrato nell'immagine seguente:

Ora seleziona la modalità di accesso ai dati come "Tabella o vista " in "Gestione destinazioni Excel ”. L'elenco dei fogli di lavoro Excel verrà compilato nella casella a discesa. Seleziona "Nome del foglio Excel ” dalla casella a discesa come mostrato nell'immagine seguente:

Ora, per esportare i dati dalla tabella SQL al file excel, dobbiamo mappare i campi della tabella SQL e del file Excel. Per farlo, trascina la freccia blu sotto "Dati di vendita del server DB ” e rilascialo su “File Sales excel ” come mostrato nell'immagine seguente:

Fare doppio clic su "Destinazione Excel ” per mappare i campi. "Editor di destinazione Excel (file Sales Excel) " aprirà. Seleziona "Mapping ” opzione dal riquadro sinistro della finestra di dialogo. Nella mappatura, le colonne di input saranno le colonne dell'output della query SQL e le colonne di destinazione saranno le colonne del file excel. Si suggerisce di mantenere lo stesso nome dell'output della query SQL e delle colonne excel. Ciò renderà la mappatura molto più semplice perché non è necessario mappare i campi manualmente. SSIS mapperà automaticamente le colonne.

Per questa demo, il file excel e l'output della query SQL hanno lo stesso nome, quindi la mappatura è stata eseguita automaticamente. Verifica che la mappatura sia stata eseguita correttamente e fai clic su OK . Vedi l'immagine qui sotto:

Una volta completata la mappatura, l'intera attività del flusso di dati apparirà come nell'immagine seguente:

Ora possiamo eseguire il pacchetto. Per farlo, fai clic su "Inizia ” che si trova nella barra dei menu. Se il pacchetto viene eseguito correttamente, puoi vedere l'icona verde su ciascun componente come mostrato nell'immagine seguente:

Configura la destinazione del file flat

Come accennato all'inizio dell'articolo, in SSIS possiamo esportare i dati dalla tabella SQL in un file di testo. Per fare ciò, dobbiamo creare una destinazione di file flat nell'attività del flusso di dati. Trascina e rilascia "Destinazione file flat ” nella finestra dell'attività del flusso di dati e rinominarla come “Dati di vendita in file di testo ” come mostrato nell'immagine qui sotto:

Ora fai doppio clic su "Destinazione file flat ”. Una finestra di dialogo "Editor di destinazione file flat ” si aprirà come mostrato nell'immagine seguente:

Ora fai clic su "Nuovo ” accanto a “Gestione connessioni file flat " casella a discesa. La finestra di dialogo "Formato file piatto " aprirà. Ha quattro opzioni:esporta i dati in delimitato, a larghezza fissa, a larghezza fissa con delimitatori di riga e irregolare a destra. Per questa demo, sceglieremo "Delimitato ”.

Seleziona "Delimitato " e fai clic su OK come mostrato nell'immagine qui sotto:

Un'altra finestra di dialogo "Editor di gestione connessione file flat " aprirà. Assegna al gestore connessione "Esporta dati sulle vendite ” come mostrato nell'immagine seguente:

Per salvare i dati SQL in un file di testo, possiamo creare il nuovo file di testo o scegliere quello esistente.

Per questa demo, creeremo un nuovo file. Creerò il file denominato “Dati di vendita ”. Per fare ciò, farò clic su Sfoglia e mi sposterò nel file system come mostrato nell'immagine seguente:

Ora configureremo i parametri del file flat:

  • I dati esportati dalla tabella SQL verranno archiviati nel formato delimitato, quindi seleziona "D limitato ” in “Formato ” come mostrato nell'immagine qui sotto:

  • "Delimitatore di riga di intestazione ” sarà “{CR}{LF} ”, quindi scegli l'opzione appropriata nella casella a discesa come mostrato nell'immagine qui sotto:

  • Nel file di testo, la prima riga sarà l'intestazione della colonna, quindi seleziona "Nomi delle colonne nella prima riga di dati ” come mostrato nell'immagine qui sotto:

Fai clic su OK per chiudere "Editor di gestione connessione file flat ”.

Ora mapperemo le colonne. Per farlo, fai clic su "Mapping ” sul lato sinistro di “Editor di destinazione file flat ” come mostrato nell'immagine qui sotto:

Come i nomi di "Input query SQL " e "Destinazione file di testo " le colonne sono le stesse, il pacchetto SSIS associa automaticamente le colonne.

Una volta completata la mappatura, l'intera attività del flusso di dati apparirà come nell'immagine seguente:

Ora possiamo eseguire il pacchetto. Per farlo, fai clic su "Inizia ” che si trova nella barra dei menu. Se il pacchetto viene eseguito correttamente, puoi vedere l'icona verde su ciascun componente come mostrato nell'immagine seguente:

Di seguito è riportato lo screenshot dei dati estratti dalla tabella SQL:

Riepilogo

In questo articolo ho trattato:

  1. Creazione del gestore di connessione ADO.NET
  2. Creazione dell'attività del flusso di dati e configurazione del database di origine
  3. Configurazione della destinazione excel ed esportazione dei dati dalla tabella SQL al file Excel.
  4. Configurazione della destinazione del file flat ed esportazione dei dati dalla tabella SQL al file di testo.

Strumenti utili:

Devart SSIS Data Flow Components:consente di integrare database e dati cloud tramite SQL Server Integration Services.