BI Markup Language - BI to the next level

33
#sqlsatParma #sqlsat355 November 22 nd , 2014 BI Markup Language - BI to the next level Davide Mauri SolidQ – Founder & Mentor @mauridb www.solidq.com [email protected]

description

BIML is an XML-based language that allows us to completely model a BI solution . It's particularly interesting for the automatic creation of ETL processes , for which it can be used free of charge via the BIDS Helper, a free tool that should be known to all those who develop BI solutions with the platform Microsoft. In this session we will learn the basics and some advanced trick , how to use it and how it can help to significantly reduce the development time of an ETL solution and at the same time increase the quality

Transcript of BI Markup Language - BI to the next level

Page 1: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

BI Markup Language - BI to the next level

Davide Mauri

SolidQ – Founder & Mentor

@mauridb

www.solidq.com

[email protected]

Page 2: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Sponsors

Page 3: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Organizers

Page 4: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Davide Mauri

20 Years of experience on the SQL Server Platform Specialized in Data Solution Architecture, Database Design,

Performance Tuning, Business Intelligence

Projects, Consulting, Mentoring & Training Regular Speaker @ SQL Server events

Microsoft SQL Server MVP

President of UGISS (Italian SQL Server UG)

Mentor @ SolidQ

Find me here: Blog: http://sqlblog.com/blogs/davide_mauri/default.aspx

Twitter: @mauridb

Page 5: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Agenda

BI, DWH & ETL today

BIML – What’s that?

Tools

BIDS Helper

MIST

BIML Kick Off

Basic Concepts

Automation With “Embedded” C#

BIML & PowerShell

Page 6: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Building a BI/DWH/ETL in 2014

Is still a (almost) manual process

A *lot* of repetitive low-value work

No (or very few) standard tools available

Page 7: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

How it should be

Semi-automatic process

“develop by intent”

Define the mapping logic from a semantic perspective

Source to Dimensions / Measures

(Metadata anyone?)

Design the model and let the tool build it for you

CREATE DIMENSION Customer

FROM SourceCustomerTable

MAP USING CustomerMetadata

ALTER DIMENSION Customers

ADD ATTRIBUTE LoyaltyLevel

AS TYPE 1

CREATE FACT Orders

FROM SourceOrdersTable

MAP USING OrdersMetadata

ALTER FACT Orders

ADD DIMENSION Customer

Page 8: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

The perfect BI process & architecture

Iterative!

Page 9: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Design Pattern

“A general reusable solution

to a commonly occurring

problem within a given

context”

Page 10: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

No Monkey Work!

Let the people think and let

the machines do the

«monkey» work.

Page 11: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

BIML – What’s that?

Business Intelligence Markup Language

XML-Based

BI Object-Generator

SQL Server

Integration Services

Analysis Services

Page 12: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

BIML – What’s that?

Allows a declarative approach to define BI objects

Favor automation

Human-readable

Compatible with SCC system

Allows merge of files

Born from “Project Vulcan”

Still available on CodePlex

Page 13: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

BIML – What’s that?

Once objects are generated, BIML is not needed

anymore

No additional runtime/components required

Support for SQL Server 2008 & 2012 objects

2014 is coming very soon

Anyway generated packages are automatically converted

into 2014 packages by Visual Studio 2013, without problems

Page 14: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

BIML – What’s that?

BIMLScript is based on the T4 templating engine.

Allows the generation of BIML using

C#

VB.NET

BIML + BIMLScript = HTML + ASP Classic

Page 15: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Tools

BIDS Helper

http://bidshelper.codeplex.com/

Visual Studio Plugin

Free

Source Code Available

Not all BIML features are supported

“Limited” to SSIS generation only

Page 16: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Tools

MIST

Full-Featured BIML IDE

Buy or Rent

Made by BIML creator: Varigence

Page 17: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

DEMO

First Contact with BIML

Page 18: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Basic Concepts

A single BIML file can generate more than one SSIS

Package

All SSIS object and related properties are exposed via

BIML elements

Additional specific attribute: ConstraintMode

Linear or Parallel

Page 19: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Basic Concepts

Parallel Constraint Mode

“Inputs” connected to “Outputs”

SSIS Variables: “dot” notation

Page 20: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Basic Concepts

Control Flow and Data Flow 100% supported

In Data Flow it’s mandatory to define input and outputs

Since they aren’t constraints, but data streams

Page 21: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

DEMO

BIML is your friend!

Page 22: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Automation with BIMLScript

BIML Script (T4) Directives: <#@ e #>

Page 23: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Automation with BIMLScript

BIML Script Tags: <# e #>

Allows usage of C# / VB.Net within BIML

The “=” symbol allows “in-line” code injection

Page 24: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Automation with BIMLScript

Metadata is needed in order to define what to generate

Metadata can be extracted by

BIML Engine (Hadron)

T-SQL Queries

Page 25: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Automation with BIMLScript

Metadata via BIML Engine (Hadron)

Page 26: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Automation with BIMLScript

Metadata via SQL Query

Page 27: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

DEMO

BIMLScript RULES!

Page 28: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

BIML & PowerShell

What if you don’t like C#...

Or if BIMLScript looks to complex?

Especially without MIST?

One option is to generate BIML using PowerShell

Is just XML after all….

Page 29: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

DEMO

BIML & PowerShell

Page 30: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Conclusions

Use BIML!!!!

It helps to

Make better use of your time

Create your own ETL patterns

http://www.slideshare.net/davidemauri/automating-dwh-patterns-

through-metadata

Support Refactoring & Enables Agility

Favor use of metadata

Page 31: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

References

BIML Script

http://bimlscript.com/

Stairway to BIML

http://www.sqlservercentral.com/stairway/100550/

Automating DWH Patterns Through Metadata

http://www.slideshare.net/davidemauri/automating-dwh-

patterns-through-metadata

Page 32: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

Q&A

Questions?

Page 33: BI Markup Language - BI to the next level

#sqlsatParma

#sqlsat355November 22nd, 2014

THANKS!

#sqlsatParma

#sqlsat355