SlideShare une entreprise Scribd logo
1  sur  33
BI Markup Language - BI to the next level 
Davide Mauri 
SolidQ – Founder & Mentor 
@mauridb 
www.solidq.com 
dmauri@solidq.com 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
Sponsors 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
Organizers 
#sqlsatParma 
#sqlsat355 November 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 
#sqlsatParma 
#sqlsat355 November 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 
#sqlsatParma 
#sqlsat355 November 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 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
How it should be 
Semi-automatic process 
 “develop by intent” 
CREATE DIMENSION Customer 
FROM SourceCustomerTable 
MAP USING CustomerMetadata 
ALTER DIMENSION Customers 
ADD ATTRIBUTE LoyaltyLevel 
AS TYPE 1 
Define the mapping logic from a semantic perspective 
 Source to Dimensions / Measures 
 (Metadata anyone?) 
CREATE FACT Orders 
FROM SourceOrdersTable 
MAP USING OrdersMetadata 
ALTER FACT Orders 
ADD DIMENSION Customer 
Design the model and let the tool build it for you 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
The perfect BI process & architecture 
Iterative! 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
Design Pattern 
“A general reusable solution 
to a commonly occurring 
problem within a given 
context” 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
No Monkey Work! 
Let the people think and let 
the machines do the 
«monkey» work. 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
BIML – What’s that? 
 Business Intelligence Markup Language 
 XML-Based 
 BI Object-Generator 
 SQL Server 
 Integration Services 
 Analysis Services 
#sqlsatParma 
#sqlsat355 November 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 
#sqlsatParma 
#sqlsat355 November 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 
 
#sqlsatParma 
#sqlsat355 November 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 
#sqlsatParma 
#sqlsat355 November 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 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
Tools 
 MIST 
 Full-Featured BIML IDE 
 Buy or Rent 
 Made by BIML creator: Varigence 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
DEMO 
 First Contact with BIML 
#sqlsatParma 
#sqlsat355 November 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 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
Basic Concepts 
 Parallel Constraint Mode 
 “Inputs” connected to “Outputs” 
 SSIS Variables: “dot” notation 
#sqlsatParma 
#sqlsat355 November 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  
#sqlsatParma 
#sqlsat355 November 22nd, 2014
DEMO 
 BIML is your friend! 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
Automation with BIMLScript 
 BIML Script (T4) Directives: <#@ e #> 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
Automation with BIMLScript 
 BIML Script Tags: <# e #> 
 Allows usage of C# / VB.Net within BIML 
 The “=” symbol allows “in-line” code injection 
#sqlsatParma 
#sqlsat355 November 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 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
Automation with BIMLScript 
 Metadata via BIML Engine (Hadron) 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
Automation with BIMLScript 
 Metadata via SQL Query 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
DEMO 
 BIMLScript RULES! 
#sqlsatParma 
#sqlsat355 November 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…. 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
DEMO 
 BIML & PowerShell 
#sqlsatParma 
#sqlsat355 November 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 
#sqlsatParma 
#sqlsat355 November 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 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
Q&A 
 Questions? 
#sqlsatParma 
#sqlsat355 November 22nd, 2014
THANKS! 
#sqlsatParma 
#sqlsat355 
#sqlsatParma 
#sqlsat355 November 22nd, 2014

Contenu connexe

En vedette

Agile Data Warehousing
Agile Data WarehousingAgile Data Warehousing
Agile Data Warehousing
Davide Mauri
 

En vedette (7)

Real Time Power BI
Real Time Power BIReal Time Power BI
Real Time Power BI
 
SSIS Monitoring Deep Dive
SSIS Monitoring Deep DiveSSIS Monitoring Deep Dive
SSIS Monitoring Deep Dive
 
Agile Data Warehousing
Agile Data WarehousingAgile Data Warehousing
Agile Data Warehousing
 
Dashboarding with Microsoft: Datazen & Power BI
Dashboarding with Microsoft: Datazen & Power BIDashboarding with Microsoft: Datazen & Power BI
Dashboarding with Microsoft: Datazen & Power BI
 
Azure Machine Learning (Italian)
Azure Machine Learning (Italian)Azure Machine Learning (Italian)
Azure Machine Learning (Italian)
 
Temporal Snapshot Fact Tables
Temporal Snapshot Fact TablesTemporal Snapshot Fact Tables
Temporal Snapshot Fact Tables
 
Azure ML: from basic to integration with custom applications
Azure ML: from basic to integration with custom applicationsAzure ML: from basic to integration with custom applications
Azure ML: from basic to integration with custom applications
 

Plus de Davide Mauri

Plus de Davide Mauri (17)

Azure serverless Full-Stack kickstart
Azure serverless Full-Stack kickstartAzure serverless Full-Stack kickstart
Azure serverless Full-Stack kickstart
 
Agile Data Warehousing
Agile Data WarehousingAgile Data Warehousing
Agile Data Warehousing
 
Dapper: the microORM that will change your life
Dapper: the microORM that will change your lifeDapper: the microORM that will change your life
Dapper: the microORM that will change your life
 
When indexes are not enough
When indexes are not enoughWhen indexes are not enough
When indexes are not enough
 
Building a Real-Time IoT monitoring application with Azure
Building a Real-Time IoT monitoring application with AzureBuilding a Real-Time IoT monitoring application with Azure
Building a Real-Time IoT monitoring application with Azure
 
SSIS Monitoring Deep Dive
SSIS Monitoring Deep DiveSSIS Monitoring Deep Dive
SSIS Monitoring Deep Dive
 
Azure SQL & SQL Server 2016 JSON
Azure SQL & SQL Server 2016 JSONAzure SQL & SQL Server 2016 JSON
Azure SQL & SQL Server 2016 JSON
 
SQL Server & SQL Azure Temporal Tables - V2
SQL Server & SQL Azure Temporal Tables - V2SQL Server & SQL Azure Temporal Tables - V2
SQL Server & SQL Azure Temporal Tables - V2
 
Azure Stream Analytics
Azure Stream AnalyticsAzure Stream Analytics
Azure Stream Analytics
 
Event Hub & Azure Stream Analytics
Event Hub & Azure Stream AnalyticsEvent Hub & Azure Stream Analytics
Event Hub & Azure Stream Analytics
 
SQL Server 2016 JSON
SQL Server 2016 JSONSQL Server 2016 JSON
SQL Server 2016 JSON
 
Back to the roots - SQL Server Indexing
Back to the roots - SQL Server IndexingBack to the roots - SQL Server Indexing
Back to the roots - SQL Server Indexing
 
Schema less table & dynamic schema
Schema less table & dynamic schemaSchema less table & dynamic schema
Schema less table & dynamic schema
 
BIML: BI to the next level
BIML: BI to the next levelBIML: BI to the next level
BIML: BI to the next level
 
Data Science Overview
Data Science OverviewData Science Overview
Data Science Overview
 
Delayed durability
Delayed durabilityDelayed durability
Delayed durability
 
Hekaton: In-memory tables
Hekaton: In-memory tablesHekaton: In-memory tables
Hekaton: In-memory tables
 

Dernier

Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men 🔝mahisagar🔝 Esc...
➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men  🔝mahisagar🔝   Esc...➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men  🔝mahisagar🔝   Esc...
➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men 🔝mahisagar🔝 Esc...
amitlee9823
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
amitlee9823
 
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
amitlee9823
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
amitlee9823
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
amitlee9823
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
amitlee9823
 
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men 🔝Dindigul🔝 Escor...
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men  🔝Dindigul🔝   Escor...➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men  🔝Dindigul🔝   Escor...
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men 🔝Dindigul🔝 Escor...
amitlee9823
 
CHEAP Call Girls in Rabindra Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Rabindra Nagar  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Rabindra Nagar  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Rabindra Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
amitlee9823
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Dernier (20)

VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
 
➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men 🔝mahisagar🔝 Esc...
➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men  🔝mahisagar🔝   Esc...➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men  🔝mahisagar🔝   Esc...
➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men 🔝mahisagar🔝 Esc...
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFx
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
 
Anomaly detection and data imputation within time series
Anomaly detection and data imputation within time seriesAnomaly detection and data imputation within time series
Anomaly detection and data imputation within time series
 
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24  Building Real-Time Pipelines With FLaNKDATA SUMMIT 24  Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
 
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men 🔝Dindigul🔝 Escor...
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men  🔝Dindigul🔝   Escor...➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men  🔝Dindigul🔝   Escor...
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men 🔝Dindigul🔝 Escor...
 
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
 
CHEAP Call Girls in Rabindra Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Rabindra Nagar  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Rabindra Nagar  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Rabindra Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Capstone Project on IBM Data Analytics Program
Capstone Project on IBM Data Analytics ProgramCapstone Project on IBM Data Analytics Program
Capstone Project on IBM Data Analytics Program
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
 
April 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's AnalysisApril 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's Analysis
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 

BI Markup Language - BI to the next level

  • 1. BI Markup Language - BI to the next level Davide Mauri SolidQ – Founder & Mentor @mauridb www.solidq.com dmauri@solidq.com #sqlsatParma #sqlsat355 November 22nd, 2014
  • 2. Sponsors #sqlsatParma #sqlsat355 November 22nd, 2014
  • 4. 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 #sqlsatParma #sqlsat355 November 22nd, 2014
  • 5. Agenda  BI, DWH & ETL today  BIML – What’s that?  Tools  BIDS Helper  MIST  BIML Kick Off  Basic Concepts  Automation With “Embedded” C#  BIML & PowerShell #sqlsatParma #sqlsat355 November 22nd, 2014
  • 6. 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 #sqlsatParma #sqlsat355 November 22nd, 2014
  • 7. How it should be Semi-automatic process  “develop by intent” CREATE DIMENSION Customer FROM SourceCustomerTable MAP USING CustomerMetadata ALTER DIMENSION Customers ADD ATTRIBUTE LoyaltyLevel AS TYPE 1 Define the mapping logic from a semantic perspective  Source to Dimensions / Measures  (Metadata anyone?) CREATE FACT Orders FROM SourceOrdersTable MAP USING OrdersMetadata ALTER FACT Orders ADD DIMENSION Customer Design the model and let the tool build it for you #sqlsatParma #sqlsat355 November 22nd, 2014
  • 8. The perfect BI process & architecture Iterative! #sqlsatParma #sqlsat355 November 22nd, 2014
  • 9. Design Pattern “A general reusable solution to a commonly occurring problem within a given context” #sqlsatParma #sqlsat355 November 22nd, 2014
  • 10. No Monkey Work! Let the people think and let the machines do the «monkey» work. #sqlsatParma #sqlsat355 November 22nd, 2014
  • 11. BIML – What’s that?  Business Intelligence Markup Language  XML-Based  BI Object-Generator  SQL Server  Integration Services  Analysis Services #sqlsatParma #sqlsat355 November 22nd, 2014
  • 12. 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 #sqlsatParma #sqlsat355 November 22nd, 2014
  • 13. 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  #sqlsatParma #sqlsat355 November 22nd, 2014
  • 14. 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 #sqlsatParma #sqlsat355 November 22nd, 2014
  • 15. 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 #sqlsatParma #sqlsat355 November 22nd, 2014
  • 16. Tools  MIST  Full-Featured BIML IDE  Buy or Rent  Made by BIML creator: Varigence #sqlsatParma #sqlsat355 November 22nd, 2014
  • 17. DEMO  First Contact with BIML #sqlsatParma #sqlsat355 November 22nd, 2014
  • 18. 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 #sqlsatParma #sqlsat355 November 22nd, 2014
  • 19. Basic Concepts  Parallel Constraint Mode  “Inputs” connected to “Outputs”  SSIS Variables: “dot” notation #sqlsatParma #sqlsat355 November 22nd, 2014
  • 20. 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  #sqlsatParma #sqlsat355 November 22nd, 2014
  • 21. DEMO  BIML is your friend! #sqlsatParma #sqlsat355 November 22nd, 2014
  • 22. Automation with BIMLScript  BIML Script (T4) Directives: <#@ e #> #sqlsatParma #sqlsat355 November 22nd, 2014
  • 23. Automation with BIMLScript  BIML Script Tags: <# e #>  Allows usage of C# / VB.Net within BIML  The “=” symbol allows “in-line” code injection #sqlsatParma #sqlsat355 November 22nd, 2014
  • 24. Automation with BIMLScript  Metadata is needed in order to define what to generate  Metadata can be extracted by  BIML Engine (Hadron)  T-SQL Queries #sqlsatParma #sqlsat355 November 22nd, 2014
  • 25. Automation with BIMLScript  Metadata via BIML Engine (Hadron) #sqlsatParma #sqlsat355 November 22nd, 2014
  • 26. Automation with BIMLScript  Metadata via SQL Query #sqlsatParma #sqlsat355 November 22nd, 2014
  • 27. DEMO  BIMLScript RULES! #sqlsatParma #sqlsat355 November 22nd, 2014
  • 28. 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…. #sqlsatParma #sqlsat355 November 22nd, 2014
  • 29. DEMO  BIML & PowerShell #sqlsatParma #sqlsat355 November 22nd, 2014
  • 30. 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 #sqlsatParma #sqlsat355 November 22nd, 2014
  • 31. 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 #sqlsatParma #sqlsat355 November 22nd, 2014
  • 32. Q&A  Questions? #sqlsatParma #sqlsat355 November 22nd, 2014
  • 33. THANKS! #sqlsatParma #sqlsat355 #sqlsatParma #sqlsat355 November 22nd, 2014

Notes de l'éditeur

  1. http://en.wikipedia.org/wiki/Software_design_pattern
  2. 1 - Dimostrazione BIDS Helper 2 - Creazione di un file BIML che esegue un ExecuteSQL command
  3. Dimostrazione ConstraintMode Dimostrazione uso Variabili, Project Connections Dimostrazione DataFlow
  4. Dimostrazione ConstraintMode Dimostrazione uso Variabili, Project Connections Dimostrazione DataFlow
  5. 1 - Dimostrazione BIDS Helper 2 - Creazione di un file BIML che esegue un ExecuteSQL command