Sprinkle Docs

Data Models

Overview & Detailed Walkthrough of Model Features.


Models, a powerful feature in Sprinkle that helps in presenting a multi-dimensional view of the table. It can be created without writing a single line of SQL query. It is configured with a simple point and
click user interface.

Watch Video

Models : Explanation & Feature Walkthrough
Primarily Models comprise date dimensions, dimensions, and measures.
Measures are Quantitative data like Amounts, Averages, counts, Prices, quantity, etc. Measures can be aggregated and used to derive other measures.
Dimensions are Qualitative data like names, dates, geographical locations, etc. which are used to categorize or Segment your data. They are the attributes on which the measures are calculated or grouped, and date dimensions are used to construct the data within a timeframe.
The Model page consists of 5 tabs, namely, Table, Column, Expression, Joins, Hierarchies


The table tab contains an overview of the model, the name of the schema and the table on which the user wants to create a model. For creating a model, a table has to be selected and its columns need to be mapped to the Measures and Dimensions fields.


In the column tab, the list of columns of a given table is catalogued. Here, the user selects dimensions, and measures at different aggregates like sum, average, count, distinct count, etc whereas, in date dimensions, the time frame can be set for yearly, quarterly, monthly, weekly, daily and hourly basis.


Sprinkle allows users to create calculated columns at the model level. These calculated columns might be a dimension expression or measure expression on a given table. The tool also supports dynamic bucketing where users can give just the ranges and variable names and the buckets are created easily.


Joins is a feature that allows the user to join the fact table (from which the model is created) with other models. All the dimensions present in the joined Model can be used in this model. For example, an Order Model having customerId as one of the columns can be joined to the Customer table. Similarly, it can also be joined to the Product table.


Hierarchies can be added to define a relation between fields, where values of one can be controlled by other in a nested way.
For eg, Country -> State -> city This can be a hierarchy where city value is dependent on state, state value is dependent on country.
Hierarchies then allow you to use the drill feature on Reports & Dashboards allowing you to drill down and drill up on your data to perform interactive analysis, explore trends. (Read more about hierarchies here)

Feature Walkthrough

1. Creating a Model

To create a model
click on New. Give a name & description to the model and select the SQL Transform table or the DB ingested table and
click on Next.
Create a Model

2. Columns

After creating the model all the attributes present in the SQL Transform table are listed. Sprinkle by default chooses the dimensions, measures and date dimensions. The user can choose dimensions by just clicking on the checkbox.
The measure can be chosen by selecting the required aggregate function like distinct, Average, Sum and Count.
In the below
case, the count is selected for the Client column.
Date dimensions are the time span on which a report is built.
Sprinkle supports hourly, daily, weekly, monthly, quarterly and yearly reports.
The below screenshot shows the date dimensions for the order date column.
Then click on the 'Create' button to create the model.
Date Dimensions
Now you can Click on 'Create Report', to create a Report directly from the model page.
Creating a report

3. Expressions

The user can also add customized dimensions and measures on the Expression tab in models. Calculated columns are created using expressions to obtain the desired answer, in this case, the total sum of the line amount is created.
Click on Validate to test the expression, before saving it. Click on Done to save it as a customised dimension or measure.
You can also use variables in your expressions. Learn more about Variables here.
Expressions: Validate & Done

4. Joins

Joins is a feature that allows the user to join the fact table (from which the model is created) with other models. All the dimensions present in the joined Model can be used in this model.
For example, a Google Ads Model having City as one of the columns can be joined to the Sales fact table as shown in the example below.
In Model joins, the Joins type can be selected from a list, say, Left Outer, Right Outer, Inner, or Full Outer Join. In addition to that, multiple conditions can also be created at one instance to join two models
Creating Joins

5. Hierarchies

Browse to the Hierarchies Tab to Add details about the Hierarchies.
Here the Hierarchy levels need to be defined in the right sequence and saved in the model, and model build jobs need to be run successfully at least once so that they can be used in the dashboard.

6. Row-level Security

Row-level security lets you manage the row-level access of the models. It lets you restrict users' access only to the relevant part of the table. For example, you can restrict users in "Karnataka" to access the sales data only relevant to "Karnataka" from the sales table.
Refer to this document for steps to create and use row-level security.

7. Column Masks

In a Model, a set of fields can be dynamically masked for a group of users using the "Column Masks" feature. Data in these fields are not visible when the restricted user accesses Reports or Dashboards.