Skip to main content

Migrating from Looker to Holistics: Quick Start

If you're familiar with Looker, this guide will help you understand Holistics through concepts you already know. We'll cover the key differences, similarities, and provide a step-by-step migration path.

Overview of the migration process​

1/ Preparation: Familarize yourself with:

2/ Migrating the project one concept at a time:

Migration Tool​

We're developing an automated converter to help you quickly migrate your Looker projects to Holistics. Check it out at Migration Tool

Project Structure​

If you're used to organizing your LookML files, here's how Holistics structures projects:

📁 project/
📁 models/ # Like your Looker views
📁 tables/ # For regular table views
📄 orders.model.aml
📄 users.model.aml
📁 queries/ # For derived table views
📄 active_users.model.aml

📁 datasets/ # Like your Looker explores
📄 ecommerce.dataset.aml
📄 marketing.dataset.aml

📁 dashboards/ # Your dashboard definitions
📄 sales.page.aml
📄 performance.page.aml

Migration Steps​

1. Prepare Your Environment​

  1. Set up your Holistics project
  2. Configure your data sources (similar to Looker connections)
  3. Plan how your views will map to models

2. Convert Views to Models​

Your Looker views will become Holistics models. Here's a simple example:

// Your current Looker view
view: orders {
sql_table_name: public.orders ;;

dimension: order_id {
primary_key: yes
sql: ${TABLE}.id ;;
}

measure: total_amount {
type: sum
sql: ${amount} ;;
}
}

// Your new Holistics model
Model orders {
type: 'table'
data_source_name: 'warehouse' // Like your connection name
table_name: 'public.orders'

dimension order_id {
type: 'number'
definition: @sql {{ #SOURCE.id }};; // #SOURCE replaces ${TABLE}
}

measure total_amount {
type: 'number'
definition: @sql sum({{ amount }});;
}
}

Key differences:

  • Use #SOURCE instead of ${TABLE}
  • Use {{ field_name }} instead of ${field_name}
  • Dimensions and measures use definition with @sql tag

For detailed conversion steps, see our Views Migration Guide.

3. Convert Explores to Datasets​

Your Looker explores will become Holistics datasets. The main difference is how joins are handled:

// Your current Looker explore
explore: orders {
join: users {
sql_on: ${orders.user_id} = ${users.id} ;;
relationship: many_to_one
}
}

// Your new Holistics dataset
Dataset ecommerce {
models: [orders, users] // List all models (views) used

relationships: [
// '>' indicates many-to-one relationship
relationship(orders.user_id > users.id, true)
]
}

Key differences:

  • No need to specify a root view
  • Define relationships instead of explicit joins
  • Holistics automatically determines optimal join paths

For detailed steps, see our Explore Migration Guide.

4. Set Up Access Control​

Unlike Looker's LookML-based access grants, Holistics manages permissions through its UI:

  • Resource Access: Control access to Datasets and Dashboards
  • Row-level Security: Similar to Looker's access filters, but configured in the UI
  • Column-level Security: Control access to specific fields

See our Permission System documentation for details.

5. Migrate Dashboards​

After setting up your models and datasets:

  1. Recreate your Looker dashboards in Holistics
  2. Set up drill-downs and actions
  3. Test and validate

For detailed steps, see our Dashboard Migration Guide.

Detailed Migration Guides​

For step-by-step instructions on migrating specific components:

Additional Resources​


Open Markdown
Let us know what you think about this document :)