Datomic Driver for Metabase

Hi everyone,

For the last few months I’ve been working on a Datomic driver for Metabase. It’s still work in progress, but it’s starting to work well enough for curious people to have a look.

There are instructions in the README for how to build the plugin, either for Datomic Free or Datomic Pro.

Most of the baseline stuff is implemented: basic queries, breakouts, aggregates, filters, native queries, nested queries. Most optional driver features like binning, nested fields or native query parameters are not (yet) there. There’s an overview in the README of what is and isn’t implemented at this point.

Making Datomic’s data model and query language work with Metabase’s relational view of the world has been pretty interesting, I’ve been keeping a log of some of the architectural decisions here:

All the work so far has been funded by a generous client who really felt they needed this, and was OK with making the result open source. It is developed as a generic driver that anyone with a Datomic database should be able to use, but some of the decisions of what does or does not go in feature-wise will be determined by what their needs are.

Note that while basic instructions are provided for how to set this up it does assume a certain familiarity with Clojure, Metabase, and Datomic. If you (or your boss) are interested in this project and would like help setting up, or you are interested in getting support or funding improvements, then get in touch!

4 Likes