Biml: A Primer for the $10,000 Biml Challenge

Written by Varigence Blog on 9.15.2011

TAGS: DeveloperBimlBIBimlChallenge


This is the first blog entry focused on helping users prepare for the $10,000 Biml Challenge. This will get you a basic understanding of the BI markup language, Biml.

Biml is an XML-based language for specifying the full set of assets in a BI and/or DW project. With Biml you can design everything from relational databases, to data integration and transformation packages, and OLAP cubes. The Biml language is fully specified online. The rest of the blog entry will give a more informal look into how to use Biml.

Biml works in a way consistent with other XML-based languages. If you want to define something in Biml, specify the element for that item. For example,

<Package Name="SamplePackage">

This creates a new package with the name SamplePackage. If you want to add something to this package, for example a dataflow task, you just add it to that element. This again is consistent with typical XML-based languages. For example,

<Package Name="SamplePackage">
      <Dataflow Name="SampleDataflow">

Notice that since there can be many tasks in a package, there is a "Tasks" element that acts as a container where we can place multiple tasks.

Using XML attributes you can specify characteristics for the elements. For example, if you're specifying a Lookup element in Biml, you can use attributes on the Lookup to specify things like the connection and the cache mode:

<Lookup Name="Lookup Transformation" OleDbConnectionName="SportsData"
NoMatchBehavior="IgnoreFailure" CacheMode="Partial">

There is a Biml snippets library online where you can see short illustrative snippets for creating different types of BI assets -- everything from OLEDB connections to the Pivot transformation. Biml by itself is very powerful and useful, but there is a feature called BimlScript that allows users to automatically script and generate Biml code. BimlScript will be covered in more detail in a future contest blog entry.

To execute your Biml code you must compile it. The compiler for Biml is Hadron.exe. The output of the compiler varies depending on what your Biml code represents, but for the contest, we'll be focused on Packages, which will compile to SSIS DTSX packages. In practice, you'll rarely use Hadron.exe directly, but rather will build your packages with Mist, the graphical IDE for Biml.

In our next blog entry we'll learn about and use Mist, and walkthrough the process of building a very simple DTSX package.