Alรฉm de desenvolver pipelines de dados, uma das (๐ข๐ช๐๐ฉ๐๐จ) responsabilidades do Engenheiro de Dados รฉ manter a qualidade dos dados.
Na ๐ฎ๐ฟ๐พ๐๐ถ๐๐ฒ๐๐๐ฟ๐ฎ ๐บ๐ฒ๐ฑ๐ฎ๐น๐ต๐ฎ̃๐ผ (๐ฏ๐ฟ๐ผ๐ป๐๐ฒ, ๐๐ถ๐น๐๐ฒ๐ฟ ๐ฒ ๐ด๐ผ๐น๐ฑ), antes de movimentar os dados de bronze para silver, utilizo um processo de validaรงรฃo simples de quantidade de valores nulos para cada coluna em uma tabela do Bigquery.
๐๐ผ๐บ๐ผ ๐ณ๐๐ป๐ฐ๐ถ๐ผ๐ป๐ฎ?
Durante o processo de ingestรฃo dos dados (utilizando ๐๐ถ๐ฟ๐ณ๐น๐ผ๐ ๐ฒ ๐๐ฎ๐๐ฎ๐ณ๐น๐ผ๐), a ๐ฅ๐ข๐จ passa os parรขmetros para a query que estรก armazenada no ๐๐ฎ๐๐ฎ๐ณ๐ผ๐ฟ๐บ (bem parecido com o ๐ฅ๐ฃ๐ต), fazendo com que ela gere uma tabela com os nomes de colunas, quantidade de nulos e percentual em relaรงรฃo ao total.
Assim, temos tempo hรกbil de decidir o que fazer com esses campos nulos sem impactar as demais atividades que dependem desses dados.
Tรก, mas qual o problema de ter colunas com valores nulos no Bigquery?
1. Quando um valor รฉ nulo, o Bigquery pode precisar de metadados adicionais para indicar que aquele valor “๐ฏ๐ข̃๐ฐ ๐ฆ๐น๐ช๐ด๐ต๐ฆ”. Isso pode aumentar o espaรงo de armazenamento. O cenรกrio fica pior se vocรช tem muitas colunas com muitos registros nulos.
2. Com aumento de armazenamento, vem o ๐ฎ๐๐บ๐ฒ๐ป๐๐ผ ๐ฑ๐ฒ ๐ฐ๐๐๐๐ผ๐, nรฃo sรณ com armazenamento, mas tambรฉm com processamento. E isso pode impactar o ๐ฃ๐ถ๐ฅ๐จ๐ฆ๐ต do projeto.
3. Os dados nulos podem tornar as ๐ฐ๐ผ๐ป๐๐๐น๐๐ฎ๐ ๐ป๐ฎ๐ ๐ฐ๐ฎ๐บ๐ฎ๐ฑ๐ฎ๐ ๐๐๐ฝ๐ฒ๐ฟ๐ถ๐ผ๐ฟ๐ฒ๐ ๐บ๐ฎ๐ถ๐ ๐น๐ฒ๐ป๐๐ฎ๐. [ ๐๐ข๐ด๐ด๐ฆ๐ช por ๐ถ๐ฎ ๐ค๐ฆ๐ฏ๐ข́๐ณ๐ช๐ฐ ๐ฐ๐ฏ๐ฅ๐ฆ ๐ถ๐ฎ๐ข ๐ต๐ข๐ฃ๐ฆ๐ญ๐ข ๐ต๐ช๐ฏ๐ฉ๐ข 183๐จ๐ฃ ๐ฅ๐ฆ ๐ฅ๐ข๐ฅ๐ฐ๐ด, ๐ด๐ฆ๐ฏ๐ฅ๐ฐ 95% ๐ฅ๐ฆ๐ด๐ด๐ฆ ๐ข๐ณ๐ฎ๐ข๐ป๐ฆ๐ฏ๐ข๐ฎ๐ฆ๐ฏ๐ต๐ฐ ๐ข๐ฑ๐ฆ๐ฏ๐ข๐ด ๐ค๐ข๐ฎ๐ฑ๐ฐ๐ด ๐ฏ๐ถ๐ญ๐ฐ๐ด ]. Trabalhar com essa tabela da forma que estava era insalubre.
4. Por fim, mas nรฃo menos importante, ๐ฎ๐๐บ๐ฒ๐ป๐๐ผ ๐ฑ๐ผ ๐ฐ๐๐๐๐ผ ๐ฑ๐ฎ ๐พ๐๐ฒ๐ฟ๐. O Bigquery armazena os dados em ๐ณ๐ผ๐ฟ๐บ๐ฎ๐๐ผ ๐ฐ๐ผ๐น๐๐ป๐ฎ๐ฟ. Ou seja, quanto mais colunas com muitos dados nulos na sua consulta, o volume de dados processados aumenta.
Esse รฉ apenas um exemplo de validaรงรฃo que podemos realizar nos nossos dados antes de enviarmos para as camadas superiores (Silver e Gold).
O legal de tudo isso que, alรฉm de ser uma boa prรกtica, vocรช consegue:
-> escalar a aplicaรงรฃo com Dataform (ou dbt) e Airflow
-> manter um controle de versรฃo dos seus ajustes e regras para tratamentos
-> nรฃo impactar as รกreas que estรฃo dependendo dos dados
-> reduzir custos com processamento, armazenamento e tempo das consultas
Fonte Nathรฃ C.
Nenhum comentรกrio:
Postar um comentรกrio