Susana Santos

Apache Superset Open Source BI: a quase alternativa a Tableau

O que é o Apache Superset?

O Apache Superset é uma aplicação de Business Intelligence com uma interface minimalista, com visualizações interessantes e que permite a criação e partilha de dashboards.

É uma aplicação simples, que não envolve a necessidade de grandes conhecimentos de programação, permitindo ao utilizador explorar, filtrar e agrupar os dados de forma simples e rápida. E a melhor parte é ser open-source.

O que é que o Apache Superset oferece?

O Apache Superset permite explorar de forma complexa cada visualização ao permitir detalhar cada gráfico/métrica e facilmente filtrar e agrupar os dados, permitindo a construção de dashboards com elevado valor para o utilizador.

Outro atrativo nesta aplicação é o editor SQL/IDE com querying interativa.

Em relação à segurança, o Superset permite definir uma lista de utilizadores, de funções default (associadas aos grupos de utilizadores) e permite visualizar estatísticas de utilizadores, fornecendo controlo total. Permite ainda definir permissões de base, assim como permissões para aceder a certas visualizações ou menus, fornecendo também logs de todas as ações.

Visualmente, o Superset apresenta um interface muito minimalista e bem organizado. Já em termos de facilidade de uso, embora não esteja ao nível do Tableau, o Superset pode ser uma alternativa para a elaboração de dashboards por utilizadores com algum conhecimento de SQL.

Ao nível das funcionalidades e da complexidade que permite colocar nas visualizações, existe um grande hiato para ferramentas como o Tableau.

Suporte de bases de dados

O Apache Superset suporta a maioria das bases de dados SQL, através de Python ORM (SQL ALchemy). Assim é possível aceder a MySQL, Postgres, Oracle, MS SQL Server, MariaDB, Sybase, Redshift entre outros, através da SQLAchemy (mais informação aqui).

O Superset funciona também com Druid (por exemplo, o Airbnb usa Superset com Druid 0.8x), embora não tenha todas as features avançadas disponíveis.

SQL-LAB

Esta feature é definitivamente um plus. O SQL-Lab permite selecionar a base de dados, schema e tabela (que já tenham sido carregadas previamente), e fazer querying interativa, pré-visualizar os dados e também guardar o histórico das queries (como é possível observar abaixo).

SQL Lab

Tem uma camada semântica que permite calcular campos e métricas (por exemplo rácios, ou qualquer coisa que possa ser expressada através de linguagem SQL):

SQL Lab

Histórico de queries

Histórico de queries
Histórico de queries

Também tem disponíveis módulos de Python (algumas macros), dentro do SQL, via Jinja.

O lado menos positivo é que não é possível adicionar ou fazer query de várias tabelas ao mesmo tempo. A solução é fazer uma view que funciona como uma camada lógica que abstrai a query de SQL e dessa forma funciona como uma tabela virtual. A limitação é que existirá sempre uma query a correr em cima de outra query da visualização, pelo que poderão existir issues de performance.

Construir um dashboard

Para criar um dashboard, o Superset funciona da seguinte forma: existem as sources, onde constam todas as bases de dados e tabelas; as slices são as páginas com os gráficos, e por fim os dashboards que são compostos por conjuntos de slices.  Cada slice pode estar associada a um ou mais dashboards.

superset dashboard

Quanto às visualizações, tem à disposição diferentes tipos de gráficos tais como histogramas, box plots, heatmaps ou line charts.

Para editar os gráficos, o processo é simples: do lado esquerdo temos as propriedades disponíveis para cada visualização.

Embora seja flexível na maioria dos campos, o Superset força alguma standardização como é o caso dos schemas de cores.

superset dashboard

Cada visualização permite filtros, através de wildcards.

superset dashboard

O Superset também permite partilhar a visualização, exportar os dados para .JSON ou .CSV e também permite observar a query exata que está a ser realizada em cada visualização.

superset dashboard

Segurança

O Superset tem integração com os principais backends de autenticação (database, OpenID, LDAP, OAuth, REMOTE_USER, …)

Em termos de privilégios, como referido acima, esta aplicação providencia roles default como sejam o Admin (acesso total), Alpha, Gamma, Sql_lab e Public.

É possível estabelecer permissões para cada usuário, restringir o acesso a apenas um subset de fontes de dados, menus, views, métricas específicas e outras ações. Posto isto é relativamente fácil definir que tipo de permissões e/ou acesso a dados que é dado a cada pessoa.

Utilização do Superset

Atualmente, o Superset está a ser usado pelo Airbnb, Twitter, GfK Data Lab, Yahoo!, Udemy e outros. Segundo a página do GitHub o Superset já foi testado em grandes ambientes com centenas de utilizadores. O ambiente de produção do Airbnb corre com Kubernetes e serve mais de 600 utilizadores ativos que visualizam mais de 100 mil gráficos por dia.

Superset Vs Tableau

Tableau

Superset

  • Permite fazer join entre tabelas partindo da mesma DB ou com diferentes DBs.
  • Não permite fazer query/join de múltiplas tabelas. É necessário fazer view by view, o que acarreta ter várias queries o que afeta a performance.
  • Permite customizar os dashboards ao detalhe, com legendas, filtros, etiquetas, etc.
  • As customizações são restritas por tipo de visualização (embora seja possível criar templates de CSS)
  • A aprendizagem inicial é fácil e os utilizadores não precisam de conhecer SQL. A plataforma permite fazer tarefas mais complexas e flexíveis, existindo uma segunda curva de aprendizagem para os utilizadores que querem tirar o máximo partido do Tableau.
  • A aprendizagem não é difícil mas exige que os utilizadores tenham conhecimentos de SQL.
  • Pago
  • Grátis e Open-source

Vantagens principais do Superset

  • Business Intelligence sem necessitar de código (fácil de usar para que não é programador, basta saber o básico de SQL);
  • Setup é fácil e rápido;
  • Fornece um “SQL-Lab” que permite querying interativo;
  • Uma camada semântica que permite enriquecer o dashboard com rácios e outras métricas (baseadas em SQL);
  • Visualização interativa fácil e apelativa, permitindo a exploração de dados;
  • Providencia uma análise de dados simplista, mas que satisfaz as necessidades de clientes mais pequenos ou com menor volume de dados.

Desvantagens do Superset

  • A aplicação não suporta bases de dados NoSQL até ao momento;
  • Tem ainda uma base limitada de apoio, embora a comunidade de utilizadores esteja a crescer;
  • Por vezes o SQL-Lab bloqueia quando se faz queries em grandes quantidades de dados;
  • Não permite fazer visualizações complexas, limitando-se a uma utilização e exploração de dados mais básica.

Susana Santos

Data Scientist, Xpand IT

Susana SantosApache Superset Open Source BI: a quase alternativa a Tableau
read more

Apache Superset Open Source BI: almost the alternative to Tableau

What is Apache Superset?

Superset is a modern BI app with a simple interface, feature-rich when it comes to views, that allows the user to create and share dashboards.

This app is simple and doesn’t require programming, and allows the user to explore, filter and organise data. The best part is… it’s Open Source!

What does Apache Superset provide?

What is truly appealing about Apache Superset is the fact that you can explore each dashboard in a complex way. Superset allows you to focus on each graph/metric and easily filter and organise.

Another attractive feature in this app is the SQL/IDE editor with interactive querying.

Concerning security, Superset allows you to define a list of users and a list of default functionalities (associated with the groups of users) and allows you to view user statistics, providing you total control. You can establish baseline permissions, as well as granting access to certain views or menus. The app also provides an action log.

Visually, Superset has a minimalist and well-organised interface. Even though it is not as easy to use as Tableau, Superset can be an alternative to creating dashboards or people with some knowledge of SQL.

Database support

Superset supports most SQL databases by using Python ORM (SQL Alchemy), which allows you to access MySQL, Postgres, Oracle, MS SQL Server, MariaDB, Sybase, Redshift and others (more information here).

Superset also works with Druid (for example, Airbnb uses Superset with Druid 0.8x), but it does not have all the advanced features available.

SQL-LAB

This feature is definitely a plus. SQL-Lab allows you to select a database, schema and table (previously uploaded) and do an interactive query, preview the data and also save the query history (as shown below).

SQL Lab

A semantic layer allows you to define fields and metrics (for example, ratios or anything expressed by SQL):

SQL Lab

Query history:

Query history
Query history

You also have Python modules available (some available macros), inside SQL, via Jinja.

The least positive side of this is the fact that you cannot add or query multiple tables at the same time. The solution is making a view, which works as a logical layer and abstracts the query from SQL, therefore acting as a virtual table. The only negative aspect of this is that there will always be a query running against another view query, thereby potentially resulting in performance issues.

How to create a dashboard

To create a dashboard, Superset works as follows: there are sources, where you can find databases and tables; slices which are sheets with graphs; and, lastly, dashboards which are composed of groups of slices. Each slice is associated with one or more dashboards, and each dashboard has various associated slices.

Apache Superset dashboard

Views have different types of graphs available such as histograms, box plots, heatmaps or line charts.

Apache Superset dashboard

It is simple to edit graphs: the available features for each view are on the left-hand side, and you just have to change them and press “Run Query”.

Although flexible in most areas, Superset imposes some standardisation, which happens with the colour schemas.

Apache Superset dashboard

Each view allows you to filter views through wildcards.

Apache Superset dashboard

Superset also allows you to share the view, export data to .json and .csv, and see the exact query performed behind each view.

Apache Superset dashboard

Security

Superset integrates with the main authentication backends (database, OpenID, LDAP, OAuth, REMOTE_USE, …).

Concerning privileges, as stated above, this app provides default roles such as Admin (full access), Alpha Gamma, Sql_lab and Public.

It is possible to establish permissions for each user, restricting access to a subset of data sources, menus, views, specific metrics and other criteria. Hence, it is relatively easy to define which type of permission and/or access to data is granted to each person.

People using Superset

According to GitHub, Superset is currently being used by Airbnb, Twitter, GfK Data Lab, Yahoo!, Udemy and others.

It is important to note that “Superset was tested in large environments with hundreds of users. The production environment of Airbnb runs with Kubernetes and more than 600 active users who see more than 100 thousand graphs per day”.

Superset Vs Tableau

Tableau

Superset

  • Able to join between tables within the same or different DBs.
  • Unable to query/join multiple tables. Only possible view by view, which means having multiple queries, thereby affecting performance.
  • Detailed customisation of dashboards, with legends, filters, tags, etc.
  • Limited customisation by type of view (however, creation of CSS templates is available).
  • Easy beginner learning and doesn’t require users to know SQL. Since the platform allows more complex and flexible tasks, there is a second learning curve for users who want to make the best use of Tableau.
  • Easy and smooth learning, but requires SQL knowledge from users.
  • Paid
  • Free and Open Source

Superset’s main advantages

Besides all the advantages already stated, one of the main features of Superset is… it’s Open Source Business Intelligence!

Other advantages:

  • Provides BI without needing code (easy to use for those who are not programmers: you only need to know basic SQL);
  • Easy and quick setup;
  • Provides “SQL-Lab” that allows interactive querying;
  • A semantic layer that broadens the dashboard with ratios and other metrics (based on SQL);
  • Easy and attractive interactive view, that allows data exploration;
  • Satisfies the needs of most companies to allow simple data analysis.

Superset’s disadvantages

  • The app still doesn’t support NoSQL databases;
  • Even though the number of users is growing, it still has little or no support;
  • Sometimes, SQL-Lab freezes in queries for large amounts of data;
  • Has a considerable number of other unsolved issues.

Susana Santos

Data Scientist, Xpand IT

Susana SantosApache Superset Open Source BI: almost the alternative to Tableau
read more