
Show HN: Metabase, an open-source business intelligence tool - tlrobinson
http://www.metabase.com/
======
jtmarmon
Sort of off topic, but every cool BI tool I can find (prompted by recently
seeing metabase and AWS quicksight) seems to work with one database at a time. 

When working with microservices, your data is spread across some N databases,
rendering most BI tools, from what I can see, completely useless for reporting
on more than one service at a time. 

Are there any solutions for this?  Or is the only one right now just dumping
all your service DBs into a single DB for analytics? 

edit: thanks friends.  ETL it is.  don't know why I thought it would make sense
to have a tool that reports across multiple databases since the performance
would be horrific...although maybe there's space for a hosted BI tool that
does ETL automagically.  just a thought

~~~
exelius
This is why data warehousing exists.  That way you can use many different BI
tools against a consistent set of data and pre-calculate a lot of commonly-
used summary data. 

ETL also isn't something you can just do automagically.  It requires an
understanding of the data and your goals, because you essentially have to
build both your data model and your reporting requirements into your ETL
process.  You could probably do it automagically for some simple cases, but for
most real-world scenarios it's just going to be easier to write a Python/Perl
script to run your ETL for you. 

BI / reporting requires a lot of plumbing to work correctly.  You have to set
up read-only clones of your DBs for reporting (because you don't want to be
running large queries against production servers) and generally an ETL process
that dumps everything into a data warehouse.  From there, you can push subsets
of that data out to various BI tools that provide the interface. 

~~~
jrpt
If anyone's looking for a straightforward ETL framework, check out DataDuck
[http://dataducketl.com/](http://dataducketl.com/) The `dataduck quickstart`
command is as close to automagic as you can get, and then you can customize
your ETL after that. 

~~~
demian
Thank you, I'm currently looking for alternatives to "enterprise" ETL tools. 

Most of leading tools are HORRIBLE as programming enviroments and also are
incredibly expensive. 

~~~
glogla
Yes.  For example, I am convinced that Informatica Powercenter was made by the
Devil to bring suffering into the world. 

~~~
demian
PowerCenter is a piece of shit. 

~~~
arethuza
Then that makes it a lot better than some "enterprise" ETL/integration tools
I've seen that could only aspire to be pieces of shit. 

------
mark_l_watson
I like the idea and the use of AGPL.  This license lets companies release
useful software and still keep the door open for selling alternative licenses,
if that is what Metabase does.  I have been thinking of writing something
similar for natural language access (similar to what I used in my first Java
AI book fifteen years ago) to relational and RDF/OWL data stores, and Metabase
provides a nice example of how to distribute a general purpose standalone
query tool. 

Also +1 for being a Clojure app.  I am going on vacation tomorrow and am
loading the code on my tiny travel laptop for reading. 

~~~
vbit
Perhaps, but many companies have a 'Abosolutely No AGPL' policy which
effectively reduces adoption. 

~~~
vinceguidry
That seems like a very silly policy.  Do these companies do any kind of
analysis on what they'd need from their software licenses and what they'd be
giving up by using AGPL? 

You'd think from their attitudes that the FSF is a patent troll. 

~~~
nyan3
Let's look at the advantages of using software under "permissive" licenses for
those companies: \- embedding somebody else's code in a closed source product
and potentially compete against it \- patenting somebody else's code and
potentially sue the author

For the upstream author losing this type of hostile users my using AGPL might
be a good idea. 

------
iheartmemcache
FYI, Metabase is a Thompson Reuters platform.  I bet you anything they hold the
trademark for the term. 

You have a pretty good market opening right now - Crystal Reports just went to
a SAP Business Objects-type model.  Pentaho doesn't even have a community
edition anymore. 

It looks like you don't support MDX/snowflake schemas/other OLAP reporting
standards, so I'm guessing you're going for the lower end of the market.  So
two things you should do off the bat - import data from Google Sheets (maybe
offer to "unlock" the service for tweets and/or links), and offer an Excel
plug-in (free up to X rows). 

Also offer to charge if only to allow Bob to go to his manager and say you
offer support.  In corporate environments, no support is often a no go. 

~~~
exelius
Everyone in the low end of the business world just uses Tableau or QlikView -
neither company is very militant about enforcing their trial licensing; and
full versions aren't really all that expensive for a business anyway (~$500
per license per year, but a small company can get away with a single license). 
Both tools are also much more mature and powerful than this product. 

Not saying there's no room for an open source BI platform, but I don't know
there's a lot of money in it given the competitive pressure Tableau and Qlik
are putting on the SAPs/Oracles of the world.  Anything over $100 is going to
put you squarely in the realm of real BI tools with MUCH more capability, a
much simpler interface, and standardized training programs. 

~~~
infinite8s
Tableau is ~$2000 a yr, and Qlikview is > $1000 (although the recently
released Qliksense is free). 

~~~
exelius
Unless the price changed in the last month since I talked to a sales rep, it's
$999 for a desktop license, and $500/yr for "Tableau Online". 

~~~
infinite8s
That's for the personal edition, which can only connect to CSV, Excel, MS
Access, OData and Tableau's proprietary Data Extract format (TDE).  Tableau
Online requires your data to be stored in their cloud (which might not be
acceptable to some IT departments). 

~~~
dsmith-tableau
(Full disclosure: I work at Tableau)

Tableau Online doesn't require you to save your data on our platform if it's
stored in AWS, Google, or Azure (example: Amazon Redshift or Aurora).  Your can
maintain live data connections with datasources hosted on those ecosystems and
the source row level data doesn't ever need to land in the Tableau Online
platform.  More info here: [http://www.tableau.com/learn/whitepapers/tableau-
online-keep...](http://www.tableau.com/learn/whitepapers/tableau-online-
keeping-your-data-fresh)

------
escobar
I always find database & "data helper" tools fun to experiment with.  After
playing with this with a MySQL database for 10 minutes on my Mac I have 2
initial reactions:

1\. The GUI is quite nice, and very simple.  It is a glorified query tool that
knows your tables and helps you make queries with visualizations and gives the
results.  It still allows for raw queries if you're into that and just want
their GUI for queries. 

2\. The tool (or the Mac app, at least) still has plenty of bugs to iron out:

\- I tried creating a "Dashboard" and it wouldn't actually create or close the
modal window.  Then I refreshed the application and it had created 10 of the
same Dashboard. 

\- I tried deleting the database and the button just doesn't work. 

\- Many of the queries I ran on my own tiny sample db seemed to just not run. 
Closing & reopening the app didn't help. 

I feel like the bugs could largely be to do with the OSX binary in specific,
and not the actual platform.  Quite interested to see how this develops, and am
going to put a bigger database in to play later when I have more time. 

~~~
salsakran
Really strange.  Out of curiosity what version of OS X are you on?  If you don't
mind filing an issue at
[https://github.com/metabase/metabase/issues/new](https://github.com/metabase/metabase/issues/new)
or [http://discourse.metabase.com/](http://discourse.metabase.com/) we would
love to get to the bottom of what's going on. 

~~~
escobar
I'm running 10.9.5 and was planning on rebooting my machine, replicating once
more, and filing an issue tonight :)

------
shrikant
For anyone else wondering (as I was), the databases currently supported as
data sources are [0]:

1) H2

2) MongoDB

3) MySQL

4) Postgres

[0] [http://www.metabase.com/docs/v0.12.0/administration-
guide/01...](http://www.metabase.com/docs/v0.12.0/administration-
guide/01-managing-databases.html)

------
eis
Any such open source tools are welcome. 

How does it compare to re:dash? 
[https://github.com/EverythingMe/redash](https://github.com/EverythingMe/redash)

Metabase seems to have a GUI to construct SQL queries which re:dash doesn't. 
What else is different? 

~~~
salsakran
re:dash is very cool, and we actually used an early version way back. 

The primary difference is audience.  Most of the impetus to build it came from
the difficulties we had getting non-analysts to do their own data pulls and ad
hoc queries.  While some number of people were able to edit SQL others had
written for them, it rapidly became unsustainable. 

As a consequence of the audience, we have lots of ancillary features (like the
ability to see detail records and walk across foreign key links, the data
reference, etc) that fell out as we learned how people used the tool. 

------
numlocked
Looks like a nice tool.  I wrote [https://github.com/epantry/django-sql-
explorer](https://github.com/epantry/django-sql-explorer), which is sort-of
similar in terms of the problem it solves, except embraces SQL front-and-
center.  Excited to check this out in more depth. 

Personally, I think it's _really_ exciting is that this is all written in
Clojure!  We need more Clojure web apps out there to learn from!  An initial
glance at the source makes it seem very readable as well.  A great learning
resources for us amateur Clojurists.  Also makes it clear that the ecosystem is
pretty immature; there is a lot of frameworky boilerplate to support a
straightforward REST API. 

~~~
salsakran
Yes, writing the app in Clojure has been very interesting.  Some things were
downright magical, while other aspects felt very rough coming from other
languages and frameworks.  Ironically the prototype was in django =)

There will be a blog post about it coming up! 

~~~
numlocked
Yeah -- it seems crazy that you have to reinvent things like your defendpoint
macro. 

I know Clojure is all about composable libraries, not frameworks, etc, etc but
just as compojure has become the de facto standard for routing, I imagine more
libs will emerge higher up the web stack.  It'll mean opinionated libraries,
but that is the only way to get more people writing apps that deliver value
instead of spending time creating macros that ensure (for instance...) the
presence of int IDs in API requests. 

------
mwhite
Another extremely powerful open source BI solution is Saiku, based on the
Mondrian OLAP server:
[http://www.meteorite.bi/products/saiku](http://www.meteorite.bi/products/saiku)

------
Omnipresent
This looks extremely cool.  Is there a live demo of it running?  or does one of
the cloud images come with some sample data so that we can play with it? 

~~~
zachlatta
It's super easy to get started.  If you have Docker installed, just run the
following:

    
    
        docker run -d -p 3000:3000 --name metabase metabase/metabase

------
anonu
How would we compare Splunk and Palantir with this company?  I know their focus
may be a bit different: Splunk is geared towards "logs" and Palantir towards
govt datasets, etc... but at the essence of each company is the task of
bringing diverse datasets together and making sense of it.  Which makes me
think that the companies that are successful at this focus on a particular
use-case - as opposed to trying to build for a generic one.  thoughts? 

~~~
salsakran
Splunk is mainly about log analysis, though they have a new BI product.  It's
primarily about making sense of your logs.  We primarily work with a database
you already have (and eventually the data warehouse you'll spin up). 

Palantir is a wide set of tools and really about much more powerful analysis
than we're targeting. 

Our whole bag is letting non-technical people in your company get answers to
their common questions by themselves. 

------
LukeG
We've been using Metabase for the last 6 months, and we use it every day.  So
straightforward, even for non-technical, non-analyst users. 

------
JPKab
This looks awesome, and is something I've been looking for.  I'm aiming to
start offering a specific service to businesses creating a back-end for BI
platforms, but would like to offer the service as cheaply as possible by
having a license free BI layer. 

~~~
krmmalik
Would be interested in what you can offer when youre ready.  Im helping
businesses implement BI more from a strategic perspective.  I dont get involved
technically , its just part of my consulting. 

------
dragonwriter
Terrible thing about the googlability of the name, since its so heavily
overloaded for DB-related things. 

Also, while it seems to work tolerably well with the included sample database,
connecting it to a local Postgres instance seems to work to the level of
connecting and getting all the schema information, but every attempt to run a
"question" \-- even the simplest pick-a-table-and-go, or the questions it
automatically suggests -- results in the "We couldn't understand your
question.  Your question might contain an invalid parameter or some other
error."  message, so it seems like there are some pretty significant rough
edges. 

~~~
salsakran
Hey -

Really appreciate you taking the time to try it out! 

If you're still around, are you using the default schema ('public') for your
tables?  We've found a few bugs around non-default schema we're working on. 

------
pnathan
This is really cool.  Am I correct in drawing the inference that this is solely
a "view" system, for viewing and querying the database? 

~~~
salsakran
Yes, we're mainly focused on making it easy for non-technical people to pull
data out.  We have had embedded applications that hit a REST api to expose
actions on the data that was embedded though. 

------
ludbb
How do you configure to use Mongo with SSL?  The mongod server is rejecting
connections from metabase as it never tries to connect using that. 

------
snorge
What are your plans for supporting other databases? 

~~~
salsakran
Redshift, Druid and Presto are in planning, but in general, we're going to
build drivers in the order of community demand.  If you have a specific db,
open an issue or chime in on one of the open driver issues letting us know
it's important. 

~~~
justabystander
Support for some of the more common JDBC drivers would be nice, like SQLite,
MS SQL and (shudder) Oracle.  I know Korma supports all of these
([http://www.sqlkorma.com/docs#db](http://www.sqlkorma.com/docs#db)), and it
seems like you use that. 

------
numlocked
Bug report -- hitting 'Help' in the OSX app leads to:
[http://www.metabase.com/docs/v0.12.0-test](http://www.metabase.com/docs/v0.12.0-test),
which 404s

I was trying to figure out how to get it to walk a FK/do a join so I could
filter based on the name of the foreign entity instead of the ID. 

~~~
salsakran
Oh, that's an old version tag.  Keep an eye out for a new version in a few
hours, the app should offer you a chance to update. 

Regarding FK's we let you filter or group by any attribute on either the table
you're working with or any attribute on an FK in that table.  Are you using the
sample DB or your own? 

~~~
numlocked
Maybe I'm an idiot, but here's me selecting from a customer table.  Customers
have a FK to 'address' via ship_address_id.  I want to filter on address.state,
but can't figure out how to do it. ' state' is not an available field in the
filters and I can't seem to drill into any of the FK entities. 

Screenshot:
[https://s3.amazonaws.com/uploads.hipchat.com/57670/394271/Wt...](https://s3.amazonaws.com/uploads.hipchat.com/57670/394271/WtZq4q72DOqKyO5/upload.png)

~~~
salsakran
it looks like the field isn't marked as an FK in our semantic model.  Could you
go the admin, and click on "Metadata" and check to see what "special type"
that field is marked at?  If it's not "Foreign Key" you can set it to that and
see if you can filter by linked fields. 

What type database are you pointing this to?  Do you have FKs/constraints set? 

------
Kinnard
This looks very interesting, but a clearer more to the point explanation,
example, or video should be on the landing page. 

------
anonnomad
Thanks!  Absolutely awesome tool.  Could do almost all of the charts & metrics I
need.  I couldn't figure out how to do a chart that shows me the SUMs of
something per day and per category.  Also number "questions" in the dashboard
could benefit from better styling (maybe center horizontally/vertically). 

------
krmmalik
Very cool.  How does this compare to something like Microsoft Power Bi?  Will I
have any issues running it on Linux (Note, im a fairly non-tech user). 

I have some clients that need BI reporting.  We've been using Cyfe so far, but
it's only good for summaries of data.  It's not very good for custom reporting. 

~~~
salsakran
We run it on linux in production and it's the primary platform we recommend
for company wide deployments. 

Power BI is pretty awesome, but pretty complicated when we tried it out.  With
enough attention it can do very cool things.  Our primary audience is folks who
don't need the level of customization, and have a lot of non-technical
coworkers that want to ask their own questions. 

~~~
krmmalik
Brill!  Looking forward to trying it

------
buremba
I couldn't run the Docker image, it seems that the Java process running in
docker image doesn't bind the port 3000.  Also tried to deploy to Heroku but
when I try to access the application via url, Heroku throws 503 error. 

~~~
tlrobinson
Curious.  I run the docker image all the time and haven't had any issues with
the port binding.  What kind of system are you using?  and what was your launch
command? 

You can double check that we are exposing port 3000 from the container which
is where the app is designed to run by default.  The Dockerfile used to build
the image is in our repo here:
[https://github.com/metabase/metabase/blob/master/bin/release...](https://github.com/metabase/metabase/blob/master/bin/release/dockerhub/Dockerfile)

Heroku sometimes times out if the application takes too long to start.  Could
you try again and see if it works?  We're working on making Heroku deploys more
robust. 

~~~
buremba
It seems that the Docker issue is memory overflow in container.  I tried to run
the docker image in a 512mb Digitalocean droplet that already runs several
processes that also consume memory so I think it's expected considering
Metabase runs on JVM. 

------
anuj_nm
Just tried this locally and on AWS at Change Heroes and its great!  We've been
looking to become more metrics driven as a company, and this might be the tool
that makes it happen! 

Thanks for building it and making it open source :)

------
lfuller
I'm unable to deploy to Heroku, though it seems to be a problem on Heroku's
end.  Their Rollbar snippet is throwing an unhandled error once I arrive from
your deploy button. 

~~~
pgm8705
I'm able to get get past that and get the app deployed, but then I just get
application error trying to launch it.  Then I went and looked at the build
log.  I'm not sure its even doing anything:

\-----> Fetching custom git buildpack... done \-----> Null app detected
\-----> Nothing to do. \----- > Discovering process types Procfile declares
types -> web \-----> Compressing... done, 33.1MB \-----> Launching... done, v5

~~~
djfm
> Null app [...] 33.1MB

Wow! 

------
katsuyan
We've been using at Color Genomics for a few months and we absolutely love it. 
Easy to setup, no data sharing with external parties, and simple/straight
forward UI. 

~~~
salsakran
Thanks for the kind words! 

------
mgrennan
TNKS - Nice simple tool.  I started in AWS (t1.micro) as a .jar.  I had to do
"hostname localhost" to get the database (h2) to run but then it came right
up. 

------
z3t4
"there's more then one way to skin a database"

~~~
unixhero
Yeah all that database skin stuff... It's essentially derogatory or veiled
complaints about simplicity right? 

------
boundlessdreamz
In the mac app I'm unable to set a column type as a foreign key.  The get a
list of targets (table -> primary key) but unable to select from it. 

~~~
salsakran
Could you take a screenshot of what it looks like and leave a post on with it
on [http://discourse.metabase.com/](http://discourse.metabase.com/)

I'll try to reproduce it.  What database are you using? 

~~~
boundlessdreamz
[http://imgur.com/xzb3mVo](http://imgur.com/xzb3mVo) When I try to select
Users-> Id (or any other option) it does not get selected/saved.  I'm using
Postgresql

------
Omnipresent
First thing that caught my attention was the sailboat and if I could interact
with it. 

~~~
salsakran
easter eggs to come =)

~~~
Omnipresent
Little touches like that make the product great!  Is the metabase front page
part of the github repo? 

------
cammsaul
This is so cool!  Written in Clojure!  WOW! 

Any idea on the timeline for SQL Server support ? 

------
2pointsomone
I've been looking for something like this for ages! 

~~~
salsakran
Let us know what you think!