Login Login
MORE

WIDGETS

Widgets

Wanted articles
Who is online?
Article tools

MSSQL:SSIS Package

From Aino Wiki

Jump to: navigation, search

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

SSIS Packages.png

Un SISS così progettato può essere direttamente invocato da un Job segue un esempio

Job esecuzione SISS sul DB Server.png

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.

SQL 2017 Import tool Menu.png

Invece, da Management Studio col Wizard per Office a 32bit:

SISS Import from Exce 01.png
SISS Import from Exce 02.png


...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):

Import fron Datasource Provider not registered 01.png

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:

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

Data Provider 14.png


...CONTINUA...

SISS Import from Exce 03.png
SISS Import from Exce 04.png
SISS Import from Exce 05.png
SISS Import from Exce 06.png
SISS Import from Exce 07.png
SISS Import from Exce 08.png
SISS Import from Exce 09.png
SISS Import from Exce 10.png
SISS Import from Exce 11.png

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:

SISS Importazione Package 00.png

Si aprirà la seguente finestra

SISS Importazione Package 01.png
SISS Importazione Package 02.png
SISS Importazione Package 03.png
SISS Importazione Package 04.png
SISS Importazione Package 05.png

ignora "Attenzione simulare una salvataggio ....", cliccare su "Close", quindi si apre:

SSMS import package 01.png

Click su "Next"

SSMS import package 02.png


SISS Importazione Package 06.png


Click su "Next" ed infine "Deploy"

SISS Importazione Package 07.png

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)
SSIS error user without privilege.jpg

Si risolve eseguendo una reinstallazione ovvero una 'installazione' eseguendo un "repair". Segue il risultato della aggiunta del package SISS al DB server

SISS Importazione Package 08.png

Configurazione SISS DB Package

SISSConfigurare exec Package 01.png

Si aggiunge la password di accesso al DB di destinazione che per sicurezza è stata tolta durante l'importazione:

SISSConfigurare exec Package 02.png

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.

SISSConfigurare exec Package 03.png

Job di esecuzione di un Package

Per prima cosa si aggiunge il Package creato precedentemente:
Job esecuzione SISS sul DB Server 00.png

Oppure nel caso di SQL Server 2017

Job SSIS new step 01.png

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:

Job SSIS Error 64 to 32 bit driver.png

Configurare lo step come segue:

Job SSIS forced to 32bit.png

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":

SQL Server DataTools 2014 StartMenu.png

Quindi si crea un nuovo progetto:

SSIS Export Excel 01.png

Si aggiunge un 'Data flow task' cliccando sul link al centro:

SSIS Export Excel 02.png

Oppure eliminare dal progetto il package di default e sostituirlo con quello disponibile (creato da Management Studio)

SSDT con Package SSIS.png

Si aggiungono i seguenti 2 elementi del Task:

SSIS Export Excel 03.png

Configurazione:

SSIS Export Excel 04.png

Infine:

SSIS Export Excel 05.png

L'esecuzione è eseguibile premendo F5 (esempio fuori dal contesto precedente):

SSIS esecuzione.png

Mappa e Link


SSIS | MS SQL |


C# | Visual Studio


Parole chiave:

Author