This month’s T-SQL Tuesday is brought to us by Mala Mahadevan. Mala has challenged us to set some goals for our own learning in 2018. This could be learning to improve our social skills, technical skills, or perhaps some other area of our lives. The challenge is to be intentional about our learning by answering three questions:
What do you want to learn? (specific skills and talents)
How and when do you want to learn? (methods of learning and timeline on learning)
How do you plan to improve on what you learned? (Putting it to use at work/blogging/speaking)
I know that I’ve wound down the year with some time to learn new skills, sometimes out of necessity, sometimes because the end of the year has allowed a little more freedom to pursue that time to learn. One year I taught myself enough Python to script out some tasks that were giving me huge amounts of trouble at work. I figured out how to talk to SQL Server, manipulate files, call out to command line utilities, and enable some easier re-use of the code so it could be parameterized for similar uses with different customers. This was back when PowerShell was still just hinted at by MS and their only options were VBScript, Batch files, or some 3rd party option. Had this come a couple of years later, I’d likely have tried to do the same in PowerShell.
What Do I Want to Learn?
In 2018, I can see a couple of areas that I’d like to grow in.
Biml – I see quite a bit of work coming soon that will have me working on similar SSIS packages that will require tweaks and adjustments. I really don’t want to repeat some of the fun of “adjust a UNION ALL” transform and click through the package to adjust the rest of it. If I can get enough Biml under my belt to even start to automate this or reduce my work, it will be a win. We’re looking at doing ETL from one source to many databases as well to support Power BI. I can see Biml being a powerful tool to help with that.
Power BI – What can I say? Data Visualization is big and MS has been investing heavily in Power BI. It’s what our customers want and what we’re planning to use to enable them to see all sorts of interesting data. I need to keep up with what MS is doing here and be able to support loading and querying the data so we can present it to our customers. I still plan to leave the “make pretty” work to those who are more talented than I in that area.
PowerShell – With more of my work going to Azure SQL, I really need to ramp up my PS skills. I’ve primarily worked as a DB Developer – TSQL, SSIS, SSAS, some SSRS, and design. PowerShell hasn’t been a high priority there because, apart from deploying those things, I don’t really have a need for it day to day. With Azure SQL in the mix, if I want to query all of our databases, I no longer have the ability to use something like “sp_msforeachdb” or run a cross-database query. I need to connect to each DB separately, run my code, then connect to the next. Knowing more PowerShell will help me quite a bit to handle those repeated tasks.
How and when do I want to learn?
Now for more details. This is where things get harder to plan, but where a plan is most needed.
Biml – my main starting point here will be to get through the Biml Book that was just released by APress. I’ve already started reading through this and have worked with Biml before, though not to the extent of others. I’m aware of its capabilities and know that it would help me greatly. I will need to ramp up some C# skills to be able to make more effective use of my code, but even without that I can help make packages that are easier to tweak. My plan here is to get through about one chapter per week. I’ll then take that knowledge and rewrite some of our existing SSIS packages into BIML code. Any new ETL tasks that come up I’ll try to generate them in Biml so I can materialize packages that are easier to change as needed. Goal: Able to handle simple-medium level complexity tasks in Biml by June 2018
Power BI – My biggest gains here will be through better understanding of DAX and the Tabular model. I’ve followed the PowerPivot Pro team, regularly read the writings of Russo and Ferrari, follow Adam Saxton’s “Guy In A Cube” videos, and try to keep up with the PowerBI User Groups. However, I’ll need to take some time to really go through a good Power BI book or course. I plan to use Pluralsight, EdX, and any decent books that I can find to get me beyond the beginner stage for DAX and Tabular data. This is an ongoing area for me. My goal is to be able to design optimized data structures and answer some more complex questions, especially when it comes to comparing data over similar periods Goal: Complete the EdX PowerBI course by March 2018. Complete one book on Tabular/DAX by end of 2018.
PowerShell – I’ve gone down this road before. In the early PS days, almost all of the books/articles dealt with administration of Windows domains/services with very little about SQL Server. Even the SQLPS module got little love and community alternatives sprang up. That’s a little different now. My first priority will be connecting to Azure SQL Databases to run queries – especially ones that need to run against a list of databases. After that, I’ll move on to things like deploying and building SSDT Projects, capturing the scripts/builds for later replay and such. There are more tasks for DB Developers now with automated releases, builds, CI/CD, and a plethora of tools that weren’t around 10 years ago. I can take advantage of books and the SQL Community’s contributions to learn more about PS. Goal: Complete at least one PS book by the end of 2018. Write a couple of scripts or modules to run SQL against a list of databases/instances/servers in Azure SQL by June 2018 at the latest.
How Do I Plan To Use These Skills?
Most of these will be applied directly to my current job. BIML to build SSIS packages and make them easier to generate – ideally moving towards a metadata-driven framework that I’ve seen others use. PowerBI will be used to visualize data about all sorts of things – SSIS, performance, customer data/metrics. I’ll use PowerShell to help me run SQL scripts against multiple databases. I’ve had a need for this for a while and it’s just going to grow when using Azure SQL. I’ll also use it to help me build and deploy database changes to those databases.