Skip to content
  • There are no suggestions because the search field is empty.

Fabric Lakehouse - Datamart

Applies to
Platform: Fabric Lakehouse
Architecture: Data Mart

Fabric Lakehouse - Datamart generates a Mart layer from the objects of linked projects for Microsoft Fabric, as notebooks on Delta tables. Select the Generator Configuration Fabric Lakehouse DataMart when you add a project whose data marts run on Microsoft Fabric. With the project property Target Platform set to Azure Synapse, it generates for Azure Synapse Analytics instead.

Scope and output

  • Platform: with Target Platform Fabric, the default, each layer is a schema of a Microsoft Fabric lakehouse. With Azure Synapse, each layer is a database in Azure Synapse Analytics, which the deployment creates with CREATE DATABASE IF NOT EXISTS ... LOCATION.
  • Layers: Mart, and the layers of the imported linked projects. Dataflow Modeling shows the imported objects in the Linked column in Silver and the Mart model objects in the Datamart column, which is Gold. See Understand the Layering concept.
  • Output: notebooks in the folders Jupyter, Helpers and LoadControl, the notebook <project>_deploy and, with Target Platform Fabric, deploy.ps1; described in Fabric Lakehouse - Artifacts.

Prerequisites

  • Target Platform Fabric: a Fabric workspace with a lakehouse with schemas. The deployment creates a schema per layer.
  • Target Platform Fabric: a service principal as Member of the workspace, and PowerShell 7 for deploy.ps1.
  • Target Platform Azure Synapse: an Azure Synapse workspace and a storage location per layer.

The setup is described in Fabric Lakehouse - Target environment and Azure Synapse - Target environment, the placeholders in Fabric Lakehouse - Placeholder values.

Sources and linked projects

The configuration reads only model objects of linked projects, for example of a Data Vault or Data Store project. It has no discovery of its own. Import a linked project before you model the Mart layer. You can also export this project as a linked project.

Mart source views read the layers of the linked project with their own lakehouse and schema placeholders.

Supported model objects

Capabilities and limitations

  • Loaders: one notebook per loader in the folder Jupyter, for example DM_MD_bk_multipart_not_nullable_Loader, with the load timestamp as the parameter bg_loadtimestamp.
  • Tables: Delta tables. File Format offers only delta, and Optimization Method offers Partitioned By and Cluster By.
  • Keys: the tables get no primary key, unique or foreign key constraints. Foreign Key Mode offers only None.
  • Indexes: index management is not available.
  • Surrogate keys: the loader computes <model object name>_sk of a new row as a Long from the current time and monotonically_increasing_id(), without identity columns.
  • Unknown member: the deployment adds a row with the surrogate key -1 to each Mart Dimension. Custom Singleton Values sets its values.
  • Hashing: row hashes are UNHEX(SHA2(..., 256)) in Binary columns, see How biGENIUS-X builds hash values.
  • Validity: with Persist Validity on (default), historized tables store bg_validtotimestamp; off, the result view computes it.
  • Deployment: with the default Deployment Options, each deployment replaces the tables and the load control log tables with empty ones, see Redeploy and keep data. With Target Platform Fabric, it also creates a schema per layer.
  • Loading: LoadControl Options offers Multi-Threading Notebook and Airflow.

Project properties

The configuration offers these project properties, with their defaults:

Data types

The Default Terms get these data types:

  • Timestamps, Timestamp: BG_LoadTimestamp, BG_UpdateTimestamp, BG_ValidFromTimestamp, BG_ValidToTimestamp, BG_EffectiveTimestamp
  • Row hashes, Binary: BG_RowHash, BG_RowHashScd1, BG_RowHashScd2
  • Text, String: BG_SourceSystem, BG_DataflowName, BG_DataflowSetName, BG_ErrorDescription, BG_IncrementLoadStatus
  • Numbers, Long: BG_ID, BG_DataQuality_ID, BG_MartDimension_Identity, BG_MartFact_ForeignKey_Identity; Integer: BG_ErrorCount
  • Flags, Integer: BG_IsDeleted

Platform differences

The table compares the configuration with Microsoft SQL Server - Datamart of the same release:

ItemFabric LakehouseMicrosoft SQL Server
Timestamp Default TermsTimestampdatetimeoffset
Hash Default TermsBinarybinary(20)
Text Default TermsStringnvarchar
Hash Algorithm defaultSHA-256SHA1
Persist Validity defaultonoff
Deployment Options defaultdrop tables, create schemasdrop tables
Enforced foreign keysnot availableavailable
Index managementnot availableavailable

Both platforms offer the LoadControl Option Airflow. The native load control is Multi-Threading Notebook on Fabric Lakehouse.

Example

A Mart Dimension bk_multipart_not_nullable with the business key terms bdc_shop_id and bdc_customer_id and SCD1 and SCD2 terms generates this table. The excerpt shows the example lakehouse my_lakehouse with the schema mart in place of the placeholders:

CREATE OR REPLACE TABLE `my_lakehouse`.`mart`.
    `dm_md_bk_multipart_not_nullable` (
     `bg_sourcesystem` String
    ,`bg_loadtimestamp` Timestamp NOT NULL
    ,`bg_validfromtimestamp` Timestamp NOT NULL
    ,`bg_validtotimestamp` Timestamp
    ,`bk_multipart_not_nullable_sk` Long NOT NULL
    ,`bdc_shop_id` String NOT NULL
    ,`bdc_customer_id` String NOT NULL
    ,`first_name` String
    ,`last_name` String
    ,`date_of_birth` Date
    ,`location` String
    ,`bg_rowhashscd1` Binary NOT NULL
    ,`bg_rowhashscd2` Binary NOT NULL
)
USING delta

The deployment then inserts the unknown-member row with bk_multipart_not_nullable_sk -1, the text Unknown and the date 1900-01-01. The loader computes the surrogate key of each new row:

(unix_timestamp(current_timestamp()) * 1000000000)
    + (monotonically_increasing_id() % 1000000)
    AS `bk_multipart_not_nullable_sk`

Release differences

Project Settings shows the Generator Version of your project.

  • Generator 2.0: Target Object Comment Type replaced the value Target Platform with Tables and Tables and Views, default None. Added the model object property Foreign Key Mode on Mart Fact, with the only value None.
  • Generator 2.2: added Mart Out, the project properties Persist Validity, Create Result Views and the four Hash properties, and the model object property Increment Management Type on Mart Fact. Deployment Options added Generate Create Schema If Not Exists Statements, selected by default, and LoadControl Options added Airflow.
  • Generator 2.3: added the model object property Custom Singleton Values on Mart Dimension.
  • Generator 1.10: the project property Delta Detection. Since Generator 2.0, Delta Detection is a property of the Mart Dimension.

Related articles