Convenções de nomenclatura do Apache Superset na Gupy

minutos de leitura

07 de junho de 2022

Escrito por
Lorran Rodrigues

O Apache Superset é uma ferramenta e tanto. A partir dele construímos visualizações de alguns de diversos indicadores na Gupy que são disponibilizadas para as mais diversas áreas da empresa em dashboards que #brilham-os-olhos. 

No Superset (S7), nós criamos uma visualização (ou um Chart) partindo de um conjunto de dados. Juntando-se múltiplos Charts ao redor de uma temática específica, temos um Dashboard.

Em pouco tempo utilizando a ferramenta notamos alguns problemas relacionados a criação desenfreada de Charts e Dashboards.  O S7 até o momento não oferece um recurso de pastas ou tags para segmentação de Charts e Dashboards. Ou seja, sem uma convenção clara de nomenclatura, rapidamente estávamos em um ambiente desorganizado e de péssima usabilidade para o usuário final. 

Alguns exemplos de nomes de Dashboards:

  •  [RMR - JULIA] Relatório Gerêncial
  •  Painel de Custos [TESTE]
  •  Análise de Contratações [Mensal - Pedro]

Exemplos de nomes de Charts:

  •  Qtd de Contratações
  •  % de Converções
  •  Pct de Inscritos [Mensal - Teste - Felipe]

Além de confuso, se tornou um verdadeiro desafio encontrar um determinado indicador relacionado a algum contexto de negócio, sem um bom tempo de busca, e um pouco de habilidade de detetive.

Convenções ao resgate

Ficamos abismados por não encontrar muita coisa a respeito de como organizar minimamente o conteúdo que estava sendo criado dentro do S7. Nesse sentido, esse artigo também é uma forma de trazer um pouco para comunidade o nosso aprendizado a respeito.

Nossa proposta foi estender o conceito deste artigo, onde o autor atribui tags para conferir aos Charts e Dashboards um pouco mais de contexto. A ideia principal consiste em representar o dataset como a ponta mais próxima da fonte de dados em si, e as camadas de abstrações em cima dos dados (visuais e dashboards) devem cada vez mais contextualizar o dado e o aproximá-lo da área de negócio.

superset1

Datasets

As fontes de dados (datasets) presentes no S7 se encontram na aba Datasets, e estes podem ser físicos ou virtuais. Datasets físicos, via de regra, herdam os nomes das próprias tabelas que os compõem. Assim, um conjunto de dados da tabela gupy_aws_cost, simplesmente, apresenta o mesmo nome da tabela original.

Os nomes das colunas e métricas presentes nos datasets são também herdados do próprio projeto da nossa solução para transformação de dados, que utiliza o dbt e, portanto, parte das convenção da própria ferramenta. Ou seja, esses campos são originalmente em snake_case (e em inglês) e possuem um rótulo (label) padrão em Sentence case que pode ser ou não em português. Serão esses rótulos que aparecem no eixos e legendas dos Gráficos.

Charts

Para o nome dos gráficos (Charts no S7) adotamos a convenção:

superset2

As tags ainda devem ser em minúsculo e sem caracteres especiais de forma a facilitar a busca. Porém, os nomes dos gráficos devem ser em Sentence case, e tão descritivos quanto o necessário.

As tags de negócio existem para facilitar a busca de charts específicos, como também adicionam uma camada a mais de contexto sob aquele respectivo Chart. Elas seguem uma taxonomia simples, onde a primeira tag deve representar o contexto daquele visual (ex.: ats,  admissões, niduu); seguido da área ou áreas responsáveis por aquele Chart (ex.: cs,engenharia,…); por fim uma ou várias tags de negócio que são interessantes para contextualizar o visual.

A descrição do Chart deve:

  • ser escrita em Sentence case
  •  evitar abreviações como (Pct, Qtd, Avg, MoM)
  •  evitar símbolos (ex.: % de Assinaturas)

Exemplos:

  • ats_cs_qbr.Quantidade de likes por mês
  • ats_cs_qbr.Time to fill, hire, publish e attract por mês
  • ats_cs_engajamento_gaia.Relevância por feature

Dashboards

Para Dashboards, adotamos a convenção:

superset3

O ideal é que os dashboards possuam o mínimo possível de tags e que elas façam referência à própria área de negócio ou a contextos específicos.

Exemplos:

  • qbr.Overview ATS
  • admissões.Painel de saúde
  • engajamento.Overview ATS

Dashboards devem evitar títulos como : "Dashboard de acompanhamento…” ou “Report de …”. A ideia é evitar a redundância.

Tags são muito úteis para filtro e contextualização dos charts, porém aconselhamos também omiti-las dentro dos dashboards, para isso basta editar o nome do Chart no menu de edição do Dashboard.

A partir destas simples diretrizes, fomos capazes de trazer um pouco mais de sanidade para quem trabalha com o Superset no dia a dia. No fim das contas, dar nome às coisas é difícil, mas quando se tem algumas simples convenções para tal, todo mundo ganha.

Quer fazer parte do time? Encontre a vaga certa para você na nossa página de carreiras!

 

Lorran Rodrigues é Engenheiro de Dados aqui na Gupy.

"No fim do dia, eu sou um apaixonado por desenvolver soluções orientadas a dados e transformar dores e perguntas de negócio em produtos 🎲"

-> Github: https://github.com/lorransr