Proposta simplificada para construção sustentável de catálogo dados

30
 min de leitura

Resumo Com o surgimento de meios para armazenar de grandes volumes de dados, de diversas fontes e a todo momento, as organizações vêm enfrentando cada vez mais dificuldades para fazer a gestão e entender o valor desses recursos. Esse fato tem impacto direto na qualidade da informação que é gerada, prejudicando a eficiência de processos, tomada de decisões e finalmente o sucesso do negócio.

Proposta simplificada para construção sustentável de catálogo dados

1. Introdução

Um desafio que tem se tornado cada vez maior para organizações, em um cenário cada dia mais competitivo e onde o dado tem se tornado cada vez mais fundamental e um diferencial de negócio, é realizar a tomada de decisão de maneira rápida e mais assertiva possível.Estudos já comprovaram que as companhias orientadas por dados e que utilizam ferramentas de gerenciamento  possuem uma  probabilidade muito  maior de  reduzir custos  e  impulsionar o  seu crescimento constante.

Os ambientes que utilizavam apenas bancos relacionais tiverem que se expandir, criando assim bancos  No SQL, que  podem  receber outros  tipos  de  dados  como imagens,  músicas,  vídeos, informações  de redes sociais  etc.Para  receber estes  diversos  tipos de  dados,  em um  volume imensamente  maior que  anos  atrás, criou-se  o  conceito de  Data  Lake, um  repositório  que armazena conjuntos grandes e variados dedados brutos em formato nativo, permitindo assim a organização de todos os dados da empresa em um único lugar.Mas a partir disso, criou-se um desafio, como fazer com que as organizações sejam capazes de encontrar, confiar e entender toda essa 'mina de ouro' de dados que possuem em mãos, de forma organizada,segura e confiável?

O Catálogo  de  Dados (Data  Catalog)  tem se  tornado  um elemento  cada  vez mais  central  no processo de  gerenciamento  de dados  das organizações,  pois ele  fornece  aos usuários  de  toda  a companhia um recurso centralizado e seguro, por qual eles podem encontrar dados confiáveis e em conformidade com a governança, sendo fácil de compreender e de encontrar as suas origens.Basicamente, Catálogo de Dados é uma coleção de meta dados(dados que explicam dados) que forma um inventário com todos os dados da empresa, fornecendo uma visão única e abrangente das informações que estão disponíveis no momento desejado.

Imagina-se o  cenário  do Data  Lake  da empresa  'X',  com o repositório  possuindo cerca  de  100 fontes de dados, todas as fontes podendo ser atualizadas diariamente. Um engenheiro de dados irá desenvolver um novo pipeline de dados, ou seja, irá criar um processo que busca no Lake os dados cadastrais de um cliente, transformar e carregar em uma nova tabela. Ao buscar os dados de nome, CPF e estado civil se deparou com 10 tabelas em que o campo de CPF possui diversos nomes diferentes, depois reparou que em algumas tabela só nome do cliente estava divergente,  provavelmente  o nome  mudou devido ele ter  casado ou  divorciado,  e assim resultando nos diferentes tipos de  estado civil do mesmo(solteiro, casado e  divorciado).Neste caso,  o engenheiro de  dados precisaria analisar campo a  campo,checando quais são as tabelas corretas que possuem   as   informações  necessárias atualizadas através   de  documentações, verificando as periodicidades de carga de cada tabela, questionando as equipes provenientes das tabelas etc.

Neste mesmo cenário, se a empresa tivesse um Catálogo de Dados, o engenheiro poderia consultá-lo para saber de qual tabela de origem ele deveria buscar esses dados, se a informação é para o mesmo negócio do pipeline em que ele está desenvolvendo, qual o tipo do campo, se a dado pode vir nulo, periodicidade de carga, se já não existe uma tabela com esses dados tratados ao invés do dado bruto etc.

Esses são apenas alguns exemplos, mas o Catálogo de Dados pode trazer muitos outros benefícios para diversas áreas da empresa, como aplicar e definir os padrões para o time de Governança de Dados,visibilidade em tempo real da integridade dos dados, remoção de bases de dados obsoletas, autoatendimento para áreas que não possuem conhecimento técnico,entre outros.

Ao garantir  que  dados confiáveis  e  de fácil  compreensão sejam compartilhados  por  toda  a empresa, as organizações podem tomar decisões estratégicas de maneira rápida e eficaz, gerando resultados de negócios cada vez mais satisfatórios.

2. Apresentação de Cenário

Como cenário estudado, temos uma grande empresa vendedora de diversos produtos alimentícios.   Um dos responsáveis pelo setor de Marketing da companhia quer o levantamento exato de quanto a empresa vendeu em uma visão separada por mês/ano. O objetivo desta análise é identificar os meses em que o valor de vendas costuma ficar abaixo da média daquele mesmo ano, e assim poder investir mais em campanhas de marketing nestes períodos. A  empresa possui  um Data  Lake já robusto,  com  centenas de  tabelas  Raw, temporárias, intermediárias e finais, onde diversos times carregam e extraem dados de lá. A  única  informação que  o  time de  dados  de  Marketing  tem sobre  este  caso  é  que essa  análise nunca foi feita internamente, mas pode ter sido feita por outros times, como o time Financeiro,o time responsável  pelos  vendedores, ou  até existir  alguma visão  já  criada pelo  time  de BI.  O problema é que para descobrir essa existência, as opções são:

 

a)verificar manualmente  as  tabelas existentes  no  Data Lake  e  que parecem  estar relacionadas aos dados de vendas.

b)marcar reuniões para  questionar os  times que  possam já ter criado essa  visão específica.

c)Analisar centenas de arquivos de documentação, mas correndo o risco de o cenário procurado não estar devidamente documentado.

Após analisar uma grande quantidade de tabela se documentações,e ‘bater na porta’ de alguns setores, o time de Marketing chegou nas seguintes tabelas:

a)Uma tabela chamada Vendedor, mas que inicialmente não será utilizada

b)Uma tabela chamada Vendas, que possui os dados necessários, é confiável e atualizada frequentemente, porém transacional e com mais de 5 anos de histórico.

c) E duas  tabelas  chamadas VendasMensal  e  Vendas_Mes. Aparentemente  elas  também possuem uma visão de valor_venda por mês/ano, porém a Vendas_Mes possui quase o dobro de registros em comparação a VendasMensal.

Em resumo do cenário, após um longo tempo de análises e discussões com outros setores, o time de dados de Marketing chegou em quatro tabelas, porém ainda sem a resposta se será confiável utilizar uma das duas tabelas já consolidadas por mês/ano por outros times,ou se o caminho mais seguro (e que possivelmente levará mais tempo) será criar uma nova tabela com a visão desejada, buscando os registros da tabela de Vendas que descobriu-se ser confiável, porém transacional e com um longo histórico.

3. Experimentos e Resultados

Visto o  cenário  apresentado no  capítulo  anterior, a nossa  proposta é  apresentar uma  solução simples e  sustentável para  a implantação  do  catálogo de dados  em  um data lake, utilizando  um banco de dados relacional para cadastro de informações de tabelas, campo, pipeline de dados e a confiabilidade dos  objetos, processos que também podem ser  compartilhados com  o time  de Governança de Dados,para criar uma melhor integração e eficiência na utilização dos dados de toda a companhia.

3.1 Bancos relacionais

Listamos abaixo os motivos da utilização de um banco de dados relacional para a criação do nosso Catálogo de Dados:

a)Diversas opções OpenSource como SQLite, Postegres, MySQL.

b)Melhor controle para evitar duplicação ou dados incorretos/nulos.

c)Linguagem SQL simplificada e de fácil assimilação, já conhecida por profissionais da área.

d)Fácil integração  com  outras ferramentas de Front-End  e  Data Visualization, facilitando assim o compartilhamento e manutenção do Catálogo com diversos times da organização.

3.2. Tabelas do Catálogo de Dados

No modelo de catalogação de dados proposto neste artigo foi definida a criação de algumas tabelas onde serão organizadas e registradas informações de relacionamentos, origem e destino de dados,campos  e tipos  de  dados, descrição  de  tabela e  campos,  entre outros.  Essas  tabelas foram nomeadas    como    lakeTablePipeline,    lakeBaseTable,    lakeTableField,    dictionaryTable    e dictionaryField.  A  seguir vamos  detalhar  a função  e  exemplificar a  inserção  de dados  nessas tabelas.

lakeBaseTable: Essa tabela é responsável por guardar informações sobre tabelas. Nela é possível registrar o nome da tabela,se ela é temporária, sua frequência de atualização e última partição.

lakeTablePipeline:  Essa tabela  possui  como função  o  armazenamento de  informações  como processo responsável pela criação da tabela, tabela de origem dos dados e tabela de destino.

lakeTableField:Tabela que  tem  como função  armazenar  informações sobre  os  campos das tabelas, como nome do campo, tabela à qual ele pertence e tipo dedado que pode ser armazenado nele.

dictionaryTable:  A função  dessa  tabela guardar  registros  de detalhes de  tabelas  como última atualização e responsável por realizar a ação, marcação que identifica armazenamento de dados brutos e se são confiáveis e por último uma descrição que facilite o entendimento da função dela.

dictionaryField: A função dessa tabela é armazenar detalhes de campos das tabelas como última atualização e responsável por realizar a ação, marcação que identifica se é um campo principal e descrição que facilite o entendimento da função dele.

3.3 Explicação do processo

Agora que temos  uma visão  do  conceito proposto  e conhecemos  as tabelas envolvidas,  suas funções e estruturas, vamos falar um pouco sobre como idealizamos o fluxo trabalho ideal para um cenário saudável de gestão e utilização do catálogo de dados.

Pudemos observar na seção do artigo“Apresentação do Cenário”que ao receber a demanda de um estudo foi necessário realizar um grande processo de busca, não só no datalake, mas também junto a equipes que poderiam ter desenvolvido algum trabalho que pudesse ajudar na identificação de  fontes  confiáveis.Processo  esse que  demandou  tempo e  ainda  que fossem  coletadas informações possivelmente úteis, ainda existiria a incerteza quanto à confiabilidade dos dados.

3.4. Resultado

Aplicado o processo contínuo de catalogação simplificada dos dados,temos como resultado toda a documentação, rastreabilidade de origem e governança já integrados diretamente à construção do data lake e respectivos pipelines de dados.

Além das  vantagens diretas  e implícitas em adotar o processo proposto,a simplificação com adoção  de bancos de  dados relacionais,  é possível realizar otimização com a construção de bibliotecas especificas para consulta e atualização do catálogo e,até  mesmo automatização e integração às esteiras de desenvolvimento de código já existentes na organização,trazendo maior sustentabilidade a todo o ciclo de vida dos dados na organização.

Outro benefício diretamente tangível que possui maior potencial de geração de entrega de valor ao ganho de agilidade na realização de descoberta dos dados, onde os impactos inevitáveis como proporções do data lake e turnover  de  equipe,são minimizados com  a  construção contínua  do catálogo .Utilizando os cenários elaborados inicialmente, o Analista ou Engenheiro de Dados, encontraria facilmente o dado necessário e sua origem com uma simples consulta:

Como resultado, com a aplicação da proposta de Catálogo de dados simplificado apresentado no cenário do item 2 do artigo, a equipe de marketing da companhia teria a disposição o seguinte modelo para orientação,de forma rápida e confiável:

4. Conclusões

Como pudemos  observar  no decorrer  desse  artigo, o  processo  de catalogação  de  dados traz diversos benefícios  para  o negócio. Ter ciência  sobre a origem e  forma com que os  dados que estamos  manipulando foram  gerados,  pode mudar  completamente  o modo  de  interpretação, impactando no resultado do trabalho a ser realizado.

De forma  simples  e  objetiva  exemplificamos  a criação  e  gestão de  um  catálogo de  dados, utilizando ferramentas open-source, em um cenário hipotético de catalogação de dados de vendas de uma empresa do setor alimentício. Na proposta apresentada, o trabalho de catalogação de dados deve ser realizado em conjunto pelos times de engenheiros de dados(prestando suporte técnico com a estrutura que sustentará a aplicação do conceito) e governança(fornecendo informações que envolvam origens,  dados  oficiais e  demais  detalhamentos sobre  campos  e tabelas  do ambiente).

Referências

MOSES, Barr. Data Discovery: The Future of Data Catalogs for Data Lakes, 2021. Disponívelem:https://towardsdatascience.com/data-discovery-the-future-of-data-catalogs-for-data-lakes-7b50e2e8cb28.Acessoem: 19dez. 2021

ANALYTICS10.O que é um catálogo de dados e porque você precisa de um?,2021. Disponívelem:https://www.a10br.com/blog/o-que-e-catalogo-de-dados-e-por-que-voce-precisa-de-um.Acessoem: 19dez. 2021

DSACADEMY. Os Benefícios de Um Catálogo deDados,2021. Disponívelem:https://blog.dsacademy.com.br/os-beneficios-de-um-catalogo-de-dados/.Acessoem: 19dez. 2021

ITEAM. Catálogo de Dados: 4 motivos quecomprovam que você deve usar,2021. Disponível em:http://it-eam.com/catalogo-de-dados-4-motivos-que-comprovam-que-voce-deve-usar/.Acessoem: 19dez. 2021

Autores

Guilherme Araujo Moreira;

-Especialista Big Data;

-Linkedin: https://www.linkedin.com/in/engui/ ;

-Intro:Graduado em Engenharia de Computação, mais de 15 anos de experiência em players regionais e globais, realizando projetos de software, data analytics, arquitetura de soluções, automação e aplicações de negócios.

Andrei Renan Zanetti de Moraes;

-Engenheiro de Dados;

-Linkedin: https://www.linkedin.com/in/andreizanetti/ ;

-Intro: Engenheiro de dados experiente em ambientes de Data Lake/Big Data, desenvolvimento de scripts em Pyspark/Python,
projetos de ETL/DataQuality e bancos de dados relacionais e não-relacionais.

Compartilhar esse conteúdo: