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 for Beginners: Speed Up Your SSIS Development
Explore Everything PASS Has to Offer
FREE ONLINE WEBINAR EVENTS FREE 1-DAY LOCAL TRAINING EVENTS
LOCAL USER GROUPS
AROUND THE WORLD
ONLINE SPECIAL INTEREST
USER GROUPS
BUSINESS ANALYTICS TRAINING
VOLUNTEERING OPPORTUNITIES
PASS COMMUNITY NEWSLETTER
BA INSIGHTS NEWSLETTERFREE ONLINE RESOURCES
Session Evaluations
ways to access
Go to passSummit.com Download the GuideBook App
and search: PASS Summit 2016
Follow the QR code link displayed
on session signage throughout the
conference venue and in the
program guide
Submit by 5pm
Friday November 6th to
WIN prizes
Your feedback is
important and valuable. 3
Cathrine Wilhelmsen
Data Warehouse Architect
Microsoft Data Platform MVP
BimlHero Certified Expert
SQLSaturday organizer
Speaker, blogger and chronic volunteer
@cathrinewcathrinew.net
Business Intelligence Markup Language
Easy to read and write XML language
Describes business intelligence objects:
• Databases, Schemas, Tables, Views, Columns
• SSIS Packages
• SSAS Cubes
What is Biml?
Time wasted on dragging, dropping, connecting, aligning
Create the same packages again with minor changes
Standards, patterns and templates must be defined up-front
Changes must be done in every single package
High risk of manual errors
More packages, more time
SSIS: Plumbing
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 reuse and scale
Biml: Business Logic
Biml is a tool for developing SSIS packages
Biml is not a tool for automated deployment
Biml is not a pre-defined ETL framework
Will Biml solve all your challenges?
Timesaving: Many SSIS packages from one Biml file
Reusable: Write once and run on any platform
Flexible: Start simple, expand as you learn
How can Biml help you?
Free open-source add-in for Visual Studio
60+ features for SSIS, SSAS and SSRS
Includes basic Biml package generator
BIDS Helper
bidshelper.codeplex.com
Free add-in for Visual Studio
Code editor with syntax highlighting and Intellisense
More frequent updates than BIDS Helper
BimlExpress
varigence.com/bimlexpress
Free browser-based Biml editor
Code editor with Biml and C# Intellisense
Reverse-engineer from SSIS to Biml
BimlOnline
bimlonline.com
How does it work?
…generated packages look exactly like manually created packages
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 is BimlScript?
Move common code to separate files
Centralize and reuse in many projects
Update code once for all projects
1. Include files
2. CallBimlScript with parameters
3. Tiered Biml files
Don't Repeat Yourself
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
Include Files
Like a parameterized include or stored procedure
File to be called (callee) specifies input parameters
<#@ property name="Param" type="String" #>
File that calls (caller) passes input parameters
<#=CallBimlScript("CommonCode.biml", Param)#>
CallBimlScript with Parameters
Split Biml code in multiple files
Specify tiers by using the template directive
<#@ template tier="2" #>
Biml files without BimlScript are implicitly tier 0
Biml files with BimlScript are implicitly tier 1
Tiered Biml Files
Biml is compiled from lowest to highest tier to:
• Solve logical dependencies
• Build solutions in multiple steps behind the scenes
For each tier, objects are added to the RootNode
Higher tiers can use objects from lower tiers
Tiered Biml Files
When working with flat Biml,
the <Biml> root element
contains collections of elements:
<Biml>
<Connections>…</Connections>
<Databases>…</Databases>
<Schemas>…</Schemas>
<Tables>…</Tables>
<Projects>…</Projects>
<Packages>…</Packages>
</Biml>
When working with BimlScript,
the RootNode object contains
collections of objects:
What is this RootNode?
1. Create Biml files with specified tiers
2. Select all the tiered Biml files
3. Right-click and click Generate SSIS Packages
How do you use Tiered Biml files?
1
2
3
Session Evaluations
ways to access
Go to passSummit.com Download the GuideBook App
and search: PASS Summit 2016
Follow the QR code link displayed
on session signage throughout the
conference venue and in the
program guide
Submit by 5pm
Friday November 6th to
WIN prizes
Your feedback is
important and valuable. 3