Menu Close

How to use Metabase

Mar 6, 2016 by Sameer Al-Sakran

Analytics. Business intelligence. Operational insights. Customer profiling. CRM reporting. At some point all the words blur together and all you’re left with is a kind of rattled hope that if you pay a vendor $Xk/month, they’ll figure out what your CMO wants graphed and leave you alone. Oh, and if you pay for a year upfront, they’ll even make sure support requests are sent to someone else’s email.

One of the interesting parts of building Metabase has been seeing how many different problems it can alleviate that don’t necessarily look like “Business Intelligence”. In this post we’ll go over some uncommon uses of a BI platform like Metabase, along with a quick set of steps to get started for each use case.

Quick and dirty Business Intelligence

First off, let’s get the most obvious use out of the way. If you know you want dashboards, have a bunch of KPIs and like getting nightly emails telling you how many lucky stiffs signed up for your product, awesome. Metabase is great at Pushing data throughout your organization.

What to do

  • Don’t stress
  • Set up an “analytics database” (depending on scale either a postgres box on RDS or a redshift cluster)
  • Figure out which tables of your database are relevant to non-engineers, and mark the remainder as hidden
  • Write descriptions of any confusing fields (until you get bored)
  • Write descriptions of commonly used tables (until you get bored)
  • Create a few simple saved questions for things you get asked frequently

Next Steps:

  • Keep entering descriptions on fields and tables that are used commonly
  • Bask in the adoration of your coworkers

Now, we’ll go through the remaining use cases in rough order of time and energy invested.

Customer (or Venue, Account, etc) lookup tool

You probably have users, right? Those users probably do things like upload photos, leave comments, order products, leave complaints or have credit card transactions that leave records in your database. Wouldn’t it be useful to be able to look up all a user’s comments without having to build a custom admin page? Guess what? Metabase was designed with this in mind. This applies to photos, venues, and any other kind of record it would be useful for people in your company to look up.

What to do:

  • Don’t stress
  • Set up MB and point it at your database
  • Figure out the most common ways to find a given record and tell people how to use the filters to find a specific record
  • Click on the primary identifying key of the record and see all the records your database has related to that user

Next steps:

  • Create a dashboard at some point
  • As you need BI build out shared questions, dashboards and nightly emails
  • As people ask you questions, save the query and give them accounts to Metabase so they can refer back to it
  • If usage escalates and there is non-trivial query volume on the database, create a read replica and point it to that instead
  • Typically this tends to blur into A browser for your database

A browser for your database(s)

At the start of a project, you probably don’t know what you want to measure. You’ll probably end up with dashboards, but you’re not entirely sure what to put in them yet. The idea of setting up an analytics or a business intelligence system seems entirely premature. However, before launching or even getting a prototype out, there are a number of common tasks that pop up over and over again. You’ll probably want to look up records every once in a while. You’ll likely have user accounts and it’d be useful to pull up all the information about a user. You’ll probably want to pull information out of the database and import it into Excel, third party tools, etc. Eventually, after you’ve been asked the same question (e.g., users who signed up last week, invoices with chargebacks) a couple of times, it’d be nice to automate it without committing to creating (and maintaining) a dedicated internal tool for it.

What to do:

  • Make a cup of tea and kick back
  • Set up MB and+ point it at your database
  • Use it in an ad hoc fashion
  • consider it an insurance policy against needing to pull analytics data out instead of bothering engineers w/ SQL requests

Next steps:

  • Create a dashboard at some point
  • As you need BI build out shared questions, dashboards and nightly emails
  • As people ask you questions, save the query and give them accounts to Metabase
  • If usage escalates and there is non-trivial query volume on the database, create a read replica and point MB to that instead
  • Typically this tends to blur into Frequently Asked Questions and Quick and dirty BI

Frequently Asked Questions

The problem with being an analyst or engineer in an office full of folks that don’t know SQL is that everyone keeps asking you questions. Often the same questions. Over and over again. Then they ask you to debug why the numbers aren’t what they think they should be. Then they ask you the same question again.

Metabase is here to help. It works really well as a place for SQL queries to be shared with non-technical users, as well as providing a gentle interface that allow many questions to be easily asked in a self serve fashion.

What to do:

  • Create accounts for people
  • Install Metabase on a handy machine and point it to the database that holds information people are asking you about
  • Start to collect common questions and point people to the Metabase server instead of email, csvs or spreadsheets

Next Steps:

  • Look for opportunities for people to look up other people’s common questions and providing simple question templates they can edit
  • Watch as folks start to answer their own questions after a while and ask you questions about the data model and how to calculate numbers instead of the answer
  • encourage people to lookup their own data. it’s possible now!

Last mile of data publishing

Even in companies that have a lot of data infrastructure in place, there is often a need to publish the results of a complex analytics or data science analysis. While there are a lot of tools that provide support for complicated analysis (R, Matlab, Julia, etc), they often are less than optimal as a means of relaying the results to the rest of the company. Rather than coding a custom view of these results or forcing non-technical users to interact with Matlab, you can use Metabase as a simple, lightweight means of publishing these results to the rest of the company.

What to do:

  • Decide on where data will be stored: a central data warehouse or a set of decentralized databases
  • Get the data into the database you’ve decided on
  • Seed the Metabase instance with a few common questions that show how the data model should be used
  • For extra credit, create a dashboard or two with these questions to provide a starting point for passive consumption