Data Model

What is Data Model?

In Holistics, a data model is like a view, a "virtual table" that sits on top of your actual data table. You can easily manipulate Data Models to add or remove semantic information without touching the underlying data.

From a model structure's view we can see the following components:

  • Source: Each Model could be generated from Database Table, SQL or Exploration Result.
  • Dependencies: A map to visualize the dependencies between current models and other models.
  • Fields: Including Base Dimensions, Custom Dimensions and Measures
  • Relationships: Defining how the model connects to other models by specifying the join key and relationship type
  • Persistence: Improve model loading performance by turning your logical data model into a physical table in your database.

To fully grasp the concept of Data Model, let's go through the following points:

Types of Data Model

There are 3 types of data models in Holistics:

  • Base models: Models created from existing tables in the database.
  • Import models: Models created from data coming from other sources (Google Sheet, CSV...)
  • Transform models: Models created by writing SQL to select from tables or other SQL models

Base models

Base Models are created directly from your database tables. This is like a "view" of your underlying table which you can easily manipulate, annotate, add custom fields and measures to extend on the original data.

For more details on this, please visit Base Model

Import Models

Import models are created from sources that are not tables in your databases, but external applications like Google Sheet, Google Analytics, Pipedrive... When creating a model from these sources, you can specify the schedule to pull data and persist it into your own data warehouse.

Transform Models

Transform Model is one of Holistics's most powerful features. These Models are created from some SQL transformations, like joining, union, or aggregation. Transform Models query data from other models or tables, and it will inherit all data changes in their parent models. This will be essential for analysts to create a consistent modeling flow.

For more details on this topic, please visit page


When a model is derived from other models, we say that these models have Dependencies.

Holistics 3.0 can visualize these dependencies in a Dependency map. This map will be especially beneficial when you want to:

  • Trace the data lineage of a model to have better context of your data
  • Trace data inaccuracies to parent models

For more details on how to specify dependencies between models, please visit Derived Model.


A relationship between two models specifies how those two models can be joined in a Dataset. It includes the two fields as join key, and the relationship type between them (one-to-one, one-to-many).

At the model structure tab, you can add relationships directly to Base Dimensions or Custom Dimensions , but not on Measures.

For more details on how to specify different types of relationship, please visit page Relationships.


In the data model view, when you toggle on the persistence setting, a physical data table will be created in your database, which helps to increase model loading performance.

For more details about Persistence Settings, please check page Storage settings

Interacting with Data Model

Data Model Preview

After creating the model, you can go to Preview tab, then drag and drop fields to preview result.

Explore Data Model

After successfully creating a Data Model and defining all data knowledge (field description, field label, data model description, relationship, etc), you would want to instantly create insightful reports/dashboards from the model you have created. In that case, simply click Explore Data Model and create a Dataset directly from it with that model as root.

If the Data Model you are viewing has already been a part of some Datasets, you also have the option to explore the model from these Datasets.