Data Quality na Americanas com Soda.io
No primeiro post falamos qual o cenário, processos e frameworks de qualidade de dados na Americanas. Agora vamos mergulhar em alguns aspectos de arquitetura, ferramenta e execução.
Falando sobre o SODA especificamente a ferramenta conta com duas soluções:
Soda SQL e Soda Cloud.
Soda SQL: ferramenta de linha de comando gratuita e open-source que utiliza entradas definidas pelo usuário para preparar consultas SQL que executam, manualmente ou programaticamente, testes em um conjunto de dados a fim de identificar dados inválidos, ausentes ou inesperados.
Soda Cloud: interface para monitorar de forma visual os resultados dos testes e medições históricas, detectar anomalias de forma automática, configurar alertas para notificação dos times sobre problemas identificados, criação e rastreamento incidentes e colaboração para desenvolvimento e avaliação de testes.
Para assegurar a qualidade dos dados da nossa plataforma, estamos trabalhando com o Soda.io, uma ferramenta de observabilidade que possui suporte ao BigQuery e outras fontes de dados. Através dela, conseguimos diagnosticar e monitorar os dados para que eles sejam ainda mais confiáveis, coerentes e precisos na plataforma.
Dessa forma, o Soda SQL e o Soda Cloud endereçam diretamente os desafios de teste, monitoramento, profiling e evolução da observabilidade dos dados.
Soda Cloud
✔ Visualização dos resultados dos scans e histórico de métricas;
✔ Detecção automática de anomalias;
✔ Configuração de alertas e notificação;
✔ Forma colaborativa de escrever testes com a equipe;
✔ Criação de incidentes à partir de scans;
Para uma comparação ainda mais aprofundada a Soda disponibiliza as diferenças em cada solução:
Além disso, a Soda também acabou de lançar o SODA Spark onde você também poderá usar em seu cluster spark as métricas e monitorias de qualidade.
Nossa arquitetura
A nossa arquitetura de qualidade e observabilidade se baseia em uma esteira de deploy em que adicionamos um arquivo yaml contendo as métricas de qualidade que desejamos analisar, e à partir de um google kubernetes engine operator do Airflow é executado o scan através do Soda SQL.
Prática — Como instalar o Soda SQL
Sendo o Soda SQL uma ferramenta open source e free, você também pode explorá-la nos seus diversos data sources. A seguir, vamos demonstrar como você poderá fazer a instalação em ambiente local e rodar um scan em uma tabela do BigQuery.
Inicie rodando os seguintes comandos:
python3 -m venv .venvsource .venv/bin/activatepip install — upgrade pippip install soda-sql-bigquery -U
Após a instalação dos pacotes, neste caso, foi instalado o conector do BigQuery para o Soda em um Virtual Env do Python. Você poderá confirmar se o ambiente está funcionando normalmente apenas digitando “soda”
Após termos o ambiente instalado, é necessário fazer a configuração de conexões. Rode o comando:
soda create bigquery
Agora será necessário colocar as informações do seu ambiente BigQuery dentro do warehouse.yml , bem como também alterar o arquivo env_vars.yml com seu service account do GCP
cat ~/.soda/env_vars.yml
Depois de tudo configurado você poderá executar:
soda analyze
Nesse momento, serão criados alguns arquivos de métricas padrões para as tabelas do dataset informado. Se quiser, também poderá ser criado um arquivo com métricas específicas que gostaria de analisar. ( A seguir, um exemplo de arquivo yaml — nome do arquivo breakdown.yaml)
table_name: tabela_exemplometrics:- row_counttests:row_count > 200
Alguns outros exemplos de métricas já prontas que também podem ser utilizadas.
E finalmente para executar o scan rodar:
soda scan warehouse.yml breakdown.yaml
Examine o output, em particular a seção “Scan Summary” que se encontra no final. Ela indica os resultados dos testes que o Soda SQL rodou dentro dos seus dados. Caso deseje visualizar maiores informações sobre o scan, execute a exportação dos resultados.
soda scan -srf ./<nome_diretório_resultados>/<nome_arquivo_resultado>.json warehouse.yml breakdown.yaml
Qualquer dúvida que tiver quanto a instalação a própria soda disponibiliza uma documentação rica e detalhada aqui com exemplo de primeiras execuções aqui.
Permissionamento e Roles
Dentro do Soda.io é possível atribuir três tipos de roles diferentes relacionadas a um dataset, são elas:
Resultados Soda Cloud
Conforme imagens abaixo podemos avaliar as métricas implementadas e quando o dado passou o limite estipulado, inclusive com detecção de anomalias em alguns cenários, via Soda Cloud com interação direta das análises na web.
Os resultados, métricas e scans feitos com essa ferramenta tem sido excepcional, nos tornou uma equipe de Dados que entrega ainda mais qualidade, consistência e integridade aos nossos datasets. Nossa maturidade como time evoluiu e cada vez mais os usuários de negócio utilizam dados que trazem valor agregado no dia a dia.
Venha fazer parte do nosso time de dados dentro da Americanas, e colocar esse conceitos de Data Quality e Observability em prática e se tiver alguma dúvida sobre o post é só me procurar no Linkedin.