SlideShare a Scribd company logo
Biml Academy 2
Importing, Staging, and Loading Data with Biml
Andy Leonard · Scott Currie · Cathrine Wilhelmsen
Biml Academy 2
Lesson 5: Importing source metadata into Biml (Cathrine)
Lesson 6: Staging data with Biml (Andy)
Lesson 7: Metadata-driven staging pattern with Biml (Andy)
Lesson 8: BimlFlex for Data Vault data warehouses (Scott)
Lesson 9: Biml Q&A with several BimlHeroes!
Cathrine Wilhelmsen
@cathrinew
cathrinew.net
Data Warehouse Architect
Business Intelligence Developer
Lesson 5:
Importing source metadata into Biml
Methods for importing metadata
ImportTableNodes
ImportDB
GetDatabaseSchema
Methods for importing metadata
ImportTableNodes
Import tables and views in one schema
Filter tables using LIKE % wildcard syntax
Methods for importing metadata
ImportDB
Import all schemas, tables and views
Filter using LIKE % wildcard syntax
Methods for importing metadata
GetDatabaseSchema
Import all schemas, tables and views
Filter using collections
Why ImportDB and GetDatabaseSchema?
ImportDB / ImportTableNodes
• SELECT * on each imported table
• SELECT to get defaults, indexes etc.
• Using SchemaOnly mode
• Doesn't actually run the query, but
returns schema for the result set
GetDatabaseSchema
• Figures out target database type
(SQL Server, Oracle, Teradata, DB2,
PostgreSQL, Ingres, OpenEdge etc.)
• Queries the relevant information
schema for that database type
A few queries for the entire importMultiple queries per table
But why keep both if one is faster?
Support for legacy scripts :)
They can return different results – where both are valid/correct
Different data type mapping defaults in different systems
(Bulk Copy, SSIS and Excel are all different)
Biml supports the two most commonly used approaches
Methods and parameters
ImportTableNodes(schema, tableFilter)
ImportTableNodes(schema, tableFilter, importOptions)
ImportDB()
ImportDB(schemaFilter, tableFilter)
ImportDB(schemaFilter, tableFilter, importOptions)
GetDatabaseSchema()
GetDatabaseSchema(importOptions)
GetDatabaseSchema(includedSchemas, includedTables, importOptions)
Methods and parameters: string value
ImportTableNodes(schema, tableFilter)
ImportTableNodes(schema, tableFilter, importOptions)
ImportDB()
ImportDB(schemaFilter, tableFilter)
ImportDB(schemaFilter, tableFilter, importOptions)
GetDatabaseSchema()
GetDatabaseSchema(importOptions)
GetDatabaseSchema(includedSchemas, includedTables, importOptions)
Methods and parameters: string filter
ImportTableNodes(schema, tableFilter)
ImportTableNodes(schema, tableFilter, importOptions)
ImportDB()
ImportDB(schemaFilter, tableFilter)
ImportDB(schemaFilter, tableFilter, importOptions)
GetDatabaseSchema()
GetDatabaseSchema(importOptions)
GetDatabaseSchema(includedSchemas, includedTables, importOptions)
Methods and parameters: collections
ImportTableNodes(schema, tableFilter)
ImportTableNodes(schema, tableFilter, importOptions)
ImportDB()
ImportDB(schemaFilter, tableFilter)
ImportDB(schemaFilter, tableFilter, importOptions)
GetDatabaseSchema()
GetDatabaseSchema(importOptions)
GetDatabaseSchema(includedSchemas, includedTables, importOptions)
Methods and parameters: ImportOptions
ImportTableNodes(schema, tableFilter)
ImportTableNodes(schema, tableFilter, importOptions)
ImportDB()
ImportDB(schemaFilter, tableFilter)
ImportDB(schemaFilter, tableFilter, importOptions)
GetDatabaseSchema()
GetDatabaseSchema(importOptions)
GetDatabaseSchema(includedSchemas, includedTables, importOptions)
ImportOptions specify objects to exclude
Don't exclude anything
Views
Identity Specifications
Primary Keys
Foreign Keys
Unique Keys
Indexes
Column Defaults
Check Constraints
ImportOptions.None
ImportOptions.ExcludeViews
ImportOptions.ExcludeIdentity
ImportOptions.ExcludePrimaryKey
ImportOptions.ExcludeForeignKey
ImportOptions.ExcludeUniqueKey
ImportOptions.ExcludeIndex
ImportOptions.ExcludeColumnDefault
ImportOptions.ExcludeCheckConstraint
Demo time!
Additional methods for importing metadata
GenerateSchemaNode
Returns AstSchemaNode
GenerateSchemaNodes
Returns IEnumerable<AstSchemaNode>
Additional methods for importing metadata
GenerateTableNode
Returns AstTableNode
GenerateTableNodes
Returns IEnumerable<AstTableNode>
Demo time!
Biml Academy 2
Lesson 5: Importing source metadata into Biml (Cathrine)
Lesson 6: Staging data with Biml (Andy)
Lesson 7: Metadata-driven staging pattern with Biml (Andy)
Lesson 8: BimlFlex for delivering Data Vault data warehouses (Scott)
Lesson 9: Biml Q&A with several BimlHeroes!

More Related Content

PDF
Level Up Your Biml: Best Practices and Coding Techniques (SQLSaturday Sacrame...
PDF
Biml for Beginners: Speed up your SSIS development (SQLSaturday Iceland)
PDF
Level Up Your Biml: Best Practices and Coding Techniques (SQLSaturday Minnesota)
PDF
Level Up Your Biml: Best Practices and Coding Techniques (SQLSaturday Denver)
PDF
Level Up Your Biml: Best Practices and Coding Techniques (NTK 2016)
PDF
Level Up Your Biml: Best Practices and Coding Techniques (SQLSaturday Oslo)
PDF
Biml for Beginners: Speed up your SSIS development (SQLSaturday Vancouver)
PDF
Don't Repeat Yourself - An Introduction to Agile SSIS Development (24 Hours o...
Level Up Your Biml: Best Practices and Coding Techniques (SQLSaturday Sacrame...
Biml for Beginners: Speed up your SSIS development (SQLSaturday Iceland)
Level Up Your Biml: Best Practices and Coding Techniques (SQLSaturday Minnesota)
Level Up Your Biml: Best Practices and Coding Techniques (SQLSaturday Denver)
Level Up Your Biml: Best Practices and Coding Techniques (NTK 2016)
Level Up Your Biml: Best Practices and Coding Techniques (SQLSaturday Oslo)
Biml for Beginners: Speed up your SSIS development (SQLSaturday Vancouver)
Don't Repeat Yourself - An Introduction to Agile SSIS Development (24 Hours o...

What's hot (20)

PDF
Biml for Beginners: Speed up your SSIS development (Malta Microsoft Data Plat...
PDF
Biml for Beginners - Generating SSIS Packages with BimlScript (SQLSaturday Ex...
PDF
Generate SSIS packages automatically with Biml and BimlScript (SQLKonferenz 2...
PDF
S.M.A.R.T. Biml - Standardize, Model, Automate, Reuse and Transform (SQLSatur...
PDF
Level Up Your Biml: Best Practices and Coding Techniques (TUGA IT 2016)
PDF
Don't Repeat Yourself - Agile SSIS Development with Biml and BimlScript (SQL ...
PDF
Biml for Beginners - Generating SSIS Packages with BimlScript (SQLSaturday Go...
PDF
Biml for Beginners: Speed up your SSIS development (SQLBits XV)
PDF
Biml for Beginners: Speed up your SSIS development (SQLSaturday Chicago)
PDF
Biml for Beginners: Speed up your SSIS development (SQLSaturday Vienna)
PDF
Upgrading from SSIS Package Deployment to Project Deployment (SQLSaturday Den...
PDF
Biml for Beginners: Speed up your SSIS development (SQL PASS Edmonton )
PDF
Biml for Beginners: Speed up your SSIS development (SQLSaturday Tallinn)
PDF
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLSat...
PDF
Biml for Beginners: Script and Automate SSIS development (Capital Area SQL Se...
PPTX
BIML: BI to the next level
PPTX
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
PPTX
Lessons learned from the worlds largest XPage project
PDF
Real World Caching with Ruby on Rails
PPTX
Azure and Umbraco CMS
Biml for Beginners: Speed up your SSIS development (Malta Microsoft Data Plat...
Biml for Beginners - Generating SSIS Packages with BimlScript (SQLSaturday Ex...
Generate SSIS packages automatically with Biml and BimlScript (SQLKonferenz 2...
S.M.A.R.T. Biml - Standardize, Model, Automate, Reuse and Transform (SQLSatur...
Level Up Your Biml: Best Practices and Coding Techniques (TUGA IT 2016)
Don't Repeat Yourself - Agile SSIS Development with Biml and BimlScript (SQL ...
Biml for Beginners - Generating SSIS Packages with BimlScript (SQLSaturday Go...
Biml for Beginners: Speed up your SSIS development (SQLBits XV)
Biml for Beginners: Speed up your SSIS development (SQLSaturday Chicago)
Biml for Beginners: Speed up your SSIS development (SQLSaturday Vienna)
Upgrading from SSIS Package Deployment to Project Deployment (SQLSaturday Den...
Biml for Beginners: Speed up your SSIS development (SQL PASS Edmonton )
Biml for Beginners: Speed up your SSIS development (SQLSaturday Tallinn)
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLSat...
Biml for Beginners: Script and Automate SSIS development (Capital Area SQL Se...
BIML: BI to the next level
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
Lessons learned from the worlds largest XPage project
Real World Caching with Ruby on Rails
Azure and Umbraco CMS
Ad

Similar to Biml Academy 2 - Lesson 5: Importing source metadata into Biml (20)

PDF
Biml Tips and Tricks: Not Just for SSIS Packages! (SQLBits 2019)
PDF
Biml Tips and Tricks: Not Just for SSIS Packages! (SQLGrillen 2018)
PDF
Biml for Beginners: Script and Automate SSIS development (Hybrid VC)
PDF
Biml for Beginners: Script and Automate SSIS development (SQLSaturday Oslo)
PDF
Level Up Your Biml: Best Practices and Coding Techniques (SQLBits 2018)
PDF
Level Up Your Biml: Best Practices and Coding Techniques (PASS Summit 2018)
PPTX
ETL
PDF
Biml for Beginners: Script and Automate SSIS development (SQLSaturday Chicago)
PDF
Biml for Beginners: Script and Automate SSIS development (Malibu SQL Server U...
PDF
Biml for Beginners: Speed up your SSIS development (SQLSaturday Nashville)
PDF
Biml for Beginners: Script and Automate SSIS development (SQLSaturday Finland)
PDF
Db import&amp;export
PDF
Db import&amp;export
PDF
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLBit...
PPTX
IDUG 2015 NA Data Movement Utilities final
PDF
Incremental update-with-data-driven-approach
PDF
Sql server 2012 transact sql dml reference
PDF
Update strategy-transformation
PDF
Biml for Beginners: Script and Automate SSIS development (24 Hours of PASS: S...
DOC
Dwh faqs
Biml Tips and Tricks: Not Just for SSIS Packages! (SQLBits 2019)
Biml Tips and Tricks: Not Just for SSIS Packages! (SQLGrillen 2018)
Biml for Beginners: Script and Automate SSIS development (Hybrid VC)
Biml for Beginners: Script and Automate SSIS development (SQLSaturday Oslo)
Level Up Your Biml: Best Practices and Coding Techniques (SQLBits 2018)
Level Up Your Biml: Best Practices and Coding Techniques (PASS Summit 2018)
ETL
Biml for Beginners: Script and Automate SSIS development (SQLSaturday Chicago)
Biml for Beginners: Script and Automate SSIS development (Malibu SQL Server U...
Biml for Beginners: Speed up your SSIS development (SQLSaturday Nashville)
Biml for Beginners: Script and Automate SSIS development (SQLSaturday Finland)
Db import&amp;export
Db import&amp;export
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLBit...
IDUG 2015 NA Data Movement Utilities final
Incremental update-with-data-driven-approach
Sql server 2012 transact sql dml reference
Update strategy-transformation
Biml for Beginners: Script and Automate SSIS development (24 Hours of PASS: S...
Dwh faqs
Ad

More from Cathrine Wilhelmsen (20)

PDF
Fra utvikler til arkitekt: Skap din egen karrierevei ved å utvikle din person...
PDF
One Year in Fabric: Lessons Learned from Implementing Real-World Projects (PA...
PDF
Data Factory in Microsoft Fabric (MsBIP #82)
PDF
Getting Started: Data Factory in Microsoft Fabric (Microsoft Fabric Community...
PDF
Choosing Between Microsoft Fabric, Azure Synapse Analytics and Azure Data Fac...
PDF
Website Analytics in My Pocket using Microsoft Fabric (SQLBits 2024)
PDF
Data Integration using Data Factory in Microsoft Fabric (ESPC Microsoft Fabri...
PDF
Choosing between Fabric, Synapse and Databricks (Data Left Unattended 2023)
PDF
Data Integration with Data Factory (Microsoft Fabric Day Oslo 2023)
PDF
The Battle of the Data Transformation Tools (PASS Data Community Summit 2023)
PDF
Visually Transform Data in Azure Data Factory or Azure Synapse Analytics (PAS...
PDF
Building an End-to-End Solution in Microsoft Fabric: From Dataverse to Power ...
PDF
Website Analytics in my Pocket using Microsoft Fabric (AdaCon 2023)
PDF
Choosing Between Microsoft Fabric, Azure Synapse Analytics and Azure Data Fac...
PDF
Stressed, Depressed, or Burned Out? The Warning Signs You Shouldn't Ignore (D...
PDF
Stressed, Depressed, or Burned Out? The Warning Signs You Shouldn't Ignore (S...
PDF
"I can't keep up!" - Turning Discomfort into Personal Growth in a Fast-Paced ...
PDF
Lessons Learned: Implementing Azure Synapse Analytics in a Rapidly-Changing S...
PDF
6 Tips for Building Confidence as a Public Speaker (SQLBits 2022)
PDF
Lessons Learned: Understanding Pipeline Pricing in Azure Data Factory and Azu...
Fra utvikler til arkitekt: Skap din egen karrierevei ved å utvikle din person...
One Year in Fabric: Lessons Learned from Implementing Real-World Projects (PA...
Data Factory in Microsoft Fabric (MsBIP #82)
Getting Started: Data Factory in Microsoft Fabric (Microsoft Fabric Community...
Choosing Between Microsoft Fabric, Azure Synapse Analytics and Azure Data Fac...
Website Analytics in My Pocket using Microsoft Fabric (SQLBits 2024)
Data Integration using Data Factory in Microsoft Fabric (ESPC Microsoft Fabri...
Choosing between Fabric, Synapse and Databricks (Data Left Unattended 2023)
Data Integration with Data Factory (Microsoft Fabric Day Oslo 2023)
The Battle of the Data Transformation Tools (PASS Data Community Summit 2023)
Visually Transform Data in Azure Data Factory or Azure Synapse Analytics (PAS...
Building an End-to-End Solution in Microsoft Fabric: From Dataverse to Power ...
Website Analytics in my Pocket using Microsoft Fabric (AdaCon 2023)
Choosing Between Microsoft Fabric, Azure Synapse Analytics and Azure Data Fac...
Stressed, Depressed, or Burned Out? The Warning Signs You Shouldn't Ignore (D...
Stressed, Depressed, or Burned Out? The Warning Signs You Shouldn't Ignore (S...
"I can't keep up!" - Turning Discomfort into Personal Growth in a Fast-Paced ...
Lessons Learned: Implementing Azure Synapse Analytics in a Rapidly-Changing S...
6 Tips for Building Confidence as a Public Speaker (SQLBits 2022)
Lessons Learned: Understanding Pipeline Pricing in Azure Data Factory and Azu...

Recently uploaded (20)

PPT
Miokarditis (Inflamasi pada Otot Jantung)
PPTX
Introduction to Firewall Analytics - Interfirewall and Transfirewall.pptx
PDF
“Getting Started with Data Analytics Using R – Concepts, Tools & Case Studies”
PPTX
Database Infoormation System (DBIS).pptx
PDF
Recruitment and Placement PPT.pdfbjfibjdfbjfobj
PPT
Quality review (1)_presentation of this 21
PDF
Lecture1 pattern recognition............
PPTX
oil_refinery_comprehensive_20250804084928 (1).pptx
PPTX
Data_Analytics_and_PowerBI_Presentation.pptx
PDF
Galatica Smart Energy Infrastructure Startup Pitch Deck
PPTX
Supervised vs unsupervised machine learning algorithms
PDF
annual-report-2024-2025 original latest.
PDF
168300704-gasification-ppt.pdfhghhhsjsjhsuxush
PDF
Foundation of Data Science unit number two notes
PPTX
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
PPTX
Computer network topology notes for revision
PPTX
AI Strategy room jwfjksfksfjsjsjsjsjfsjfsj
PDF
Business Analytics and business intelligence.pdf
PDF
Mega Projects Data Mega Projects Data
Miokarditis (Inflamasi pada Otot Jantung)
Introduction to Firewall Analytics - Interfirewall and Transfirewall.pptx
“Getting Started with Data Analytics Using R – Concepts, Tools & Case Studies”
Database Infoormation System (DBIS).pptx
Recruitment and Placement PPT.pdfbjfibjdfbjfobj
Quality review (1)_presentation of this 21
Lecture1 pattern recognition............
oil_refinery_comprehensive_20250804084928 (1).pptx
Data_Analytics_and_PowerBI_Presentation.pptx
Galatica Smart Energy Infrastructure Startup Pitch Deck
Supervised vs unsupervised machine learning algorithms
annual-report-2024-2025 original latest.
168300704-gasification-ppt.pdfhghhhsjsjhsuxush
Foundation of Data Science unit number two notes
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
Computer network topology notes for revision
AI Strategy room jwfjksfksfjsjsjsjsjfsjfsj
Business Analytics and business intelligence.pdf
Mega Projects Data Mega Projects Data

Biml Academy 2 - Lesson 5: Importing source metadata into Biml

  • 1. Biml Academy 2 Importing, Staging, and Loading Data with Biml Andy Leonard · Scott Currie · Cathrine Wilhelmsen
  • 2. Biml Academy 2 Lesson 5: Importing source metadata into Biml (Cathrine) Lesson 6: Staging data with Biml (Andy) Lesson 7: Metadata-driven staging pattern with Biml (Andy) Lesson 8: BimlFlex for Data Vault data warehouses (Scott) Lesson 9: Biml Q&A with several BimlHeroes!
  • 3. Cathrine Wilhelmsen @cathrinew cathrinew.net Data Warehouse Architect Business Intelligence Developer
  • 4. Lesson 5: Importing source metadata into Biml
  • 5. Methods for importing metadata ImportTableNodes ImportDB GetDatabaseSchema
  • 6. Methods for importing metadata ImportTableNodes Import tables and views in one schema Filter tables using LIKE % wildcard syntax
  • 7. Methods for importing metadata ImportDB Import all schemas, tables and views Filter using LIKE % wildcard syntax
  • 8. Methods for importing metadata GetDatabaseSchema Import all schemas, tables and views Filter using collections
  • 9. Why ImportDB and GetDatabaseSchema? ImportDB / ImportTableNodes • SELECT * on each imported table • SELECT to get defaults, indexes etc. • Using SchemaOnly mode • Doesn't actually run the query, but returns schema for the result set GetDatabaseSchema • Figures out target database type (SQL Server, Oracle, Teradata, DB2, PostgreSQL, Ingres, OpenEdge etc.) • Queries the relevant information schema for that database type A few queries for the entire importMultiple queries per table
  • 10. But why keep both if one is faster? Support for legacy scripts :) They can return different results – where both are valid/correct Different data type mapping defaults in different systems (Bulk Copy, SSIS and Excel are all different) Biml supports the two most commonly used approaches
  • 11. Methods and parameters ImportTableNodes(schema, tableFilter) ImportTableNodes(schema, tableFilter, importOptions) ImportDB() ImportDB(schemaFilter, tableFilter) ImportDB(schemaFilter, tableFilter, importOptions) GetDatabaseSchema() GetDatabaseSchema(importOptions) GetDatabaseSchema(includedSchemas, includedTables, importOptions)
  • 12. Methods and parameters: string value ImportTableNodes(schema, tableFilter) ImportTableNodes(schema, tableFilter, importOptions) ImportDB() ImportDB(schemaFilter, tableFilter) ImportDB(schemaFilter, tableFilter, importOptions) GetDatabaseSchema() GetDatabaseSchema(importOptions) GetDatabaseSchema(includedSchemas, includedTables, importOptions)
  • 13. Methods and parameters: string filter ImportTableNodes(schema, tableFilter) ImportTableNodes(schema, tableFilter, importOptions) ImportDB() ImportDB(schemaFilter, tableFilter) ImportDB(schemaFilter, tableFilter, importOptions) GetDatabaseSchema() GetDatabaseSchema(importOptions) GetDatabaseSchema(includedSchemas, includedTables, importOptions)
  • 14. Methods and parameters: collections ImportTableNodes(schema, tableFilter) ImportTableNodes(schema, tableFilter, importOptions) ImportDB() ImportDB(schemaFilter, tableFilter) ImportDB(schemaFilter, tableFilter, importOptions) GetDatabaseSchema() GetDatabaseSchema(importOptions) GetDatabaseSchema(includedSchemas, includedTables, importOptions)
  • 15. Methods and parameters: ImportOptions ImportTableNodes(schema, tableFilter) ImportTableNodes(schema, tableFilter, importOptions) ImportDB() ImportDB(schemaFilter, tableFilter) ImportDB(schemaFilter, tableFilter, importOptions) GetDatabaseSchema() GetDatabaseSchema(importOptions) GetDatabaseSchema(includedSchemas, includedTables, importOptions)
  • 16. ImportOptions specify objects to exclude Don't exclude anything Views Identity Specifications Primary Keys Foreign Keys Unique Keys Indexes Column Defaults Check Constraints ImportOptions.None ImportOptions.ExcludeViews ImportOptions.ExcludeIdentity ImportOptions.ExcludePrimaryKey ImportOptions.ExcludeForeignKey ImportOptions.ExcludeUniqueKey ImportOptions.ExcludeIndex ImportOptions.ExcludeColumnDefault ImportOptions.ExcludeCheckConstraint
  • 18. Additional methods for importing metadata GenerateSchemaNode Returns AstSchemaNode GenerateSchemaNodes Returns IEnumerable<AstSchemaNode>
  • 19. Additional methods for importing metadata GenerateTableNode Returns AstTableNode GenerateTableNodes Returns IEnumerable<AstTableNode>
  • 21. Biml Academy 2 Lesson 5: Importing source metadata into Biml (Cathrine) Lesson 6: Staging data with Biml (Andy) Lesson 7: Metadata-driven staging pattern with Biml (Andy) Lesson 8: BimlFlex for delivering Data Vault data warehouses (Scott) Lesson 9: Biml Q&A with several BimlHeroes!