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