---
title: Create a Date dimension
description: "You often need a Date Dimension in your Data Mart to analyze your data by date.  Often, you don't have any source data to build this Date Dimension.  This article provides some guidance on building it, depending on your Target Technology.  Date source data Microsoft SQL Server  For Microsoft SQL Server, we can:  Create a Manual_Data database"
---

[Skip to content](https://knowledge.bigenius-x.com/create-a-date-dimension#main-content)

[Contact us](https://knowledge.bigenius-x.com/kb-tickets/new?hsLang=en) [Go to Customer Portal](https://knowledge.bigenius-x.com/customer-portal?hsLang=en)

[![TRI\_Logo\_biGENIUS\_2020\_RGB\_s](https://knowledge.bigenius-x.com/hs-fs/hubfs/Marketing/TRI_Logo_biGENIUS_2020_RGB_s.png?width=150&height=42&name=TRI_Logo_biGENIUS_2020_RGB_s.png)](https://www.bigenius-x.com/)

Open main navigation

Close main navigation

- [Contact us](https://knowledge.bigenius-x.com/kb-tickets/new)
- [Go to Customer Portal](https://knowledge.bigenius-x.com/customer-portal)

 How can we help you?

- There are no suggestions because the search field is empty.

1. [biGENIUS-X Knowledge Base](https://knowledge.bigenius-x.com/?hsLang=en)
2. [Best practices](https://knowledge.bigenius-x.com/best-practices?hsLang=en)
3. [Use Cases](https://knowledge.bigenius-x.com/best-practices?hsLang=en#use-cases)

# Create a Date dimension

You often **need a Date [Dimension](https://knowledge.bigenius-x.com/create-a-mart-dimension?hsLang=en)** in your Data Mart to analyze your data by date.

Often, you **don't have any source data** to build this Date Dimension.

This article provides some guidance on building it, depending on your Target Technology.

### Date source data

#### Microsoft SQL Server

For Microsoft SQL Server, we can:

- Create a **Manual\_Data database**

```
USE [master]CREATE DATABASE [Manual_Data]
```

- Create a **GetDateRange() function** in the Manual\_Data database

```
USE [Manual_Data]CREATE FUNCTION [dbo].[GetDateRange] (       @dtFrom                  DATETIME      ,@dtTo                    DATETIME      ,@fiscalYearOffsetInMonth INT)RETURNS@Result TABLE(      [DateKey]                       INT PRIMARY KEY     ,[Date]                          DATETIME     ,[YearKey]                       INT     ,[YearNumber]                    INT     ,[Year]                          VARCHAR(30)     ,[QuarterKey]                    INT     ,[QuarterNumber]                 TINYINT     ,[Quarter]                       VARCHAR(30)     ,[MonthKey]                      INT     ,[MonthNumber]                   TINYINT     ,[Month]                         VARCHAR(30)     ,[MonthName]                     VARCHAR(30)     ,[FirstDateInMonth]              DATETIME     ,[LastDateInMonth]               DATETIME     ,[DayKey]                        INT     ,[Day]                           VARCHAR(30)     ,[DayNumberOfWeekKey]            TINYINT     ,[DayNumberOfWeekNumber]         TINYINT     ,[DayNumberOfWeekName]           VARCHAR(30)     ,[DayNumberOfMonth]              TINYINT     ,[DayNumberOfYear]               SMALLINT     ,[WeekKey]                       INT     ,[WeekNumber]                    SMALLINT     ,[WeekName]                      VARCHAR(30)     ,[WeekNumberOfYear]              SMALLINT)AS     BEGIN     DECLARE        @dt DateTime       ,@dtFiscal DateTime       ,@id Int       ,@year int       ,@yearName char(4)       ,@semester int       ,@quarter int       ,@month int       ,@firstDateInMonth date       ,@yearFiscal int       ,@yearNameFiscal char(4)       ,@semesterFiscal int       ,@quarterFiscal int       ,@monthFiscal int       ,@day int       ,@dayOfWeek tinyint       ;     SET @dt = @dtFrom     WHILE @dt <= @dtTo     BEGIN       SELECT  @year= YEAR(@dt)              ,@yearName= CAST(@year AS CHAR(4))              ,@quarter= DATEPART(q, @dt)              ,@semester= CASE WHEN @quarter <= 2 THEN 1 ELSE 2 END              ,@month= MONTH(@dt)              ,@firstDateInMonth= CAST(CAST(@year AS NVARCHAR(10)) + '-' + CAST(@month AS NVARCHAR(10)) + '-01' AS DATE)              ,@day= DAY(@dt)              ,@id= @year * 10000 + @month * 100 + @day              ,@dtFiscal= DATEADD(m, @fiscalYearOffsetInMonth, @dt)              ,@yearFiscal= YEAR(@dtFiscal)              ,@yearNameFiscal= CAST(@yearFiscal AS CHAR(4))              ,@quarterFiscal= DATEPART(q, @dtFiscal)              ,@semesterFiscal= CASE WHEN @quarterFiscal <= 2 THEN 1 ELSE 2 END              ,@monthFiscal= MONTH(@dtFiscal)              ,@dayOfWeek= DATEPART(dw, @dt)       ;       INSERT INTO @Result(               [DateKey]              ,[Date]              ,[YearKey]              ,[YearNumber]              ,[Year]              ,[QuarterKey]              ,[QuarterNumber]              ,[Quarter]              ,[MonthKey]              ,[MonthNumber]              ,[Month]              ,[MonthName]              ,[FirstDateInMonth]              ,[LastDateInMonth]              ,[DayKey]              ,[Day]              ,[DayNumberOfWeekKey]              ,[DayNumberOfWeekNumber]              ,[DayNumberOfWeekName]              ,[DayNumberOfMonth]              ,[DayNumberOfYear]              ,[WeekKey]              ,[WeekNumber]              ,[WeekName]              ,[WeekNumberOfYear]              )       VALUES(               @id              ,@dt              ,@year   --YearKey              ,@year   --YearNumber              ,@yearName  --YearName              ,@year * 10 + @quarter --QuarterKey              ,@quarter                 --QuarterNumber              ,@yearName + '/Q' +  CAST(@quarter AS CHAR(1)) --Quarter unique name              ,@year * 100 + @month --MonthKey              ,@month --MonthNumber              ,DATENAME(mm, @dt) + ' ' + CAST(@yearName AS VARCHAR(4)) --Month unique name              ,DATENAME(mm, @dt)--MonthName              ,@firstDateInMonth              ,DATEADD( DAY, -1, DATEADD(MONTH, 1, @firstDateInMonth))              ,@id --DayKey              ,DATENAME(mm, @dt) + ' ' + CAST(DAY(@dt) AS VARCHAR(2)) + ', ' + CAST(YEAR(@dt) AS VARCHAR(4)) -- Day unique name              ,@dayOfWeek --DayNumberOfWeekKey              ,@dayOfWeek --DayNumberOfWeekNumber              ,CASE WHEN @dayOfWeek = 1 THEN 'Sunday'                    WHEN @dayOfWeek = 2 THEN 'Monday'                    WHEN @dayOfWeek = 3 THEN 'Tuesday'                    WHEN @dayOfWeek = 4 THEN 'Wednesday'                    WHEN @dayOfWeek = 5 THEN 'Thursday'                    WHEN @dayOfWeek = 6 THEN 'Friday'                    WHEN @dayOfWeek = 7 THEN 'Saturday'               END --DayNumberOfWeekName              ,@day --DayNumberOfMonth              ,DATEPART(dy, @dt) --DayNumberOfYear              ,@year * 100 + DATEPART(wk, @dt) --WeekKey              ,DATEPART(wk, @dt) --WeekNumber              ,@yearName + '/W' + RIGHT('00' + CAST(DATEPART(wk, @dt) AS VARCHAR(2)), 2) --WeekName              ,DATEPART(wk, @dt) --WeekNumberOfYear       );       SELECT @dt = DATEADD(day, 1, @dt);    END;    RETURN;END;
```

- Create a **DateRange table** in the Manual\_Data database

```
CREATE TABLE [dbo].[DateRange](     [DateKey]                       INT PRIMARY KEY    ,[Date]                          DATETIME    ,[YearKey]                       INT    ,[YearNumber]                    INT    ,[Year]                          VARCHAR(30)    ,[QuarterKey]                    INT    ,[QuarterNumber]                 TINYINT    ,[Quarter]                       VARCHAR(30)    ,[MonthKey]                      INT    ,[MonthNumber]                   TINYINT    ,[Month]                         VARCHAR(30)    ,[MonthName]                     VARCHAR(30)    ,[FirstDateInMonth]              DATETIME    ,[LastDateInMonth]               DATETIME    ,[DayKey]                        INT    ,[Day]                           VARCHAR(30)    ,[DayNumberOfWeekKey]            TINYINT    ,[DayNumberOfWeekNumber]         TINYINT    ,[DayNumberOfWeekName]           VARCHAR(30)    ,[DayNumberOfMonth]              TINYINT    ,[DayNumberOfYear]               SMALLINT    ,[WeekKey]                       INT    ,[WeekNumber]                    SMALLINT    ,[WeekName]                      VARCHAR(30)    ,[WeekNumberOfYear]              SMALLINT)
```

- **Insert data in the DateRange table** by using the GetDateRange() function

```
INSERT INTO [dbo].[DateRange]SELECT * FROM [dbo].[GetDateRange](CAST(N'1900-01-01' AS DATETIME), CAST(N'2199-12-31' AS DATETIME), 0);
```

#### Snowflake

For Snowflake, we can:

- Create a **DATERANGE View** in our source system:

```
CREATE VIEW AW2017.DATERANGEASWITH precalculation AS(SELECT       --Date range will start at 2000-01-01      DATEADD(day, ROW_NUMBER() OVER(ORDER BY seq8()), '1999-12-31'::DATE) AS dt       , YEAR(dt) AS year      , CAST(year AS CHAR(4)) AS yearName      , DATE_PART(quarter, dt::date) AS quarter      , CASE WHEN quarter <= 2 THEN 1 ELSE 2 END AS semester      , MONTH(dt) AS month      , CAST(CAST(year AS VARCHAR(10)) || '-' || CAST(month AS VARCHAR(10)) || '-01' AS DATE) AS firstDateInMonth      , DAY(dt) AS day      , year * 10000 + month * 100 + DAY AS id      , DATE_PART(dayofweek, dt::date) + 1 AS dayOfWeek      --Date range will contains 100 years starting from 1999 so from beginning of 2000 TO end of 2099FROM TABLE(GENERATOR(ROWCOUNT => 365*100)) )SELECT       id AS DateKey      ,dt AS Date      ,year AS YearKey       ,year AS YearNumber      ,yearName AS Year      ,year * 10 + quarter AS QuarterKey      ,quarter AS QuarterNumber      ,yearName || '/Q'  || CAST(quarter AS CHAR(1)) AS Quarter      ,year * 100 + month AS MonthKey      ,month AS MonthNumber      ,TO_CHAR(dt::date,'MMMM') || ' ' || CAST(yearName AS VARCHAR(4)) AS Month      ,TO_CHAR(dt::date,'MMMM') AS MonthName      ,firstDateInMonth AS FirstDateInMonth      ,DATEADD( DAY, -1, DATEADD(MONTH, 1, firstDateInMonth)) AS LastDateInMonth      ,id AS DayKey      ,TO_CHAR(dt::date,'MMMM') || ' ' || CAST(DAY(dt) AS VARCHAR(2)) || ', ' || CAST(YEAR(dt) AS VARCHAR(4)) AS Day      ,dayOfWeek AS DayNumberOfWeekKey      ,dayOfWeek AS DayNumberOfWeekNumber      ,CASE WHEN dayOfWeek = 1 THEN 'Sunday'            WHEN dayOfWeek = 2 THEN 'Monday'            WHEN dayOfWeek = 3 THEN 'Tuesday'            WHEN dayOfWeek = 4 THEN 'Wednesday'            WHEN dayOfWeek = 5 THEN 'Thursday'            WHEN dayOfWeek = 6 THEN 'Friday'            WHEN dayOfWeek = 7 THEN 'Saturday'       END AS DayNumberOfWeekName      ,day AS DayNumberOfMonth      ,DATE_PART(dayofyear, dt::date) AS DayNumberOfYear      ,year * 100 + DATE_PART(week, dt::date) + 1 AS WeekKey      ,DATE_PART(week, dt::date) + 1 AS WeekNumber      ,yearName || '/W' || RIGHT('00' || CAST(DATE_PART(week, dt::date) + 1 AS VARCHAR(2)), 2) AS WeekName      ,DATE_PART(week, dt::date) + 1 AS WeekNumberOfYearFROM precalculation
```

#### Databricks

For Databricks, we can:

- Create a **daterange View** in a catalog with the following code in a notebook:

```
%sqlCREATE OR REPLACE VIEW elearning_databricks.aw2017.daterange ASWITH precalculation AS (  SELECT    dt,    YEAR(dt) AS year,    CAST(YEAR(dt) AS STRING) AS yearName,    QUARTER(dt) AS quarter,    CASE WHEN QUARTER(dt) <= 2 THEN 1 ELSE 2 END AS semester,    MONTH(dt) AS month,    DATE_TRUNC('month', dt) AS firstDateInMonth,    DAY(dt) AS day,    (YEAR(dt) * 10000 + MONTH(dt) * 100 + DAY(dt)) AS id,    -- Spark SQL: dayofweek returns 1=Sunday, 2=Monday, ..., 7=Saturday (same as Snowflake +1)    DAYOFWEEK(dt) AS dayOfWeek  FROM (    SELECT explode(sequence(      DATE('2000-01-01'),      DATE('2099-12-31'),      INTERVAL 1 DAY    )) AS dt  ))SELECT  id AS DateKey,  dt AS Date,  year AS YearKey,  year AS YearNumber,  yearName AS Year,  year * 10 + quarter AS QuarterKey,  quarter AS QuarterNumber,  CONCAT(yearName, '/Q', quarter) AS Quarter,  year * 100 + month AS MonthKey,  month AS MonthNumber,  CONCAT(date_format(dt, 'MMMM'), ' ', yearName) AS Month,  date_format(dt, 'MMMM') AS MonthName,  firstDateInMonth AS FirstDateInMonth,  -- Last day of month: add 1 month, subtract 1 day  date_sub(date_add(firstDateInMonth, 32), day(date_add(firstDateInMonth, 32)) - 1) AS LastDateInMonth,  id AS DayKey,  CONCAT(date_format(dt, 'MMMM'), ' ', day, ', ', year) AS Day,  dayOfWeek AS DayNumberOfWeekKey,  dayOfWeek AS DayNumberOfWeekNumber,  CASE dayOfWeek    WHEN 1 THEN 'Sunday'    WHEN 2 THEN 'Monday'    WHEN 3 THEN 'Tuesday'    WHEN 4 THEN 'Wednesday'    WHEN 5 THEN 'Thursday'    WHEN 6 THEN 'Friday'    WHEN 7 THEN 'Saturday'  END AS DayNumberOfWeekName,  day AS DayNumberOfMonth,  DAYOFYEAR(dt) AS DayNumberOfYear,  year * 100 + WEEKOFYEAR(dt) AS WeekKey,  WEEKOFYEAR(dt) AS WeekNumber,  CONCAT(yearName, '/W', lpad(WEEKOFYEAR(dt), 2, '0')) AS WeekName,  WEEKOFYEAR(dt) AS WeekNumberOfYearFROM precalculation
```

#### Microsoft Fabric

For Microsoft Fabric, we can:

- Create a **table in a Lake House** with the following code in a notebook:

```
from pyspark.sql import functions as Ffrom pyspark.sql.types import IntegerType, StringType, DateTypefrom datetime import date, timedelta# Define date rangestart_date = date(2000, 1, 1)end_date = date(2099, 12, 31)num_days = (end_date - start_date).days + 1# Create DataFrame with all dates in rangedf = spark.createDataFrame(    [(start_date + timedelta(days=i),) for i in range(num_days)],    ["dt"])# Add date dimension columnsdf = (    df.withColumn("year", F.year("dt"))      .withColumn("yearName", F.col("year").cast(StringType()))      .withColumn("quarter", F.quarter("dt"))      .withColumn("semester", F.when(F.col("quarter") <= 2, 1).otherwise(2))      .withColumn("month", F.month("dt"))      .withColumn("firstDateInMonth", F.trunc("dt", "month"))      .withColumn("day", F.dayofmonth("dt"))      .withColumn("id", F.col("year") * 10000 + F.col("month") * 100 + F.col("day"))      .withColumn("dayOfWeek", F.dayofweek("dt"))  # 1=Sunday, 7=Saturday)# Final select with formatting and additional columnsdf = (    df.withColumn("DateKey", F.col("id"))      .withColumn("Date", F.col("dt"))      .withColumn("YearKey", F.col("year"))      .withColumn("YearNumber", F.col("year"))      .withColumn("Year", F.col("yearName"))      .withColumn("QuarterKey", F.col("year") * 10 + F.col("quarter"))      .withColumn("QuarterNumber", F.col("quarter"))      .withColumn("Quarter", F.concat(F.col("yearName"), F.lit("/Q"), F.col("quarter").cast(StringType())))      .withColumn("MonthKey", F.col("year") * 100 + F.col("month"))      .withColumn("MonthNumber", F.col("month"))      .withColumn("Month", F.concat(F.date_format("dt", "MMMM"), F.lit(" "), F.col("yearName")))      .withColumn("MonthName", F.date_format("dt", "MMMM"))      .withColumn("FirstDateInMonth", F.col("firstDateInMonth"))      .withColumn("LastDateInMonth", F.expr("last_day(dt)"))      .withColumn("DayKey", F.col("id"))      .withColumn("Day", F.concat(F.date_format("dt", "MMMM"), F.lit(" "), F.col("day").cast(StringType()), F.lit(", "), F.col("year").cast(StringType())))      .withColumn("DayNumberOfWeekKey", F.col("dayOfWeek"))      .withColumn("DayNumberOfWeekNumber", F.col("dayOfWeek"))      .withColumn("DayNumberOfWeekName", F.when(F.col("dayOfWeek") == 1, "Sunday")                                          .when(F.col("dayOfWeek") == 2, "Monday")                                          .when(F.col("dayOfWeek") == 3, "Tuesday")                                          .when(F.col("dayOfWeek") == 4, "Wednesday")                                          .when(F.col("dayOfWeek") == 5, "Thursday")                                          .when(F.col("dayOfWeek") == 6, "Friday")                                          .when(F.col("dayOfWeek") == 7, "Saturday"))      .withColumn("DayNumberOfMonth", F.col("day"))      .withColumn("DayNumberOfYear", F.dayofyear("dt"))      .withColumn("WeekKey", F.col("year") * 100 + F.weekofyear("dt"))      .withColumn("WeekNumber", F.weekofyear("dt"))      .withColumn("WeekName", F.concat(F.col("yearName"), F.lit("/W"), F.lpad(F.weekofyear("dt").cast(StringType()), 2, "0")))      .withColumn("WeekNumberOfYear", F.weekofyear("dt"))      .select(          "DateKey", "Date", "YearKey", "YearNumber", "Year", "QuarterKey", "QuarterNumber", "Quarter",          "MonthKey", "MonthNumber", "Month", "MonthName", "FirstDateInMonth", "LastDateInMonth",          "DayKey", "Day", "DayNumberOfWeekKey", "DayNumberOfWeekNumber", "DayNumberOfWeekName",          "DayNumberOfMonth", "DayNumberOfYear", "WeekKey", "WeekNumber", "WeekName", "WeekNumberOfYear"      ))# Save as a table in your Lakehouse or Warehouse - Lakehouse name to adaptdf.write.mode("overwrite").saveAsTable("docu_bglakehouse.DATERANGE")
```

### Build the Date Dimension

The date dimension build depends on the modeling approach.

#### Data Vault modeling

The data lineage of the Date Mart Dimension in a Data Vault modeling can be:

![](https://knowledge.bigenius-x.com/hs-fs/hubfs/image-png-May-28-2025-11-51-55-4355-AM.png?width=670&height=39&name=image-png-May-28-2025-11-51-55-4355-AM.png)

To model it, please follow the steps:

- Discover the source date table you created previously for your Target Technology
- Create a **Source** Model Object from the discovery
- Create a **Stage** Model Object from the Source Model Object

It can be interesting to filter the data in the Stage Model Object with a WHERE clause in the Dataflow Set to fit the date range that actually exists in your date source data.

- Create a **Reference Table** Model Object from the Stage Model Object

- Create a **D\_Date Mart Dimension** from the Reference Table: 
    - Business key: DayKey
    - Terms: descriptive terms of a day, a month, a quarter, and a year

#### Dimensional Modeling

The data lineage of the Date Mart Dimension in a Dimensional modeling can be:

![](https://knowledge.bigenius-x.com/hs-fs/hubfs/image-png-May-28-2025-11-30-28-3697-AM.png?width=670&height=131&name=image-png-May-28-2025-11-30-28-3697-AM.png)

To model it, please follow the steps:

- Discover the source date table you created previously for your Target Technology
- Create a **Source** Model Object from the discovery
- Create a **Stage** Model Object from the Source Model Object

It can be interesting to filter the data in the Stage Model Object with a WHERE clause in the Dataflow Set to fit the date range that actually exists in your date source data.

- Create 4 entities: 
    - **Date\_Year**: 
          - Business key: YearKey
          - Terms: descriptive terms of a year
          - Deduplication Method of the Dataflow set to Distinct
    - **Date\_Quarter**: 
          - Business key: QuarterKey
          - Terms: descriptive terms of a quarter
          - Relationship with Date\_Year
          - Deduplication Method of the Dataflow set to Distinct

- - **Date\_Month**: 
          - Business key: MonthKey
          - Terms: descriptive terms of a month
          - Relationship with Date\_Quarter
          - Deduplication Method of the Dataflow set to Distinct

- - **Date\_Day**: 
          - Business key: DayKey
          - Terms: descriptive terms of a day
          - Relationship with Date\_Month
- Create a **D\_Date Mart Dimension**: 
    - Business key: DayKey
    - terms: descriptive terms of a day, a month, a quarter, and a year
    - Dataflow composed by the entities Date\_Day, Date\_Month, Date\_Quarter, and Date\_Year with the correct Join Rules:

![](https://knowledge.bigenius-x.com/hs-fs/hubfs/image-png-May-28-2025-11-39-06-5555-AM.png?width=670&height=411&name=image-png-May-28-2025-11-39-06-5555-AM.png)

 

- [Getting started](https://knowledge.bigenius-x.com/getting-started?hsLang=en#main-content)

    - [Guidelines](https://knowledge.bigenius-x.com/getting-started?hsLang=en#guidelines)
    - [Start working](https://knowledge.bigenius-x.com/getting-started?hsLang=en#start-working)
    - [Account](https://knowledge.bigenius-x.com/getting-started?hsLang=en#account)
- [General overview](https://knowledge.bigenius-x.com/general-overview?hsLang=en)
- [Artificial Intelligence](https://knowledge.bigenius-x.com/artificial-intelligence?hsLang=en)
- [Application Modules](https://knowledge.bigenius-x.com/application-modules?hsLang=en#main-content)

    - [Administration](https://knowledge.bigenius-x.com/application-modules?hsLang=en#administration)
    - [Solutions](https://knowledge.bigenius-x.com/application-modules?hsLang=en#solutions)
    - [Global Features](https://knowledge.bigenius-x.com/application-modules?hsLang=en#global-features)
    - [Projects](https://knowledge.bigenius-x.com/application-modules?hsLang=en#projects)
    - [Branches](https://knowledge.bigenius-x.com/application-modules?hsLang=en#branches)
    - [Data Connections](https://knowledge.bigenius-x.com/application-modules?hsLang=en#data-connections)
    - [Dataflow Modeling - Overview](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-overview)
    - [Dataflow Modeling - Wizard Steps](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-wizard-steps)
    - [Dataflow Modeling - Terms](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-terms)
    - [Dataflow Modeling - Term Mapping](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-term-mapping)
    - [Dataflow Modeling - Relationships](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-relationships)
    - [Dataflow Modeling - Data Quality](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-data-quality)
    - [Dataflow Modeling - Indexes](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-indexes)
    - [Relationship Modeling](https://knowledge.bigenius-x.com/application-modules?hsLang=en#relationship-modeling)
    - [Generate Artifacts](https://knowledge.bigenius-x.com/application-modules?hsLang=en#generate-artifacts)
    - [Project Settings](https://knowledge.bigenius-x.com/application-modules?hsLang=en#project-settings)
    - [Data Marketplace](https://knowledge.bigenius-x.com/application-modules?hsLang=en#data-marketplace)
- [Generators](https://knowledge.bigenius-x.com/generators?hsLang=en#main-content)

    - [Fabric Warehouse](https://knowledge.bigenius-x.com/generators?hsLang=en#fabric-warehouse)
    - [Fabric Lakehouse](https://knowledge.bigenius-x.com/generators?hsLang=en#fabric-lakehouse)
    - [Databricks](https://knowledge.bigenius-x.com/generators?hsLang=en#databricks)
    - [Snowflake](https://knowledge.bigenius-x.com/generators?hsLang=en#snowflake)
    - [Microsoft SQL Server](https://knowledge.bigenius-x.com/generators?hsLang=en#microsoft-sql-server)
    - [Artifacts](https://knowledge.bigenius-x.com/generators?hsLang=en#artifacts)
    - [Replace Placeholders](https://knowledge.bigenius-x.com/generators?hsLang=en#replace-placeholders)
    - [Target solution environment](https://knowledge.bigenius-x.com/generators?hsLang=en#target-solution-environment)
    - [Deployment](https://knowledge.bigenius-x.com/generators?hsLang=en#deployment)
    - [Deployment with an Azuze DevOps pipeline](https://knowledge.bigenius-x.com/generators?hsLang=en#deployment-with-an-azuze-devops-pipeline)
    - [Delta Deployment](https://knowledge.bigenius-x.com/generators?hsLang=en#delta-deployment)
    - [Load control environment](https://knowledge.bigenius-x.com/generators?hsLang=en#load-control-environment)
    - [Load data with a native load control](https://knowledge.bigenius-x.com/generators?hsLang=en#load-data-with-a-native-load-control)
    - [Load data with Apache Airflow](https://knowledge.bigenius-x.com/generators?hsLang=en#load-data-with-apache-airflow)
    - [Model Object Type](https://knowledge.bigenius-x.com/generators?hsLang=en#model-object-type)
    - [Properties](https://knowledge.bigenius-x.com/generators?hsLang=en#properties)
    - [Default Terms](https://knowledge.bigenius-x.com/generators?hsLang=en#default-terms)
- [Discovery application](https://knowledge.bigenius-x.com/discovery-application?hsLang=en#main-content)

    - [Discovery configurations](https://knowledge.bigenius-x.com/discovery-application?hsLang=en#discovery-configurations)
- [Best practices](https://knowledge.bigenius-x.com/best-practices?hsLang=en#main-content)

    - [Modeling Approaches](https://knowledge.bigenius-x.com/best-practices?hsLang=en#modeling-approaches)
    - [Use Cases](https://knowledge.bigenius-x.com/best-practices?hsLang=en#use-cases)
    - [Business Rules](https://knowledge.bigenius-x.com/best-practices?hsLang=en#business-rules)
    - [Data Quality Rules](https://knowledge.bigenius-x.com/best-practices?hsLang=en#data-quality-rules)
- [FAQs](https://knowledge.bigenius-x.com/faqs?hsLang=en)
- [Product Release Notes](https://knowledge.bigenius-x.com/product-release-notes?hsLang=en#main-content)

    - [SaaS Application](https://knowledge.bigenius-x.com/product-release-notes?hsLang=en#saas-application)
    - [Discovery application](https://knowledge.bigenius-x.com/product-release-notes?hsLang=en#discovery-application)
    - [Generators](https://knowledge.bigenius-x.com/product-release-notes?hsLang=en#generators)
- [Legal Documents](https://knowledge.bigenius-x.com/legal-documents?hsLang=en#main-content)

    - [Current legal docs](https://knowledge.bigenius-x.com/legal-documents?hsLang=en#current-legal-docs)
    - [Software Product and Limits](https://knowledge.bigenius-x.com/legal-documents?hsLang=en#software-product-and-limits)

- [Contact us](https://knowledge.bigenius-x.com/kb-tickets/new?hsLang=en)
- [Customer Portal](https://knowledge.bigenius-x.com/customer-portal)
- [Sign in](https://knowledge.bigenius-x.com/_hcms/mem/login)

[![biGENIUS logo](https://knowledge.bigenius-x.com/hubfs/TRI_Logo_biGENIUS_2020_RGB-1.svg "biGENIUS logo")](https://www.bigenius-x.com)

<https://www.linkedin.com/company/bigenius> <https://www.youtube.com/@biGENIUS_DWA>

All rights reserved © 2025, biGENIUS AG