Business Intelligence http://blogs.ugidotnet.org/nettools/category/Business Intelligence.aspx Business Intelligence it-IT Davide Mauri Subtext Version 2.6.0.0 Powershell & SQL Server = Automazione totale http://blogs.ugidotnet.org/nettools/archive/2007/04/16/75608.aspx <P>Settimana scorsa ho avuto l'occasione di iniziare ad usare PowerShell in produzione. Devo dire che non ne vedevo l'ora, dopo aver visto le bellissime cose che pu&#242; fare, anche grazie ai suggerimenti di <A href="http://www.pulsarit.net/cs/blogs/claudiog/default.aspx">Claudio</A> che me ne decanta sempre la potenza e la flessibilit&#224;.</P> <P>Dopo pochi minuti&nbsp;di utilizzo di PowerShell sono entrato nella fase "esaltazione pura": PowerShell &#232; un semplicemente stupendo! Avevo la necessit&#224; di estrarre da una serie di cubi di Analysis Server 2005 tutte le dimensioni e tutte le misure in modo da poterle mettere su excel ed iniziare a fare un'analisi approfondita delle necessit&#224; del cliente. Le dimensioni e le misure erano tante, quindi ho subito pensato ad un modo per evitare di fare tutto a manina. Ovviamente .NET ed AMO (Analysis Server Management Objects) sono stato subiti presi in considerazione, insieme allo sviluppo di una piccola console application che facesse quello che mi serviva. Per&#242; un'applicazione console, deve cmq essere compilata, richiede una certa conoscenza di Visual Studio e di .NET per essere manutenuta....cose che avrei preferito evitare, visto e considerato che sul progetto non ci lavoraono solo sviluppatori ma soprattutto DBA/DBDev&nbsp;e Sistemisti.</P> <P>Ho voluto provare ad usare PowerShell che, essendo appunto una Shell di comandi, &#232; pi&#249; facile da far utilizzare anche ai non-sviluppatori. Beh, devo dire che PowerShell fara contentissimi tutti, Sistemisti, DBA e Sviluppatori! Unendo la potenza di .NET con la possibilit&#224; di accedere alle risorse del sistema operativo e delle applicazioni (tramite COM o .NET)...si pu&#242; automatizzare praticamente qualsiasi cosa in brevissimo tempo (in questo la <EM>pipeline</EM> aiuta moltissimo). Ecco le poche righe di codice nessarie per fare quello che mi serviva:</P> <P><FONT face="Courier New" size=2>[System.Reflection.Assembly]::LoadFrom('C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.AnalysisServices.DLL')</FONT></P> <P><FONT face="Courier New" size=2>$server = New-Object 'Microsoft.AnalysisServices.Server'<BR>$server.Connect('localhost')</FONT></P> <P><FONT face="Courier New" size=2>$database = $server.databases.FindByName('Margine')<BR>$cube = $database.cubes[0]<BR>$cube.Dimensions | select-object Name, Dimension | Export-Csv 'c:\CUBO_Margine_Dimensioni.csv' -NoTypeInformation<BR>$cube.MeasuresGroup | % { $_.Measures} | select Parent, Name | Export-Csv 'c:\CUBO_Margine_Misure.csv' -NoTypeInformation</FONT></P> <P>Le persone che hanno visto all'opera PowerShell sono rimaste a bocca aperta! <A title="" href="#"><IMG src="http://www.davidemauri.it/emoticone/appagato.gif" border=0></A></P> <P>Pi&#249; tempo passa pi&#249; il .NET Framework manifesta tutta la sua grandiosa bellezza, e PowerShell ne &#232; che un fantastico esempio!</P><img src="http://blogs.ugidotnet.org/nettools/aggbug/75608.aspx" width="1" height="1" /> Davide Mauri http://blogs.ugidotnet.org/nettools/archive/2007/04/16/75608.aspx Mon, 16 Apr 2007 17:34:00 GMT http://blogs.ugidotnet.org/nettools/archive/2007/04/16/75608.aspx#feedback 2 http://blogs.ugidotnet.org/nettools/comments/commentRss/75608.aspx http://blogs.ugidotnet.org/nettools/services/trackbacks/75608.aspx