MSSQL:SSIS Package
From Aino Wiki
Contents
Introduzione
Sono pacchetti DTS per varie funzioni di elaborazione e trasferimento dei dati dai server.
Possono essere creati direttamente usando Visual Studio (è necessaria una [[MSSQL:SSIS Installazione | installazione specifica]) o creati come 'backup' di procedure all'interno di SQL Server quindi salvati su File o direttamente sul Server.
Vedere la guida interna: How Start
Esempi
SISS da DB Server
Esempio di pacchetto SSIS disponibile direttamente sul DB server, esiste anche la possibilità di salvare il pacchetto su file, vedi questo esempio (da questa Wiki): SSIS per espotazione dati in Excel
Un SISS così progettato può essere direttamente invocato da un Job segue un esempio
Esempio importazione da Excel
Creazione del Package
ATTENZIONE occorre sapere che se si usa una versione dell'Office a 32bit la procedura illustrata seguente funzionerà altrimenti se si ha una versione a 64bit occorrerà importare da file Excel usando un Wizard specificolanciandolo dal menù start e non usando quello in Management Studio che è configurato per lanciare il Wizard per Office 32 bit.
Invece, da Management Studio col Wizard per Office a 32bit:
...parentesi...
Potrebbe capitare che il Driver necessario non sia installato sulla macchina da dove si lavorerà, segue es di errore:
The requested OLE DB provider Microsoft.ACE.OLEDB.12.0 is not registered.
Oppure:
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. (System.Data):
Tabella corrispondenza versione file Excel con versione driver necessario
File Excel version | Driver |
---|---|
Microsoft Excel 2007-2010 | Microsoft.ACE.OLEDB.12.0 Provider |
Microsoft Excel 2013 | Microsoft.ACE.OLEDB.15.0 Provider |
Microsoft Excel 2016 | Microsoft.ACE.OLEDB.16.0 Provider |
Previous version | ToDo |
allora occorrerà installare l'opportuno driver: "Microsoft Access Database Engine 201x Redistributable"
Ad es per:
- Excel 2007-2010 scaricarlo al link www.microsoft.com/en-us/download/details.aspx?id=13255
Si deve scegliere tra versione 32 ed a 64 bit, si sceglierà tra due files:
- AccessDatabaseEngine.exe
- AccessDatabaseEngine_X64.exe
Nel mio caso ho dovuto scegliere la versione a 32bit altrimenti dava lo stesso errore...
ATTENZIONE se tutto funzionasse col driver a 32bit si produrrà un problema nel momento in cui eseguirete il packegae in un Job, avrete o un errore opposto in quanto non è installato il driver a 64 bit ma è possibile configurare il JOB a farlo, seguire questa [guida interna
Segue cosa risulta dalle app installate da pannello di controllo
...CONTINUA...
Importazione su DB di un Package
Dopo:
- aver creato una cartella sotto il nodo \Integration Services Catalog\SSISDB
- creato un package SISS e salvato su File System
occorrerà importarlo sul DB soprattutto se lo si vuol fare eseguire in un Job.
Seguono i passi necessari all'importazione:
Si aprirà la seguente finestra
ignora "Attenzione simulare una salvataggio ....", cliccare su "Close", quindi si apre:
Click su "Next"
Click su "Next" ed infine "Deploy"
Può accadere il seguente errore dovuto a qualche policy introdotta sul server o un errata ed inattesa configurazione\aggiornamento:
SQL Server Integration Services A .NET Framework error occurred during execution of user-defined routine or aggregate "deploy_project_internal": System.ComponentModel.Win32Exception: A required privilege is not held by the client System.ComponentModel.Win32Exception: at Microsoft.SqlServer.IntegrationServices.Server.ISServerProcess.StartProcess(Boolean bSuspendThread) at Microsoft.SqlServer.IntegrationServices.Server.ServerApi.DeployProjectInternal(SqlInt64 deployId, SqlInt64 versionId, SqlInt64 projectId, SqlString projectName) . (Microsoft SQL Server, Error: 6522)
Si risolve eseguendo una reinstallazione ovvero una 'installazione' eseguendo un "repair". Segue il risultato della aggiunta del package SISS al DB server
Configurazione SISS DB Package
Si aggiunge la password di accesso al DB di destinazione che per sicurezza è stata tolta durante l'importazione:
ATTENZIONE, se l'utente usato per l'esecuzione del package è lo stesso (es. 'sa') con ora si modifica\configura il SSIS occorre autenticarsi in SQL Server e fare l'operazione che segue con un'latra utenza.
Job di esecuzione di un Package
Per prima cosa si aggiunge il Package creato precedentemente:Oppure nel caso di SQL Server 2017
ATTENZIONE è frequente il caso in cui si è installato il driver MS.ACE.OLEDB ("Microsoft Access Database Engine 2010 Redistributable") a 32bit mentre l'esecuzione del Job richiede il driver a 64 bit, segue procedura per forzare l'esecuzione a 32bit.
In caso di questo errore:
Configurare lo step come segue:
SISS da Visual Studio Data Tools
Ottenuti attraverso una versione particolare di Visual Studio, SQL Server Data Tools (SSDT), per la progettazione di report, set e origini di dati condivise.
Esportazione in Excel
Si creerà un pacchetto SSIS fruibile da file .DTSX
Avviare Visual studio nella installazione "SQL Server Data Tools":
Quindi si crea un nuovo progetto:
Si aggiunge un 'Data flow task' cliccando sul link al centro:
Oppure eliminare dal progetto il package di default e sostituirlo con quello disponibile (creato da Management Studio)
Si aggiungono i seguenti 2 elementi del Task:
Configurazione:
Infine:
L'esecuzione è eseguibile premendo F5 (esempio fuori dal contesto precedente):
Mappa e Link
Parole chiave: