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).
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):
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.
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.
Cada visualização permite filtros, através de wildcards.
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.
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.