High-level Guide (Looker to Holistics)
Overview
This guide provides a high-level overview of migrating from Looker to Holistics, covering project organization and the step-by-step migration process.
Concept Mapping
Looker | Holistics |
---|---|
View (.view) | Model (.model.aml) |
Model (.model) | Collection of Dataset (.dataset.aml) |
Dimension | Dimension |
Measure | Measure or Metric |
Explore | Dataset (.dataset.aml) |
Project Structure
In Holistics, we organize analytics code into a clear folder structure:
📁 project/
📁 models/ # Similar to Looker views
📁 tables/ # Table-based models
📄 orders.model.aml
📄 users.model.aml
📁 queries/ # Derived table models
📄 active_users.model.aml
📁 datasets/ # Similar to Looker explores
📄 ecommerce.dataset.aml
📄 marketing.dataset.aml
📁 dashboards/ # Dashboard definitions
📄 sales.page.aml
📄 performance.page.aml
For more details on project organization, see our Project Structure documentation.
Migration Steps
Migration Views, Models, and Explores
Migrate Dashboards
- Migrate dashboards (will update later)
1. Prepare Your Environment
- Set up your Holistics project
- Configure your data sources
- Plan your model and dataset organization
2. Migrate Views to Models
In Looker, business logic starts with Views (.view files):
# orders.view.lkml
view: orders {
sql_table_name: public.orders ;;
dimension: order_id {
primary_key: yes
sql: ${TABLE}.id ;;
}
measure: total_amount {
type: sum
sql: ${amount} ;;
}
}
In Holistics, this becomes a Model (.model.aml file):
// models/tables/orders.model.aml
Model orders {
type: 'table'
data_source_name: 'warehouse'
table_name: 'public.orders'
dimension order_id {
type: 'number'
definition: @sql {{ #SOURCE.id }};;
}
measure total_amount {
type: 'number'
definition: @sql sum({{ amount }});;
}
}
Follow the Views Migration Guide for detailed steps.
3. Migrate Models and Explores to Datasets
In Looker, explores are defined in model files that join multiple views:
# ecommerce.model.lkml
connection: "warehouse"
explore: orders {
join: users {
sql_on: ${orders.user_id} = ${users.id} ;;
relationship: many_to_one
}
join: products {
sql_on: ${orders.product_id} = ${products.id} ;;
relationship: many_to_one
}
}
In Holistics, this becomes a Dataset that combines multiple models:
// datasets/ecommerce.dataset.aml
Dataset ecommerce {
models: [orders, users, products]
relationships: [
relationship(orders.user_id > users.id, true),
relationship(orders.product_id > products.id, true)
]
}
Follow the Model Migration Guide and Explore Migration Guide for details.
4. Configure Access Control
In Looker, access control is defined in LookML:
access_grant: sales_team {
user_attribute: department
allowed_values: ["sales"]
}
In Holistics, permissions are managed through the UI:
- Resource Access Control (Dataset and Dashboard)
- Role-level Perrmission
- Column level permission
See our Permission System documentation for details.
5. Migrate Dashboards
After your models and datasets are set up:
- Recreate your Looker dashboards in Holistics
- Configure drill-downs and actions