Biml for Beginners: Script and Automate SSIS development (Malibu SQL Server User Group)
Biml for Beginners:
Script and Automate
#SQLMalibu · April 18th 2018
Are you tired of creating and updating the same SSIS packages again and again? Is your wrist hurting
from all that clicking, dragging, dropping, connecting and aligning? Do you want to take the next step and
really speed up your SSIS development?
Say goodbye to repetitive work and hello to Biml, the markup language for Business Intelligence projects.
In this session we will look at the basics of Biml. First learn how to use Biml to generate SSIS packages
from database metadata. Then see how you can reuse code to implement changes in multiple SSIS
packages and projects with just a few clicks. Finally, we will create an example project that you can
download and start with to speed up your SSIS development from day one.
Stop wasting your valuable time on doing the same things over and over and over again, and see how
you can complete in a day what once took more than a week!
Biml Basics Tools & Code
SQL and SSIS from Metadata
…the next 60 minutes…
Data Warehouse & Business Intelligence Consultant
Tired of repetitive work
Long development time
Many SSIS packages
Frequent requirement changes
Ever experienced this?
What is Biml?
Business Intelligence Markup Language
Easy to read and write XML language
Describes business intelligence objects:
• Databases, Schemas, Tables, Views, Columns
• SSIS Packages
• SSAS Cubes
Why use Biml?
SSIS: Plumbing Biml: Business Logic
Spend time on dragging, dropping, connecting, aligning
Create the same package over and over again with minor changes
Standards, patterns and templates must be defined up-front
Changes must be done in every single package
Higher risk of manual errors
More packages, more time
Biml: Business Logic
Spend time on what is unique in a package
Create a pattern once and reuse for all similar packages
Handle scope and requirement changes quickly and easily
Changes can be applied to all packages at once
Lower risk of manual errors
Longer time to start, but then automate and reuse
Will Biml solve all your challenges?
Biml is a tool for generating SSIS packages
Biml is not a pre-defined ETL framework
Biml is not a tool for automated deployment
...but it will solve many challenges!
How can Biml help you?
Biml is great for large projects with common patterns…
Timesaving: Many SSIS packages from one Biml file
Reusable: Write once and run on any platform
Flexible: Start simple, expand as you learn
…but is also useful for smaller projects!
What is BimlScript?
Extend Biml with C# or VB code blocks
Import database structure and metadata
Loop over tables and columns
Expressions replace static values
Generate, control and manipulate Biml code
What are Tiered Biml Files?
Think of tiers as stacked layers or sequential steps
Tier (Layer) 1
Tier (Layer) 2
Tier (Step) 1 Tier (Step) 2
Tiered Biml Files
Split Biml code in multiple files to:
• Solve logical dependencies
• Build solutions in multiple steps behind the scenes
Specify the tier per file by using the template directive:
<#@ template tier="2" #>
Tiered Biml Files
Biml is compiled step-by-step from lowest to highest tier
• Biml files are implicitly tier 0
• BimlScript files are implicitly tier 1
In each tier, objects are added in-memory to RootNode
Higher tiers can call RootNode to use objects from lower tiers
Include common code in multiple files and projects
Can include many file types: .biml .txt .sql .cs
Use the include directive
<#@ include file="CommonCode.biml" #>
The directive will be replaced by the included file
Works like an automated Copy & Paste
Works like a parameterized include (or stored procedure)
File to be called (callee) specifies accepted parameters:
<#@ property name="Parameter" type="String" #>
File that calls (caller) passes parameters: