Should a data warehouse developer know Powershell scripting?
I am a SQL Server (2005 & 2008) data warehouse developer (SSIS, SSAS, SSRS, SQL) and I am wondering if it would be worth the effort and time to learn Powershell scripting. Are there applicable uses from a development perspective? I understand that from a DBA view there is considerable power in Powershell for administration 开发者_运维问答- does any of this translate to useful commands for a developer?
Thanks!
I think any tools you can add to your toolbox are a benefit no matter what your IT area of expertise.
I have used Powershell for some automation tasks.
I have also used C# WinForms apps to generate SSIS packages.
I have also code-generated SQL for a different platform from T-SQL.
I would think that none of these are in the basic DW toolbox, but I tend to optimize my return on time and effort.
Any time you have an additional tool, it can be useful. The only caveats would be that you have to balance:
1) Picking the right tool for the job
2) Ensuring that the variety of tools used does not increase system complexity (increasing maintenance costs) or reduce performance at subsystem interfaces amongst many problems you could have if your system has a lot of moving parts compounded by running in different paradigms/environments/frameworks
While having more weapons in your arsenal is a good thing in general, there's not much from a DW/SQL developer perspective that Powershell would be particularly useful for other than perhaps some maintenance tasks. If you're lacking in shell scripting go ahead and learn it but I wouldn't expect it to pay huge dividends on the DW/SQL side.
Historically I've used Python for this sort of thing since before Powershell came out, but I'm considering Powershell as it comes as standard with Windows server platforms.
Sometimes, the correct user interface is a scripting langauge. I have used IronPython to build administrative utilities for things with .NET APIs (for example cube partition managers) on a number of occasions. This is done explicitly so that the production staff can script these things independently of the release process - it empowers them to manage system configuration.
Powershell would also do this well, and these days you can pretty much assume that it's available in a standard Windows server environment. As a language for development tasks like code generators you might be better off with (say) Python but Powershell is perfectly capable as a language. It's also growing a good sweet spot of availability and political acceptability - as it comes with standard Windows builds there's really no excuse for production staff to obstruct deploying systems with Powershell script components.
精彩评论