Business Intelligence Markup Language (BIML) is a domain-specific
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
dialect for defining
business intelligence
Business intelligence (BI) comprises the strategies and technologies used by enterprises for the data analysis and management of business information. Common functions of business intelligence technologies include reporting, online analytical pr ...
(BI) assets. Biml authored BI assets can currently be used by the
BIDS Helper
BIDS Helper is a Visual Studio open source extension with multiple features that extend and enhance business intelligence development functionality in all editions of Microsoft's SQL Server 2005, 2008, 2008 R2 and 2012. BIDS Helper improves the d ...
add-on for
Microsoft SQL Server
Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ma ...
Business Intelligence Development Studio
Business Intelligence Development Studio (BIDS) is the former IDE from Microsoft, and was used to develop data analysis and business intelligence solutions utilizing Microsoft SQL Server Analysis Services, Reporting Services and Integration Ser ...
(BIDS) and the
Varigence Mist (now called BimlStudio)
integrated development environment
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
; both tools translate Biml metadata into
SQL Server Integration Services
Microsoft SQL Server Integration Services (SSIS) is a component of the Microsoft SQL Server database software that can be used to perform a broad range of data migration tasks.
SSIS is a platform for data integration and workflow applications. It ...
(SSIS) and
SQL Server Analysis Services
Microsoft SQL Server Analysis Services (SSAS) is an online analytical processing (OLAP) and data mining tool in Microsoft SQL Server. SSAS is used as a tool by organizations to analyze and make sense of information possibly spread out across mul ...
(SSAS) assets for the
Microsoft SQL Server
Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ma ...
platform. However, emitters can be created to compile Biml for any desired BI platform.
While Biml’s declarative design is sufficient to author BI assets, BimlScript extends the language by enabling authors to embed
C# or
VB.NET
Visual Basic, originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visua ...
code within Biml, similar to how
ASP.NET
ASP.NET is an open-source, server-side web-application framework designed for web development to produce dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic web sites, applications and services. The name stan ...
includes .NET code within static
HTML
The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
markup. BimlScript is used to merge changes into existing Biml assets, automatically generate Biml code, and apply changes across multiple Biml files during compilation.
History
Biml
Biml is an XML dialect that specifies all aspects of a BI solution, including relational models, data transformation packages, multi-dimensional models, and tabular models.
Unlike other BI solutions, Biml has a "write once, target any platform" philosophy. This enables Biml users to switch their target platform without needing to change their code. Currently, Biml targets SQL Server versions 2005, 2008, 2008 R2, 2012 and 2014, emitting SSIS packages and SSAS cubes.
Because Biml is XML, it can leverage the vast ecosystem of tools for XML based languages. This also makes it human-readable/writable, so it is easier to edit by hand than the SSIS/SSAS files it generates.
In late 2009, Biml was extended with BimlScript. BimlScript allows C# or VB.NET code nuggets to be embedded directly within Biml. BimlScript's goal is to automate repetitive work in reusable scripts. Additionally, it has been used to automate package generation and build reusable patterns for BI tasks. BimlScript is also used to take metadata from various sources (relational database structure, relational data, flat files, annotations, etc...) and automatically generate Biml code from it.
Mist
Mist
Mist is a phenomenon caused by small droplets of water suspended in the cold air, usually by condensation. Physically, it is an example of a dispersion. It is most commonly seen where water vapor in warm, moist air meets sudden cooling, such a ...
is an IDE for authoring Biml code and building BI assets. Mist leverages visual design capabilities and
debugging
In computer programming and software development, debugging is the process of finding and resolving '' bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems.
Debugging tactics can involve in ...
features to simultaneously edit entire business intelligence models, including relational tables, SSIS packages, and
cubes
In geometry, a cube is a three-dimensional solid object bounded by six square faces, facets or sides, with three meeting at each vertex. Viewed from a corner it is a hexagon and its net is usually depicted as a cross.
The cube is the only r ...
.
Mist also incorporates modern programming IDE features, including text editors with syntax highlighting, Intelliprompt and quick-info displays, source control integration, and multi-monitor support.
BIDS Helper
As Biml’s popularity has grown, key portions of the Biml engine, including dynamic package generation, have been contributed to th
BIDS Helperopen source project hosted on CodePlex.
BimlScript community
BimlScript.comis a community website for developing and sharing Biml solutions to BI problems, and contributing Biml content to share with others. Along with tutorials, walkthroughs, and videos, the site provides an online Biml editor.
Code generation
Biml files are compiled to produce BI assets for a chosen platform. Currently, it is possible to generate assets for Microsoft’s SSIS, SSAS, and SQL Server platforms, for the 2005, 2008 (R2), 2012 and 2014 releases. Other platforms may be targeted in the future.
Syntax
Biml has a syntax that’s common to all XML languages. Tags begin and end with < and >, respectively. Furthermore, tags can have attributes and nested elements.
Biml
Declaration
Biml documents begin with a common declaration
Root types
Biml has a well-defined set of root types, indicating the various kinds of BI assets that can be created:
* Connections
* Databases
* Schemas
* Tables
* Dimensions
* Facts
* Packages
* File Formats
* Script Projects
* Cubes
* Principals
Example
This is an example of the AdventureWorks DimCurrency table, authored in Biml:
DropDown
DropDown
BimlScript
All BimlScript tags begin and end with <# and #> delimiters, respectively. Special types of BimlScript tags use augmented versions of these delimiters, to indicate specific usages.
Directives
A Biml file, with BimlScript, begins with at least one directive. Directives provide instructions to the Biml engine, regarding how to process the BimlScript and generate its Biml. Directives are single tags that begin with <#@. Each directive begins with a single term, followed by attributes that supply required values.
The two most common directives are template and import.
=Template
=
This directive indicates that the file's BimlScript uses the C# programming language.
<#@ template language="C#" #>
=Import
=
This directive specifies .NET namespaces that should be imported for the file. It is functionally equivalent to the C# using statement or VB.NET Imports statement.
<#@ import namespace="Varigence.Languages.Biml.Connection" #>
Delimiters
When authoring BimlScript, additional delimiters may be used. These delimiters match the behavior of T4 template delimiters.
Example
This BimlScript example imports a database's assets via a connection, declared in a separate file, named "AdventureWorksLT". Each schema and table from the imported database is then embedded directly within the Schemas and Tables collections, respectively.
<#@ template language="C#" hostspecific="True" tier="2" #>
<#@ import namespace="Varigence.Languages.Biml.Connection" #>
<#@ import namespace="Varigence.Hadron.Extensions" #>
<#@ import namespace="Varigence.Hadron.Extensions.SchemaManagement" #>
<#@ import namespace="Varigence.Hadron.CoreLowerer.SchemaManagement" #>
<#+ public ImportResults Results
#>
<#=Results.SchemaNodes.GetBiml()#>
<#=Results.TableNodes.GetBiml()#>
This example shows how developers can use Biml and BimlScript to:
# Import schemas and tables directly from a database, and use them without needing to manually copy their structure.
# Have any changes to the assets be automatically reflected the next time this code is run.
# Import the assets and convert them to Biml using only two simple lines of code.
References
{{reflist
External links
bimlscript.com- Biml online community
BIDS Helper- Microsoft SQL Server extension with Biml capabilities
Biml Language Reference- by the Varigence Corporation
Microsoft SQL Server- Further information on the Microsoft SQL Server platform.
Mist Walkthrough- Biml examples using the Mist IDE
XML markup languages
Business intelligence