3.0 vs 4.0: Feature Comparison
What is Holistics 4.0 (As-Code)?
Holistics As-Code (or Holistics 4.0) is the latest update of Holistics. The key innovation in this update is the Analytics Modeling Language (AML) that allow your entire analytics setting to be serialized into code, and can be version-controlled.
Key benefits of Holistics 4.0:
- Analytics As Code: A full fledged development experience enabling smoother experience for data teams. Dashboards, Models, and Data Definitions can now be better governed through a CI/CD pipeline.
- Enhanced Data Modeling: Our revamped data modeling capabilities allow for more intuitive model building with support for complex metrics definitions across models and easier management of data logic.
- Report Validation: Keep your dashboards and reports up to date and safe from breakages with real-time check syncs, ensuring a change in the modelling environment does not break a report without your knowledge.
- Improved Performance: We have made substantial improvements under the hood, resulting in faster query times and more efficient resource usage, even with large datasets. You also have greater control on your dashboard performance with our Aggregate Awareness feature.
- Customizable Dashboards: Version 4.0 introduces the powerful Canvas Dashboard, allowing you to extensively tailor your visualizations to meet specific business needs or brand images.
- Expanded Analytics Functionalities: We have expanded our analytics features with AML Extend (improves reusability and extensibility of definitions), Dashboard Actions, Analytic Query Language (define complex metrics in one line of code)... and more.
Feature Comparisons
Since there are major architectural change in 4.0, not all features in 3.0 have been ported over to 4.0 yet. This table provides a brief overview of the key differences/gaps between them.
Holistics Version | ||
⭐️ Analytics As-Code: Define models and reports using code | ✅ | ❌ |
⭐️ Canvas Dashboard: Our canvas-based dashboards that can be configured as code. | ✅ Learn more | ❌ |
⭐️ Git Version Control: Check code into Git. Develop in branches & create pull requests. | ✅ Learn more | ❌ |
⭐️ Integration with dbt: Sync metadata from dbt to Holistics | ✅ Learn more | ❌ |
⭐️ AMQL: Our metrics-centric modeling/query language. | ✅ Learn more | ❌ |
⭐️ Query Parameters: Support passing user inputs into model's SQL definitions at run-time. | ✅ Learn more | ❌ |
⭐️ Aggregate Awareness: Optimize the query time by automatically using the right pre-aggregates | ✅ Learn more | ❌ |
Data Imports: Load data into SQL database | ❌ Deprecated. See Note 1 below. | ✅ |
Modeling Experience | ||
Modeling Workspace | Development workspace | |
Automatic Relationship Creation | ✅ | ✅ See Automatic Relationship Creation from Database |
Transform Persistence | ✅ ⭐️ Support flow-based | ✅ Time-based only |
Model Dependency: Allow users to delete a model (or dataset) even if it has dependencies | ✅ Learn more | ❌ |
User Experience (UX) | ||
Auto-update modeling fields after changing the SQL definition | ✅ | ✅ |
UI to edit and run SQL model | ✅ See release notes here. | ✅ |
UI to edit and run Persistence | 🚧 On roadmap. | ✅ |
Notes
Holistics 4.0 does not have built-in Extract & Load features
Holistics 4.0 will not support Extract & Load (EL) use cases. We recommend using dedicated EL tools like Fivetran, Airbyte and StitchData, etc. instead.
Relationship in Holistics 4.0
The relationship concept in Holistics works slightly different between 3.0 and 4.0.

For both versions, relationship is used to specify how data models are joined together. However, in Holistics 3.0, relationship is dependent on the data models. It cannot exist without predefined data models.
In Holistics 4.0, relationship definition is decoupled from data model. This means Relationship definitions can be placed inside data model files, or dataset files or in a separate relationships.aml
file:
// Approach 1: Relationship defined within the Data Model file
// File ecommerce.model.aml
model my_model {
...
}
relationship my_relationship {
...
}
// ---------------------
// Approach 2: Relationship defined in a Dataset file
// File ecommerce.dataset.aml
dataset abc {
models: [model_1, model_2]
relationships: [ relationship_config ]
}
// ---------------------
// Approach 3: Relationship defined in a separated file
// File relationships.aml
relationship aa {
...
}
When you delete your data models, the relationships between them are not deleted unless you explicitly do so.