Download presentation
Presentation is loading. Please wait.
1
An Introduction to the magical world of BIML!
Jonathan Stewart
2
An Introduction to… The magical world of Biml!
3
Agradecimiento a los patrocinadores
Premium Silver Personal
5
Business Intelligence Consultant
Jonathan Stewart Business Intelligence Consultant @sqllocks
6
Agenda History Problems solved by Biml Biml Basics Biml Script
Reusability Where to learn more!
7
CEO of Varigence and Creator of Biml
Scott Currie CEO of Varigence and Creator of Biml
8
What is it?
9
Business Intelligence Markup Language
XML Based Can be used to create SSIS packages, SSAS cubes and SQL Server DDL (Databases, Tables, Columns, Views, Etc).
10
What problems can Biml Help you solve?
11
Tedium
12
Repetition and limited reuse
13
Inconsistency
15
The super quick xml primer
16
The basic xml statement…
<root> < parent name="Goku" age="37"> <child name="Gohan" age="17" SuperSaiynLevel=”3”/></child> <child name="Goten" age="6" SuperSaiynLevel=”1”></child> </parent> </ root >
17
The basic xml statement…
<root> < parent name="Goku" age="37"> <child name="Gohan" age="17" SuperSaiynLevel=”3”></child> <child name="Goten" age="6" SuperSaiynLevel=”1”></child> </parent> </ root >
18
The basic xml statement…
<root> < parent name="Goku" age="37"> <child name="Gohan" age="17" SuperSaiynLevel=”3”></child> <child name="Goten" age="6" SuperSaiynLevel=”1”></child> </parent> </ root >
19
The basic xml statement…
<root> < parent name="Goku" age="37"> <child name="Gohan" age="17" SuperSaiynLevel=”3”></child> <child name="Goten" age="6" SuperSaiynLevel=”1”></child> </parent> </ root >
20
The basic xml statement…
<root> < parent name="Goku" age="37"> <child name="Gohan" age="17" SuperSaiynLevel=”3”></child> <child name="Goten" age="6" SuperSaiynLevel=”1”></child> </parent> </ root >
21
The basic xml statement…
<root> < parent name="Goku" age="37"> <child name="Gohan" age="17" SuperSaiynLevel=”3”></child> <child name="Goten" age="6" SuperSaiynLevel=”1”></child> </parent> </ root >
22
The basic Biml syntax <Biml xmlns=" <Packages> <Package Name="Package1"></Package> <Package Name="Package2"/> </Packages> </Biml>
23
The basic Biml syntax <Biml xmlns=" <Packages> <Package Name="Package1"></Package> <Package Name="Package2"/> </Packages> </Biml>
24
The basic Biml syntax <Biml xmlns=" <Packages> <Package Name="Package1"></Package> <Package Name="Package2"/> </Packages> </Biml>
25
The basic Biml syntax <Biml xmlns=" <Packages> <Package Name="Package1"></Package> <Package Name="Package2"/> </Packages> </Biml>
26
The basic Biml syntax <Biml xmlns=" <Packages> <Package Name="Package1"></Package> <Package Name="Package2"/> </Packages> </Biml>
27
Biml and XML similarities
Reeves Smith, Andy Leonard
28
What do we need to get started?
31
How does it work?
32
How does it work?
33
Root types (AKA Elements)
Connection Packages Databases Script Projects Schemas Cubes Tables Principals Dimensions Facts
35
Biml Script Allows you to extend Biml with C# or VB.
Allows all of the configurable magic that you’ve come to expect. Begins and ends with delimiters.
36
The Basic BimlScript syntax
<Biml xmlns=" <Packages> <# for (int i = 1; i <= 5, i++) { #> <Package Name="MyPackage<#=i#>" ConstraintMode=“Linear”> </Package> <# } #> </Packages> </Biml>
37
The Basic BimlScript syntax
<Biml xmlns=" <Packages> <# for (int i = 1; i <= 5, i++) { #> <Package Name="MyPackage<#=i#>" ConstraintMode=“Linear”> </Package> <# } #> </Packages> </Biml>
38
Directives Two main type of directives:
Template - template language=“C#” #> Import - <# import namespace=“Varigence.Languages.Biml.Connection” #> Other directives: Annotation Import Target Assembly Output Dependency Property
39
Delimiters <#@ #> Directives <# #> Standard Control Block
<# #> Standard Control Block <#= #> Expression Control Block <#+ #> Class Feature Control Block
40
Standard Control blocks
Defines .NET code commonly referred to as Biml Script or Code Nuggets. <# for (int i = 1; i <= 5; i++) { #>
41
Expression control blocks
Evaluates the .NET code, converts it to a string, then embeds it in the Biml file. <#= UppercaseFirst("hello world") #>
42
Class feature control blocks
Defines properties, methods, and files that are excluded from the Biml file but may be accessed by other BimlScript code nuggets.
44
?
45
How to reuse Biml files Tiered Biml files Include files
CallBimlScript using parameters
46
Tiered Biml Files Uses the template directive with the following syntax: template language=”C# or VB” tier=”tier number” #> Used when requiring objects from a previous file to enforce order. Files from the same tier will compile in any order. Root Node
47
<#@ include file=”ImportedBimlFile.biml” #>
Include Directives Include directives allow you to import other Biml files. include file=”ImportedBimlFile.biml” #>
48
CallBimlScript using parameters
Like a stored procedure! Or Method/Function (if you are a programmer ) Callee Script to be called Caller Active script
49
Callee
50
Caller
52
BimlFy-ing your current SSIS packages
How do you get your current SSIS packages into Biml? Biml Online!
54
Where to learn more… Varigence BimlScript
Samples - Forums - Documentation - BimlScript Intros/Tutorials - Quick Reference - Walkthroughs - Cathrine Wilhelmsen - Stairway to BIML- BIML Academy -
55
Questions
56
Business Intelligence Consultant
Jonathan Stewart Business Intelligence Consultant @sqllocks
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.