Apache Superset
Visualização

Visualização de dados consiste na representação gráfica de informações e dados. Elementos visuais como grafos e mapas facilitam a narração de histórias sobre dados específicos, tornando-os mais compreensíveis, destacando tendências, exceções e gerando novos insights.
Com o advento do "Big Data", tornou-se uma ferramenta incrivelmente relevante para interpretar e entender o volume de dados gerados diariamente.
Existem diversas ferramentas para visualização de dados, e entre elas está o Apache Superset, uma ferramenta simples, fácil de usar, que oferece uma gama de opções para todos os níveis de habilidade.
É uma das melhores ferramentas de exploração de dados e aprendizado de máquina. Além disso, oferece uma interface de usuário muito amigável a um custo mais acessível.
Características do Apache Superset
Construído sobre tecnologias populares de código aberto, como JDBC e H2O, o Apache Superset oferece recursos robustos para a visualização, exploração e análise de dados. É uma aplicação web de inteligência de negócios (BI) que é rápido, leve, intuitivo e repleto de opções que facilitam a exploração e visualização de dados por usuários com qualquer conjunto de habilidades.
Foi criado por Maxime Beauchemin, Engenheiro de dados, CEO e fundador da PRESET, que usou um hackathon interno do Airbnb(evento que reúne programadores, designers e outros profissionais ligados ao desenvolvimento de software para uma maratona de programação) para criar uma ferramenta de BI a partir do zero.
O projeto, denominado "Caravel" inicialmente, tornou-se o Apache Superset. Rapidamente adotado por dezenas de empresas, assumiu cada vez mais casos de uso. Foi estabelecido como projeto de código aberto completo e incubado com a Apache Software Foundation em 2016. Hoje, é a principal plataforma analítica de código aberto, com uma das comunidades de crescimento mais rápido do GitHub.
Dentre suas principais características podemos citar:
-
Interface Intuitiva: Permite visualizar conjuntos de dados e criar painéis interativos.
-
SQL IDE: Facilita o preparo de dados para visualização, incluindo um rico navegador de metadados.
-
Segurança: É uma das suas principais vantagens, pois oferece controlo total sobre o acesso a dados. Permite a adição de usuários à Base de Dados, o fornecimento de acesso e o rastreamento de comportamentos.
-
Camada Semântica Leve: Capacita analistas a definirem rapidamente dimensões e métricas personalizadas.
-
Suporte a Bases de Dados SQL: Compatível com a maioria das bases de dados que utilizam SQL.
-
Cache e Consultas Assíncronas: Melhora o desempenho ao reduzir a carga de consulta diretamente nas bases de dados.
-
Extensibilidade: Com controlo total de acesso ao dado, permitindo a configuração de regras complexas sobre quem pode aceder quais recursos e conjuntos de dados do produto.
-
Integração com os principais backends de autenticação: Como OpenID, LDAP, OAuth, Remote_user, etc.
-
Capacidade de adicionar plug-ins de visualização personalizados.
-
API para customização programática.
-
Arquitetura Cloud Native: Projetado para alta disponibilidade e escalabilidade em ambientes distribuídos.
- Desenhada para _Alta Disponibilidade e Escala para ambientes grandes e distribuídos.
- Flexível na escolha de:
- Web Server (Gunicorn, Nginx, Apache),
- Database para Metadados (MySQL, PostGres, MariaDB, etc), ** Fila de mensagens (Redis, RabbitMQ, SQS, etc),
- Backend de Resultados (S3, Redis, Memcached, etc),
- Camada de Cache (Memcached, Redis, etc.)
-
Trabalha muito bem dentro de Containers.
-
Permite a criação de Queries Interativas: Com seleção de database, tabelas e schema.
-
Não exige conhecimento de código: É desenhado para pessoas que não conhecem código, como analistas de negócio e financeiros.
-
Acessível por Web e aplicação: Que operam de modo independente.

Arquitetura do Apache Superset
O Apache Superset opera com uma arquitetura centrada O Apache Superset baseia-se na metodologia Dataset-Centric (arquitetura centrada em consultas e em semântica).
Esta arquitetura promove o uso de conjuntos de dados semelhantes a um Dataframe, ou seja, uma esrutura tabular enriquecida que contém um subconjunto de características semânticas.
O Apache Superset pode ser executado no modo sequencial ou distribuído. No modo sequencial, apenas executa consultas com duração inferior a 60 segundos. No modo distribuído, o superset distribui as consultas entre workers.
Os principais componentes envolvidos na solução do Apache Superset são:
- Web Servers: (Servidores Web): Aplicativo flask python usado para conectar-se a qualquer base de dados. O Superset permite a escolha do Web Server e integra-se com várias opções, como Gunicorn, NGINX, Apache HTTP. Os web servers Superset e os workers Superset Celery (opcional) podem expandir-se para quantos servidores quanto forem necessários.
- Metadata Database: (Database de Metadados): O Superset permite a escolha do mecanismo de Base de Dados de metadados e integra-se com várias opções, como MySQL, Postgres, MariaDB, etc)
- Cache Layer: (Camada Cache): O Superset permite a escolha da camada de cache e integra-se com várias opções como Memcached, Redis, etc.
- Message Queue for async queries: (Fila de mensagens para consultas assíncronas): O Superset permite a escolha da fila de mensagens e integra-se com várias opções como S3, Redis, Memcached, etc.
- Results Backend: Para armazenamento e recuperação de resultados das consultas.
- Dashboard e Slices O Dashboard é uma interface do usuário que permite a visualização de vários grafos e dados. Cada seção dentro do Dashboard é chamada Slice, que, por sua vez, podem estar em diversos formatos: texto, grafo, ou, por exemplo, uma função.
- SQL Lab SQL Lab é um IDE SQL com uma ampla gama de recursos, com o qual é possível converter dados em grafos, por exemplo.

Superset funciona muito bem com serviços de métricas e estatísticas como NewRelic , StatsD, DataDog e tem capacidade de executar cargas de trabalho analíticas nas tecnologias de Base de Dados mais populares.
Atualmente, é executado em escala em muitas empresas, como, por exemplo, no ambiente de produção do Airbnb, onde, dentro de kubernetes, atende mais de 600 usuários ativos diários que visualizam mais de 100 mil grafos por dia.
Os principais setores e empresas que adotam o Superset podem ser vistos aqui.
Recursos do Apache Superset
Superset é enriquecido com funcionalidades que suportam desde a criação de visualizações dinâmicas até análises complexas, oferecendo:
- Visualizações personalizadas para explorar e compreender os dados.
- Consultas SQL na Guia SQL para investigação de dados.
- Construção de visualização sem código, ou o SQL IDE para integração e análise de dados rápidas.
- Ingestão de dados leve e escalável que funciona na infraestrutura de dados existente, sem demandar uma camada de ingestão separada.
- Camada semântica básica, onde é possível controlar como as fontes de dados são exibidas e tratadas.
Integração com Databases
Superset provê funcionalidades para conexão com vários databases. Conecta-se com quase todas as principais bases de dados, o que facilita a visualização e análise de seus dados. É compatível com Apache Spark SQL, PostgreSQL , GoogleSheets, Amazon Athena, Amazon Redshift, Azure MS SQL, etc.
Tipos de Visualização
O Apache Superset disponibiliza uma ampla varidade de grafos, tabelas e layouts. Alguns exemplos são:
- Grafo de Dispersão.
- Grids.
- Polígonos.
- Path.
- Screen Grids.
- Acrs
Detalhes do Projeto Apache Superset
Desenvolvido predominantemente em Python, o Apache Superset também utiliza tecnologias como Typescript e Flask App Builder para sua funcionalidade interna. Suporta a versão Python 3.6 ou superior e pode ser instalado de várias maneiras, incluindo local, virtual e através de Docker.
- localmente: onde o Python deve ser instalado primeiro e então o pip instala as dependências.
- virtualmente: É fortemente recomendada a instalação num ambiente virtual. O pyenv-virtualenv pode ser instalado se o pyenv estiver a ser usado.
- Docker: O meio mais simples de experimentar o Superset localmente é usando o Docker e o Docker Compose em Linux ou Mac OSX.
