Monitoramento de Utilização das Camadas do Data Lake no contexto de Self-Service BI na Localiza

Claudio Manoel da Silva e Sousa Neto
#LocalizaLabs
Published in
6 min readMay 22, 2023

Um data lake é um repositório centralizado que permite armazenar todos os seus dados estruturados e não estruturados em qualquer escala (referência: https://aws.amazon.com/pt/big-data/datalakes-and-analytics/what-is-a-data-lake/).

No data lake, os dados passam por uma jornada de tratamento e enriquecimento, sendo criadas camadas de dados em relação ao tratamento realizado e ao objetivo.

A nomenclatura dessas camadas varia muito entre as empresas, dependendo do modelo de referência utilizado e a necessidade de cada uma, mas normalmente temos a seguinte taxonomia: Bronze (Raw), Silver (Trusted) e Gold (Refined).

  • Bronze (Raw): camada onde os dados brutos (Raw) são armazenados. Nessa camada que temos os dados As Is, ou seja, sem tratamento vindo diretamente das mais diversas fontes;
  • Silver (Refined): primeira camada com tratamento dos dados. Agrupa normalmente várias fontes de dados da camada Bronze para definir uma visão do negócio na empresa, como por exemplo: Veículo, Contrato, Fornecedor e Cliente;
  • Gold (Trusted): camada de tratamento posterior à camada Silver na qual são aplicados cálculos relacionados às regras de negócio para serem utilizadas por toda a empresa, retirando ambiguidade dos cálculos e dando igual entendimento para toda a empresa, como Custos de Manutenção.
Camadas do Data Lake (feito pelo próprio autor)

Como se verifica, há uma evolução sobre a qualidade e inteligência dos dados na passagem entre as camadas. Sendo assim, há uma intensa atuação de toda a área de Analytics das empresas na disponibilização dos dados brutos no Data Lake para posterior tratamento e enriquecimento resultado nas camadas Silver e Gold.

Apesar disso, no contexto de Self-Service BI em que as próprias áreas fazem suas consultas no Data Lake, a adoção por parte das empresa nas camadas tratadas de dados Silver e Gold muitas vezes não é imediata e muito custosa. Alguns dos motivos que podemos verificar são:

  1. Falta de conhecimento: é necessária uma intensa divulgação das novas estruturas para as áreas de negócios que utilizam a camada Bronze ou mesmo necessitam das informações, mas simplesmente desconhecem essa possibilidade de análise para determinadas porções de dados;
  2. Comodismo: como já utilizam a camada Bronze e esta já atende suas análises, a área de negócio não vê necessidade para utilização da nova estrutura. Contudo, aumenta o risco de análises divergentes entre as várias áreas da empresa, pois é dependente do domínio completo de todas as áreas sobre os dados para correto tratamento;
  3. Necessidade de migração das estruturas/consultas: devida a já utilização da camada Bronze e ao extenso desenvolvimento já feito, o esforço para alteração e validação da coerência dos dados pode ser um impeditivo para adoção.

As soluções para o incentivo de utilização das camadas posteriores no Data Lake levam em conta várias abordagens, como:

  1. Ambiente informacional claro da documentação de todo o Data Lake da empresa com o descritivo das tabelas e campos, além da linhagem dos dados, ou seja, todo o fluxo de transformações do dados até salvar em determinadas tabelas do Data Lake;
  2. Contínua comunicação com as áreas de negócio por meio de e-mails informativos, canais de chat corporativos para resolução de dúvidas, além de reuniões e desenvolvimento pareado diretamente com os analistas das áreas para entender suas dores e por ventura erros ou mesmo incompletude das camadas Silver e Gold sobre as necessidades das áreas;
  3. Bloqueio de acesso às tabelas da camada Bronze caso essas informações possam ser obtidas por tabelas das camadas Silver e Gold. Verifica-se que essa abordagem é uma importante ação para forçar a utilização das camadas posteriores a partir de uma data prévia acordada com as áreas e também com total apoio do setor de Analytics para resolução de dúvidas e desenvolvimento de evoluções/correções;

Na Localiza, como utilizamos o dbt (link: https://www.getdbt.com/) para tratamentos dos dados, a mesma já nos oferece toda a linhagem dos dados de todos os datamarts (conjunto de tabelas relacionadas ao mesmo domínio de negócio como Aluguel de Carro, Venda de Seminovos e Custo de Manutenção). Dessa maneira, disponibilizamos em um portal essa linhagem de maneira clara e simples. Abaixo o diagrama de linhagem dos dados obtido do site da dbt.

Linhagem dos dados no DBT (link: https://docs.getdbt.com/docs/dbt-cloud-apis/metadata-use-case-guides)

Além disso, fazemos também na Localiza a divulgação das tabelas nas camadas Silver e Gold e quais elas substituem da camada Bronze, por meio de e-mails para as áreas de negócio, criação de canais no Microsoft Teams para a resolução de dúvidas e disponibilidade para apoio aos analistas de negócio e correções/evoluções.

Um framework para maior adoção das camadas Silver e Gold e o monitoramento da sua utilização em relação à camada Bronze contemplariam os seguintes passos no diagrama abaixo:

Framework para monitoramento e adoção maior das Camadas Silver e Gold

Obtenção dos logs de execução das consultas

Sabemos que uma tabela pode ser acessada por diversas pessoas de diversas áreas que muitas vezes desconhecem a utilização, em especial no contexto Self Service BI, em que as próprias áreas de negócios são empoderadas para realizar suas consultas no Data Lake para extração de valor no negócio. Uma abordagem pragmática nesse contexto que é bastante efetiva é a verificação dos logs de consultas realizadas no Data Lake. Como o Data Lake da Localiza é em BigQuery, o mesmo já possui um recurso nativo de auditoria de logs (vide link: https://cloud.google.com/bigquery/docs/reference/auditlogs#bigqueryauditmetadata_examples). Sendo assim, a cada consulta realizada no Data Lake é gerado um log em que é possível saber o comando, horário, quem realizou a consulta e também as tabelas utilizadas na consulta. A seguir vai uma tabela de exemplos dos logs de consultas no Data Lake.

Tabela de exemplo dos logs de consultas no BigQuery feito pelo próprio autor

De posse desses logs das consultas realizadas no Data Lake, é possível, além da listagem de todas as pessoas que utilizam determinadas estruturas no período de tempo, metrificar a quantidade de consultas realizadas para determinadas tabelas do Data Lake.

Obtenção das linhagens dos dados

O próximo passo seria obter a linhagem dos dados dos enriquecimento dos dados feitos para o Data Lake. Como dito anteriormente, os projetos utilizam a tecnologia dbt. Para cada projeto, é gerado um arquivo manifest.json em que é possível extrair toda as informações dos metadados dos projetos, em especial as etapas e ordens das transformações dos dados da camada Bronze (Raw Data) e nas camadas posteriores Silver e Gold. Sendo assim, é realizado um parser nesse arquivo, ou seja, uma leitura dos arquivo utilizando a linguagem Python e a biblioteca pydantic (um ótimo link para demonstração pode ser acessado em https://guitton.co/posts/dbt-artifacts#parsing-artifacts-from-python-with-pydantic) para obtenção da linhagem dos dados e posterior salvamento dos mesmos em uma tabela do BigQuery, conforme exemplo abaixo em que para criar a tabela corporativo_silver.agencia da camada Silver é necessário a leitura das tabelas Bronze agencia.area_agencia e agencia.localizacao_agencia.

Tabela de exemplo do processamento da linhagem dos dados do arquivo manifest.json gerado pelo projeto dbt (feito pelo próprio autor)

Dashboard de acompanhamento de utilização de consultas

Com os logs e o processamento da linhagem de dados já realizado, conseguimos agora finalmente monitorar a utilização das camadas do Data Lake. Abaixo um dashboard em que é possível comparar as quantidade de consultas realizadas desde o início do ano de 2023 de uma tabela Silver em comparação com todas as consultas das tabelas Bronze que são utilizadas para criar a tabela Silver. Para esse caso específico, a tabela Silver foi criada no início de Fevereiro/2023 e no meio do mês de Março/2023 foram retirados os acessos de leitura para os usuários nas tabelas Bronze, fazendo com que a utilização das tabelas Bronze fosse praticamente zero e o uso da Silver fosse cada vez mais assíduo.

Dashboard de compração dos utlização das camadas do Data Lake nas consultas (feito pelo próprio autor)

Atuação caso a caso

Com esse dashboard de monitoramento é possível entender bastante o comportamento de uso das camadas e tomar ações de letramento dos dados, apoio às áreas de negócio e retirada do acesso às camadas Bronze se possível, por exemplo, dentre várias ações que devem ser feitas caso a caso.

Conclusão

Sendo assim, esse monitoramento torna-se uma ferramenta básica para efetiva evolução da maturidade da empresa no contexto Self-Service BI. Nesse contexto deve-se cada vez mais utilizar as camadas consolidadas dos dados para maior produtividade, redução de custos e principalmente entendimento único sobre os conceitos dos dados da empresa para correta tomada de decisão sobre os negócios.

--

--