After years of waiting, a book about Biml has been published! It’s conveniently titled “The Biml Book” (subtitled Business Intelligence and Data Warehouse Automation) and I can tell you immediately it’s the best Biml book I’ve ever read! (haha, it will take a while until this joke gets old). In all seriousness though, it’s a great book and I happily recommend it to anyone who wants to learn more about Biml. In other words, everyone who has to develop more than 1 SSIS package.
The book has multiple authors (the cover lists 11 authors!) and that is the biggest strength and also the biggest weakness of the book. The strength lies in the fact that this book gathers every Biml expert from all over the world and this is reflected in the book: all of the concepts are clearly explained, from the introduction topics right into the more advanced topics. And there are plenty of advanced topics to choose from: documentation generation, metadata handling, building custom frameworks and so on. I’ve been using Biml for quite some years now (typically just to load staging environments, but I’ve been on Biml since the beginning, I just never went deeper into the rabbit hole) and I definitely learned some new tricks by reading this book (and not only that it is Biml and not BIML).
The downside of having so many authors is that inconsistencies can creep into the book. Most of them are of the “nitpicky” type: some authors use C#, some use Visual Basic, others give examples in both languages. Some use different naming conventions for the Biml files, some format their SQL code differently than other authors (some even don’t use the semicolon as statement delimiter. Shame! :). The most “annoying” inconsistency is the use of sample databases. In some chapters AdventureWorks is used, other chapters use Contoso. Personally I’d hoped they all used WideWorldImporters.
That being said, the book is expertly written (only one typo found) and I’ve only found a couple of bugs in the Biml code. The largest criticism I have has nothing to do with the actual content: at the time of writing, there are no downloadable files for this book. This means if you are using an e-book, you need to copy-paste the Biml code to Visual Studio. Copy pasting from a book can lead to several issues, such as one line of code suddenly being split out over multiple lines, page numbers being copied along or whitespace being inserted where it doesn’t need to be. For example, copy pasting <Biml> something resulted in < Biml> (with an extra space) which breaks the code. After that, you have to format the XML code as well (but there are tools for that). It’s even worse if you are reading a print copy, because that means you have to type all of the code yourself. I’ve talked with the authors though, and they are working on this, so this is hopefully only a temporarily grievance.
Enough about editorial stuff, let’s look at the actual content. The book explains Biml in three parts:
Some chapters include content about BimlStudio. Personally I don’t use the tool, so this meant I could skip some pages. If you do use the tool, there are some very nice features waiting for you. An overview of the chapters:
As you can see, a wide variety of topics are covered in this book, so there’s something for every level of Biml developer. The book is mainly about “how does this work in Biml” and there aren’t that many examples of “how can we achieve this task in Biml” (with chapter 3 being an exception). For example, you won’t find an example of how to load a star schema in this book. The book has all the building blocks, but it’s up to you to put them together. Maybe a next book “Data warehouse patterns with Biml” will be a good addition? A book where it’s shown how to load SCD type 2 dimensions, how to generate data vaults, how to handle large fact tables and changing metadata and so on.
Conclusion: a very good book that lays a great foundation for developing Biml frameworks. A must-read for every SSIS/ETL developer.
I'm hosting a free webinar at MSSQLTips.com at the 19th of December 2024, 6PM UTC.…
The slides and scripts for my session "Tackling the Gaps & Islands Problem with T-SQL…
Sometimes your Microsoft Entra ID account (formerly known as Azure Active Directory) is added as…
In Azure Data Factory (ADF, but also Synapse Pipelines and Fabric Pipelines), you have a…
I wrote a piece of SQL that had some new T-SQL syntax in it: IS…
I'm very excited to announce I've been selected as a speaker for dataMinds Connect 2024,…
View Comments
Have to agree that the lack of code samples to download is a pretty big issue, though I have also chatted w/ the authors and know they're working on getting a download ready. That will help. I've hit that copy/paste issue myself. I also noticed the VB vs. C# examples - odd, but understandable. (Not necessarily helpful if you aren't familiar w/ one or the other, but usually able to parse enough to get the concepts.) It's still a resource I'm glad to have and really glad to see.