Auto Generate Data Vault using Biml, Part 1: Webinar Content
Webinar walkthrough showing how Biml fully generates a Data Vault data warehouse from source metadata.
Webinar walkthrough showing how Biml fully generates a Data Vault data warehouse from source metadata.
In this webinar, we will introduce you to BimlStudio, BimlScript syntax, and the fundamentals required for you to follow and understand more advanced Biml topics.
Connects directly to a live source database with 'ImportDB', then generates one Dataflow task per imported table that copies the data from the source connection to the target connection, with no advance knowledge of the source schema required.
These are the code samples from the PASS BI Virtual Chapter meeting from 2013/12/12. For the video, check out "Create and Load a Staging Environment...
Defines a 'DimProduct' Dimension with key/non-key attributes, attribute-to-attribute relationships, and a multi-level hierarchy ('Categories' rolling up Category, Subcategory, and ProductName), demonstrating how a Dimension references a Schema, which references a Database, which references the underlying Connection.
BimlStudio preview script that imports one or more named tables from a given database, walks every schema looking for the match, writes the resulting Biml under the database's 'Tables' directory, adds the file to the live project, sets the schema to the database default, then calls a follow-up script to add UsedByCycle tags.
BimlStudio script that finishes a freshly imported Table: resets the schema to the database's default, renames the Biml file to local convention, moves it to the database's Tables directory, and calls a follow-up script to add UsedByCycle tags.
Declares a standalone FlatFileFormat asset with typed columns and per-column delimiters that can be referenced by one or more FlatFileConnection objects.
Calls 'ImportDB' against a live source, then filters the returned TableNodes against either a hard-coded C# list or a metadata-driven SQL query, a more flexible alternative to 'ImportDB''s LIKE-style filter when you need to pick disparate table names.
Calls 'AstOleDbConnectionNode.ImportDB()' from a class feature control block, then re-emits the imported Schemas and Tables as Biml via 'GetBiml()' so the model mirrors the live database.
Lists every base table from sys.tables and emits a per-table SSIS dataflow that pumps rows through the 'SqlServerPdwDestination' adapter, the path used for an initial historical load when migrating to SQL Server Parallel Data Warehouse / Analytics Platform System.
Reads the first line of a delimited file as a single 'FileInfo' string, routes it through a Conditional Split that compares against known header signatures, counts rows on each branch, then uses a precedence-constraint expression on a non-zero row count to fire the matching per-layout Dataflow task.
Table editor in BimlStudio
Extends the add-default-columns transformer pattern with a 'GetColumnList()' membership check on TargetNode so the transformer only emits new Column definitions when they are not already present, avoiding duplicate-column errors when the same transformer runs across tables that already have some of the columns.