SQL Server 2016: Nuove funzionalità in SQL Server Integration Services Gilberto Zampatti [email protected] Gilberto Zampatti RDBMS: ….dalle origini SQL Server: dalla 6.5 Mentore, trainer, Speaker… Membro fondatore di UGISS Social: Linkedin, Skype, Whatsapp Agenda Le principali aree di intervento Deployment Debugging Gestione dei packages Connettività On premise nel cloud Produttività …varie Deployment Deployment incrementale Uno o più packages in un progetto (nuovo o presistente) possono essere “installati” senza dover eseguire il deployment dell’intero progetto Supporto per Always On Availability Groups Possibilità di introdurre SSISDB in un Availability Group Always Encrypted Nuova feature che garantisce la protezione dei dati sensibili Debugging Column names for errors in the data flow Nel Data Viewer è stata introdotta una nuova Colonna virtuale (ErrorColumn – Description)… Nuovi livelli di logging Nel SSIS Catalog è disponibile un Quinto livello predefinito e si possono generale livelli di logging personalizzati Nuovi database roles per SSISDB Ssis_logreader consente l’accesso al logging senza dover essere ssis_admin… Gestione dei packages Control Flow Template Consente la riusabilità di control flows di uso comune Proprietà AutoAdjustBufferSize Permette all’Engine di calcolare automaticamente la dimensione del buffer per il Data Flow Upgrade dei packages Durante l’upgrade di un progetto sono conservate le funzionalità dei connection managers, il layout e le annotazioni… Connettività (on premise) Supporto per Hadoop File System (HDFS) Connection manager, tasks di control flow e data flow source e destination Supporto esplicito per Excel 2013 e 2016 Connection manager, tasks di control flow, data flow source e destination e Import/Export Wizard Supporto per Odata v3 e v4 Formati ATOM e JSON per v3, JSON per v4 Connettore per SAP BW Download da Feature Pack Connettività (Azure) Azure Feature Pack for SSIS Connection managers (Storage e Subscription), tasks, component del Data Flow (source e destination) e un nuovo enumeratore per container For Each; Produttività SSIS disponibile nelle ultime versioni di SSDT Molte catalog view sono utilizzabili anche se l’utente non è membro di ssis_admin Migliorie e soluzione bugs nel designer …varie Designer e Servizio di Change Data Capture per Oracle Supporto per R Aggiornamento di ODBC e dei component CDC Aggiornamento del task di Analysis Services Execute DDL Trasformazione Balance Data Distributor Componenti Data Feed Publishing Deployment incrementale Funzionalità che permette di effettuare il deployment di uno o più packages in un progetto preesistente o nuovo senza la necessità di effettuare il deployment dell’intero progetto Integration Services Deployment Wizard run isdeploymentwizard.exe (dal folder %ProgramFiles%\...\130\DTS\Binn) SSMS (che a sua volta innesca il wizard) SSDT (idem come sopra) Da stored procedure (catalog.deploy_packages) Management Object Model API (https://msdn.microsoft.com/en-US/library/mt143173.aspx#MOMApi) Catalog.deploy_packages @folder_name = folder_name, @project_name = project_name, @packages_table = packages_table, @operation_id OUTPUT operation_id OUTPUT @packages_table è il file .dtsx del package da sottoporre a deployment; la variabile è dichiarata di tipo [catalog].[Package_Table_Type] DEMO Deployment incrementale Always On SSISDB può essere inserito in un Availability Group Creando il database SSISDB abilitare Enable CLR Integration e Enable automatic execution of Integration services stored procedures at SQL Server startup Aggiungendo il database all’availability group inserire la password (encryption)… Always On Una volta inserito, gli si deve abilitare il Supporto per AlwaysOn Always Encrypted Nuova feature che garantisce visibilità protetta dei dati sensibili L’encryption avviene in modo trasparente nell’applicazione: SQL Server opera sui dati già criptati. In caso di compromissione dell’istanza, l’hacking non può decriptare i dati. Attualmente è supportata solo dal provider ADO.NET Always Encrypted La trasformazione Lookup supporta Always Encrypted È necessario caricare le tabelle (child e lookup) in cache tramite ADO.NET L’input del lookup sarà il set depositato in cache Column names for errors Quando si ridirigono righe errate nel data flow verso un error output, ogni riga presenta un identificatore numerico per l’errore e l’Id della Colonna in errore; Nell’Advanced Editor del Data Flow è presente ora una nuova proprietà: LineageIdentificationString… In Design mode il DataViewer introduce la Colonna ErrorColumnDescription Logging 4 livelli tradizionalmente disponibili: None Basic Performance Verbose …più uno: RuntimeLineage Ed un dialog box pilota la creazione di livelli di logging personalizzati utilizzabili in run time Ruoli di database per SSISDB Ssis_logreader Consente l’accesso alle viste che contengono output di logging (senza dover essene inclusi in ssis_admin Ssis_monitor Ruolo di supporto ad AlwaysOn, per uso interno da parte del catalogo Control Flow Templates SSIS consente di salvare Containers e/o task di control flow usati comunemente per poterli riutilizzare più volte in uno o più packages di un progetto Il Template è esclusivamente una funzionalità del design time Il designer crea, apre, aggiorna e salva il template, ed aggiunge, configure o elimina templates in un package SSIS non conosce il template in quanto tale: esegue tasks e containers come sempre Control Flow Templates dtsx. Designer file Dtsxt files SSIS designer .dtsx file SSIS runtime DEMO Templates Proprietà del DataFlow BufferTempStoragePath: Configura la temporary storage dei buffer dei dati BLOBTempStoragePath: Configura la temporary storage dei buffer per le colonne che contengono BLOBs DefaultBufferSize: Configura la dimensione del singolo buffer DefaultBufferMaxRows: Configura il numero Massimo di righe per buffer AutoAdjustBufferSize: Normalizza la dimensione del buffer automaticamente sulla base del valore assegnato a DefaultBufferMaxRows Proprietà del DataFlow EngineThreads: Suggerisce all’engine del Data Flow il numero di threads da utilizzare RunInOptimizedMode: Consente all’engine di “far pulizia” rimuovendo dal data flow colonne, outputs e component non utilizzati Supporto per HADOOP file System Connection Manager Hadoop Connection Manager Tasks di Control Flow Hadoop File System Task Hadoop Hive Task Hadoop Pig Task Data Flow HDFS File Source HDFS File Destination Azure Feature Pack Connection Managers Azure Storage Connection Manager Azure Subscription Connection Manager Data Flow Components Azure Blob Source Azure Blob Destination Enumerator Foreach Azure Blob Enumerator Azure Feature Pack Control Flow Task Azure Blob Upload Azure Blob Download Azure HDInsight Hive Task Azure HDInsight Pig Task Azure HDInsight Create Cluster Azure HDInsight Delete Cluster Q&A Questions?