Data dashboards

On assuring the client that you are doing something data-sciency because it looks like in the movies



At the intersection of data visualisation and database UI is the data dashboard. AFAICT this means “an exploratory graphing tool for your data which requires little or no programming or statistics special knowledge”. Occasionally useful. Occasionally cargo-culted by bizdev people who don’t know what they are doing. See also, e.g. the open source dashboard framework roundup, or the alternativeto Tableau listing.

Here are some options I am auditioning for some clients.

Dash

dash is an open-source dashboard framework for R, Python and Julia. There is an expensive enterprise version also. It is managed by the creators of plotly, a classic web dataviz solution.

VoilĂ 

A jupyter-specific option.

VoilĂ  turns Jupyter notebooks into standalone web applications.

  • VoilĂ  supports Jupyter interactive widgets, including the roundtrips to the kernel.
  • VoilĂ  does not permit arbitrary code execution by consumers of dashboards.
  • Built upon Jupyter standard protocols and file formats, voilĂ  works with any Jupyter kernel (C++, Python, Julia), making it a language-agnostic dashboarding system.
  • VoilĂ  is extensible. It includes a flexible template system to produce rich application layouts.

Also

Voila-gridstack is a VoilĂ  template started by Bartosz Telenczuk to turn notebooks into dashboards following the specification introduced by the legacy jupyter-dashboards project. The idea behind is to be able to change the layout of the cells to re-configure your dashboards using drag-and-drop. Once you have your desired layout, its configuration stays in the metadata of the notebook. This makes it simple to carry around or share the notebook and its layout configuration.

Panel

Panel — A high-level app and dashboarding solution for Python

Panel is an open-source Python library that lets you create custom interactive web apps and dashboards by connecting user-defined widgets to plots, images, tables, or text.

Compared to other approaches, Panel is novel in that it supports nearly all plotting libraries, works just as well in a Jupyter notebook as on a standalone secure web server, uses the same code for both those cases, supports both Python-backed and static HTML/JavaScript exported applications, and can be used to develop rich interactive applications without tying your domain-specific code to any particular GUI or web tools.

Panel makes it simple to make:

  • Plots with user-defined controls
  • Property sheets for editing parameters of objects in a workflow
  • Control panels for simulations or experiments
  • Custom data-exploration tools
  • Dashboards reporting key performance indicators (KPIs) and trends
  • Data-rich Python-backed web servers
  • and anything in between

Panel objects are reactive, immediately updating to reflect changes to their state, which makes it simple to compose viewable objects and link them into simple, one-off apps to do a specific exploratory task. The same objects can then be reused in more complex combinations to build more ambitious apps, while always sharing the same code that works well on its own.

Panel lets you move the same code freely between an interactive Jupyter Notebook prompt and a fully deployable standalone server. That way you can easily switch between exploring your data, building visualizations, adding custom interactivity, sharing with non-technical users, and back again at any point, using the same tools and the same code throughout. Panel thus helps support your entire workflow, so that you never have to commit to only one way of using your data and your analyses, and don’t have to rewrite your code just to make it usable in a different way. In many cases, using Panel can turn projects that used to take weeks or months into something you finish on the same day you started, creating a full Python-backed deployed web service for your visualized data in minutes or hours without having to run a software development project or hand your work over to another team.

streamlit

Streamlit. The Streamlit Gallery speaks volumes.

Streamlit is an open-source Python library that makes it easy to create >and share beautiful, custom web apps for machine learning and data >science.

In just a few minutes, you can build and deploy powerful data apps to:

  • Explore your data
  • Interact with your model
  • Analyze your model behavior and input sensitivity
  • Showcase your prototype with awesome web apps

Moreover, Streamlit enables interactive development with automatic rerun on files changes.

Grafana

grafana

Open source software for time series analytics.

From heatmaps to histograms. Graphs to geomaps. Grafana has a plethora of visualization options to help you understand your data, beautifully. […] Bring your data together to get better context. Grafana supports dozens of databases, natively. Mix them together in the same Dashboard.

R Shiny

R can do lots of data analysis, including database analytics as a special case. If you want it to be web-based, shiny can put many queries/regressions/etc online, with all the statistical modelling power of R. This still favours statisticians framing the actual analysis, but given how bad we are at statistics as a species, this might be considered a feature not a bug that it requires you to pass the low-bar of understanding simple statistical software.

Tableau

Tableau provides commercially-supported dashboard generation. An interesting example of this is the Mapping Police Violence project. It highlights both the insight you can get from this kind of visualisation (Wow they kill a lot of people in the USA) and also the dangerous limitation in these dashboards i.e. straight-up graphs of reported data do not solve difficult statistical modelling problems such as accounting for sampling bias, although they might give the impression that this problem is solved.

superset

superset

tl;dr autogenerates dashboards based on your database, makes it look like you have been doing something.

Apache Superset is a data exploration and visualization web application.

Superset provides:

  • A wide array of beautiful visualizations to showcase your data.
  • A state of the art SQL editor/IDE exposing a rich metadata browser, and an easy workflow to create visualizations out of any result set.
  • Out of the box support for most SQL-speaking databases
  • [other keywords that only boring bizdev types care about and no one real ever needs]

blazer

blazer is a dashboarding/interactive query UI.

features:

  • Multiple data sources - PostgreSQL, MySQL, Redshift, Mongodb…
  • Variables - run the same queries with different values
  • Checks & alerts - get emailed when bad data appears
  • Audits - all queries are tracked
  • Security - works with your authentication system

Metabase

Metabase. Shanker Sneh, about whom I know nothing, says

Good:

  1. Robust and clearly laid out framework. Supports proper database for application metadata.
  2. Feature-rich with easy user, query, segment & dashboard management & classification.
  3. Supports Google SSO, Slack, Email integration.

Not-so-good:

  1. Framework is Java based. Any customisation will require dev activities from our end.

Database flow

database flow

Database Flow is an open source self-hosted SQL client, GraphQL server, and charting application that works with your database.

Visualize schemas, query plans, charts, and results.

Java app.


No comments yet. Why not leave one?

GitHub-flavored Markdown & a sane subset of HTML is supported.