[Música] deixar a cabeça de vocês pensando pro resto do dia Enquanto vocês tomam o choin depois bom quem sou eu bom sou Fernando cedrez eu atuo hoje como especialista em engenheiria de dados na Globo Eu também sou Google developer expert em data Analytics e Google Champion innovators em data Analytics também é já atuo há mais de 15 anos na área de tecnologia entre desenvolvimento analista vários títulos que foram mudando ao longo do tempo né até chegar na engenheria de dados que é onde eu fiquei faz 5 anos que eu tô atuando nessa área mas muita
bagagem que eu trago sempre do da engenheiria de software O que que a gente vai falar aqui hoje né a gente vai falar um pouco sobre qualidade de dados em fluxos de dados no bigquery alguém aqui trabalha com gcp e usa bigquery irônico que é que aqui trabalha na área de dados data Science Ah agora sim engenharia de dados que é que aqui tá na trilha para descobrir a área de engenharia de dados bacana boa área para trabalhar bem bom então o que que eu quero dizer quando que que eu quero dizer quando eu tô
falando em fluxo de dados né né eu quando eu tava fazendo a palestra eu tava pensando né pô fluxo de dados que que é o fluxo de dados é um etl quando eu falo em fluxo de dados aqui eu tô trazendo alguns conceitos e a gente vai passar por eles pra gente entender um pouco e botar todo mundo no mesmo nível Pode ser que assuste um pouco tem vários conceitos que a gente vai passar mas não se preocupem eu vou deixar tudo referenciado aqui e depois vocês podem ver e estudar esses conceitos até para aplicar
no dia a dia de vocês quando falando em fluxo de dados aqui eu tô falando um pouco dessa arquitetura de dados aqui datam Alguém já trabalhou usando datam conhece o conceito ó bacana já tá se popularizando então o que que é o datam o datam foi é um conceito que tem um livro da quem fala zamar Degani né que é a descentralização do dat Lake em vez de ter aquela equipe que cuida de tudo e recebe todas as demandas para trazer o dado para dentro da empresa e concentrar isso no banco de dados Ela traz
uma uma forma de organizar isso e transformar em produto de dados Ela traz esse conceito nesse livro nesse livro ela propõe várias processos para ser colocado e montar times que são habilitadores de produtos de dados que vão construir os produtos de dados então é uma leitura interessante aqui até tá o nome em inglês mas se não me engano a casa do código já trouxe ele em português e tem tem disponível para para comprar É bem interessante para quem trabalha em engenharia de dados ler esse livro então o que que foi o datam né foi a
libertação daquele time que basicamente servia pastel para toda a empresa né ah me dá o dado aqui nessa nessa tabela Ah me dá oqu nessa tela junta esses dois faz um join aqui entre esses dois e me entrega aqui que era aquele túnel sem fim de Ticket de pessoal pedindo para juntar dado fazer transformação sem fim além disso em cima de disso tem um um site que fala propõe o data prod do Canvas que que o data prov Canvas faz ele estrutura o processo pá que imagem meio ruim ã ele estrutura o processo de criação
de um produto de dados então aqui embaixo tem ó datam architecture.com baradat product campas isso aqui tá em inglês né mas ele tem como se fosse um processo tu começa ali no teu data source que tá bem aqui à esquerda e tu vai fazer Endo as etapas e usando essas etapas tu vai no final ter um produto de dados aqui estruturado passando por todos os processos desde envolvimento de onde tu vai tirar o dado para onde tu vai levar o que que tu vai ter de requisitos para esse dado como é que tu vai transformar
ali você não consegue ver tem Framework se você vão usar dat Break Se você usar dbt se você vão usar bigquery dataproc dataflow tem tudo isso aí vocês vão fazer essa jornadinha que nem tem muito popular quando né criação de produto né tem o Canvas lá dat o prod canva para fazer uma Startup para construir uma empresa é basicamente esse mesmo conceito que tem aqui é bem interessante para quem ã tá meio perdido como é que pô como é que eu vou criar um produto de dado aqui que que eu faço uso esse data prod
Canvas Beleza tem data prod Canvas E aí tem uma parte bem específica dele que tá no canto direito ali que é o data crter que que o datac faz é basicamente é o ac ord eu faço muito essa parte do data cont para mim é que nem quem tá construindo uma API em suega alguém já usou suega para fazer uma API para fazer uma interconexão é um contratinho bonitinho tu sabe exatamente que que vai receber de parâmetro de entrada que que vai ser a saída tá tudo resolvido então o data CR vai ser isso tem
várias partes ali tem sla parte de segurança modelagem de dado Quais são os termos quais são os as partes tá tudo ali se vocês conseguirem enxergar ali tem mais explicadinho né mas tá dentro ali então dentro dessa além disso a gente vai entrar num ponto disso que que a gente vai fusar Big query dataform Alguém já ouviu falar em dataform pô sempre os mesmos dois esse tá estranho eu acho que eu já te conheço de algum lugar não sei da onde tem que pegar uma amostragem maior então dataform é uma um produto que tá dentro
do Big queir ele faz parte hoje do bquer ele já foi foi comprado pelo gcp faz desde 2020 ele fo adquirindo Acho que em 2020 pelo gcp e ele propõe que tu consegue construir produtos de dados produtos de não fluxos de dados dentro do bigquery você sair do bigquery tu usa todo motor né do bqu que é o dat Lake seress do gcp então ele ele como dat Lake que ele tem a parte de banco de dados ele tem a parte de salvar os dados né daí tem toda questão lá de de dados e como
isso é guardado e tem a parte de processamento tanto é que quando tu tem um big quir tu usa o Big quir tu tem duas ele é cobrado por duas coisas dependendo do teu tipo de de Billing lá que tu escolheu quando tu começou a usar o projeto né Tem a parte de armazenamento que tá cobrado e a parte de processamento E aí tem modelos e modelos tem dois modelos basicamente então que é que ã o Big query né datalake Facilita muito Tu pode entregar para ele dado e ele vai te entregar ele não vai
te entregar rápido que que chamo de não vai te entregar rápido ele vai te entregar a nível de segundos ele não vai te entregar a nível de milissegundos se tu quiser que ele Te entregue a nível de milisegundos tu vai usar um outro banco de dados mas ele é perfeito para dados analíticos ele é um banco colunar e ele vai te entregar isso muito bem inclusive se tu precisar juntar ele com a uma parte de bi ele tem uma parte que ativa ali e ele vai des entregar Com cash daí ele consegue melhorar essa questão
do da latência que ele tem de entrega mas ele é bem robusto ele não não costuma dar problema então ele tirou da responsabilidade do engenheiro de dados de tá sempre junto com o devops ali subindo o cluster baixar cluster Ah tá muito caro o cluster diminui Pô mas tá demorando demais para processar caiu caiu uma da parte do cluster não é mais problema meu agora é problema do cartão de créd do dono da empresa então juntando isso o que que a gente vai ver hoje Alguém achou muita coisa de contexto aqui para começar a palestra
tá tranquilo sabe tudo bom que que a gente vai ver hoje a gente vai ver uma partezinha ali da parte de contrato que que essa parte faz a gente vai ver a qualidade em dois pontos na hora que a gente tá modelando o dado e na na hora que a gente vai fazer uma checagem dos dados em si então basicamente a gente tá olhando para uma pedacinho do data prod Canvas que tá construindo um produto de dados de datamesh simples falando assim é bem simples o que que a gente vai abordar aqui no data Model
né como é que a gente garante quando a gente tá falando A modelagem de negócio não sei se vocês concordam comigo quando a gente tá fazendo A modelagem de um etl a gente tá aplicando regra de negócio a gente não sai fazendo join filtrando coluna removendo dado aor tá direito porque a gente acha divertido né alguém definiu que aquele dado tinha que est de um certo jeito tinha que est agregado de uma certa forma ou tinha que ter tal sei lá tantas casas decimais não podia ter vírgula aqui Alguém definiu essas regras de negócio e
uma das formas que a gente tem para definir isso né e garantir isso é com uma coisa que é bem difundindo engenharia de software teste unitário né O que que a gente consegue fazer usando o dataform dentro do Big quid a gente consegue definir dataset de entrada vocês vão ver uma coisa que é meio esquisita para quem é engenheiro de dados isso aqui tá escrito em JavaScript desculpa eu abandonei um pouco do Python né eu sei que muita gente aqui não vai gostar mas pelo meno não é Java né gente eh a gente começa aqui
nem escala também tem escala a gente tem aqui a gente eu tô definindo aqui que para um determinado dataset que é minha consulta de entrada que ali é o dat sorce da da minha consulta de entrada eu tô definindo essa determinada entrada e embaixo eu defino para essa determinada entrada aqui eu tenho eu faço um expect eu espero um determinado comportamento uma determinada saída Por que que é isso importante tá lá desenvolvendo Ah acho que não precisa mais faz nessa coluna tu vai lá e remove não mexe nesse arquivo aqui no primeiro momento não mexe
nesse arquivo vai lá e remove uma coluna Ah não preciso essa coluna aqui não acho que não tem mais necessidade eu vou remov se alguém criou isso aqui quando vai rodar o teste unitário Isso aqui vai apitar e dizer para ti Opa tu tá quebrando um dos contratos quando tinha essa entrada aqui tu era para ter essa saída o que que aconteceu e aí a gente usa o dataform por ser um ele usar o JavaScript como um motor de aceleração de reuso de código ele possibilita que tu ele tenha um bundle Zinho que tu consegue
rodar em lha de comando como se fosse um pacote normal do JavaScript lá tu vai no npm baixa ele e usa e esse Band tu consegue fazer algumas instruções no cli uma delas é o teste que ele vai rodar todos os todos esses testes de definições aqui e certificar tá tudo certo ele vai dizer os testes ali ó passou tá tudo OK tudo certo então Em que momento que a gente faz isso aqui isso aqui a gente faz quando tá desenvolvendo né eu vou fazer um um o request vou abrir lá o meu merage request
pro ele vai rodar isso aqui no cli vai fazer as autenticações tem que fazer rodar o o bando do dataform e vai fazer os testes quebrou ã volta atrás na verdade idealmente a gente bota isso aqui num Hook de pré comit Então antes de tu mandar pro PR Brent lá ele já vai testar isso aqui e vai garantir que tá tudo certo não tá certo ele vai xingar aqui foi o caso que eu tava Eu só mudei uma uma data lá que ele tem um tinha um Range de data e ele tá dizendo Exatamente olha
o campo ele esperava um determinado valor mas ele pegou outro valor então ele já vai lá e te aponta Qual é o erro Isso facilita muito quando tu precisa mexer numa estrutura a aqui eu t Eu trouxe um exemplo assim ó de quatro colunas no dat set ali na tabela mas a gente tá acostumado aquele WiFi WiFi WiFi WiFi WiFi wif aí faz a consulta tu mexe em qualquer uma das etapas ali no meio quando tu tá fazendo consulta com SQL tu te Perde é muito fácil de se perder então isso acaba facilitando pra gente
ter alguém que não é a gente enquanto tá programando validando isso é aquele ciclo também de test tá Fiz a modificação testou segue funcionando Ah mas eu preciso mover não faz mais sentido realmente essa coluna vai ter que alterar o cenário de teste aí tando tudo certo Segue o bile Além disso né a gente tem que pode também fazer uma validação se alguém tá acostumado aqui com bquer sabe que ele não tem ele é um banco colunar ele não tem nenhuma restrição de chave primária ou de relação mesmo que a gente consiga fazer os cubos
lá dentro dele ele não tem essas restrições porque não para ele não importa a forul qu ele foi pensado não Não importa isso E aí como é que a gente consegue água água como é que a gente consegue fazer isso no bquer né a gente usa o dataform e aplica umas regras de no código Se vocês forem ver ali é um Opa um código JavaScript é um json basicamente Obrigado dá Não não tá bom obrigado H vocês vão ver ali que o que que eu tô fazendo eu tenho uma parte que eu tô definindo as
assertions para essa tabela que eu tô definindo ali uma um json que que eu tô fazendo ali eu tô dizendo Olha a chave única dessa tabela é esses três essas três colunas nas nas duas colunas wik term eu não posso ter valores nulos e eu tenho também uma condição meu time stamp tem que ser maior que 1eo de Janeiro de 2024 então eu consigo aplicar no momento que eu tô desenvolvendo a eu tô declarando minha meu minha tabela eu consigo definir isso aqui eu consigo definir essas condições que o banco não me traria mas o
dataform garante como é que o dataform vai garantir dataform ele usa o o JavaScript e ele vai construir tdo isso aqui em SQL basicamente ele vai acelerar isso eu consigo declarar isso só num Jon e ele transforma isso aqui em SQL e o skl que roda lá no lá no Big quid Então não preciso construir isso em SQL facilitando assim que isso aqui vai gerar um monte de regra um monte de condição quase como se fosse aquelas procedures agendadas que a gente tinha no em outros bancos né então consigo construir essas condições facilitando essas validações
bom além disso né Isso tá mais na hora que eu tô desenvolvendo né essas partes de modelagem então eu coloco essas condições quando eu tô modelando meu meu banco porque no dataform a gente tem várias coisas que a gente pode fazer basicamente são quatro funções a gente pode fazer uma operação que é qualquer coisa em SQL então tudo que tu consegue fazer no Big query com SQL tu consegue fazer usando uma operação que que é uma operação por exemplo eu consigo adicionar uma uma coluna eu consigo remover uma coluna tudo isso eu consigo fazer usando
SQL no no bigquery eu consigo ã mudar uma descrição eu tenho toda a parte de ddl feita em SQL no Big queer eu consigo fazer várias coisas e tem Inclusive a parte de metadados E aí né O que que a gente tá falando aqui quando a gente quer garantir qualidade prometo Esse é o único momento que vou falar de a na apresentação né hoje quem é quem aqui tá fazendo algum trabalhando com geria de dados que no final do pipeline vai chegar no maa vai chegar no no modelo então a gente tá entregando a a
base se a gente errar quem vai se virar depois a cientia de dados para fazer direito mas a gente tem que ter algumas características isso aqui na literatura tá muito indefinida é que nem quando a gente fala engenheria de dados que a gente tem os começou lá com os três V eu acho que hoje em dia já lá já tá lá pelo sete vezes não sei a última vez que eu tiido eu acho que tava em sete vezes né variancia velocidade e já esqueci então tem várias características de um dado de qualidade né eles têm
que ser abundantes eu não consigo treinar um modelo com 50 amostragens então eu tem que ter uma base relevante uma quantidade relevante né ele tem que ser representativo ele tem Quem que tá eu não posso pegar uma amostragem que olhe só por um viés né se se eu tô trabalhando um com pessoas eu ten que ter uma representatividade no meu modelo porque são pessoas são diferentes e tem vários aspectos que compõem o comportamento social de uma pessoa eu tenho que Pregar pegar esses várias Vertentes para trazer não posso focar num grupo senão meu modelo vai
acabar invado então eu tenho que trazer essa questão de representatividade pro pro meus dados também eu tenho que ter essa consciência eles T que ser precisos né eu tenho que ter um um dado minimamente ã pronto e com com as características daquilo que eu tô fazendo né eles tê que ter eles T que ser consistentes eh ele tem que estar consistente com aquilo que ele se propõe eu não vou poder ter uma que acontece muito quem é que já viu data descrita em Campo de texto lá direto no banco né não é date time não
é time stamp é vable string lá depois a gente que se vira para transformar isso então tem que tá o dado certo com a coluna do tipo certo isso Vai facilitar a nossa vida na hora de de criar modelos e depois construir isso aqui né eles têm que estar completos que não sei se alguém aqui não sabe mas para treinar o modelo os dados T que ser numéricos então tem a parte de encode de dados que tu faz e tu não pode ter normalmente ele vai te vai te serar um modelo ruim se os dados
não tiverem completos até tu não às vezes tu não consegue nem fazer os matchs necessários se eles não tiverem com todas as colunas que tu precisa para trinar o modelo completas normalmente aqui Ah chega chega a se perder várias e amostragens do dado Quando tu vai chegar nessa parte que tu precisa fazer a limpeza dos valores que estão nulos eles têm que ser relevantes eles têm que eu não adianta eu tentar fazer um sei lá um modelo de crédito usando a nota escolar da pessoa eles T que ser relevante pro problema que tu tá tentando
resolver e eles têm que tá limpo né a gente a gente que acaba fazendo isso preparando dado ou pelo menos deveria tentar fazer isso essa parte de limpeza de dados e como é que a gente faz uma das partes de de dados quando a gente tá rodando um pipeline não não é só mandar dado pra frente fazer a transformação a gente pode tirar muito insumo daquilo que a gente tá fazendo ali com os dados que são a parte metadados por exemplo quando a gente pensa na engenheira de software o log é um metadado ele tá
contando uma história ali pra gente a gente consegue tirar insites ah se o usuário entrou em tal página se o usuário fez tal tal ação um pipeline de dados também consegue fazer isso e a gente tem como tirar isso no próprio Big query a gente tem antigamente eram umas tabelas meio obscuras com underscore no começo do nome mas hoje em dia elas já tão lá que chamam information esima então tu tem dentro da região do teu banco né porque o o bigil ele é alocado por região então Estados Unidos Europa eu não sei se tem
aqui no Brasil não sei se ele tá já tem região e daí ele tem as tabelas aliem information esima tu consegue pegar várias coisas aqui nesse exemplo a gente tá pegando a parte de colunas eu tô olhando pra parte de metadado de colunas e o que que eu tô fazendo aqui eu tô garantindo que essa coluna ela ten a descrição Por que que a descrição é importante porque lá no conceito do datam tu vai criar um produto de dado e esse dado vai vai entrar no catálogo de dados e ele pô não adianta eu ter
um um produto de dados que ele não tem uma descrição de do que ele faz que que significa aquela coluna às vezes não é tão Óbvio quanto a do usuário Então tem que ter uma descrição então o que que eu tô fazendo aqui você pode ver na primeira linha dizendo Ô fazendo uma operação lá no dataform a tem operação tem o publish o publish É para criar uma tabela tem oert que é para fazer uma validação e acho que tem mais operação que agora não me lembrando e o que que essa operação faz ela faz
uma consulta no information Skema vendo se a descrição não tá nula das colunas e ela salva ele faz o select mas ele faz o insert tudo numa tabela que eu já tinha criado Então essa tabela que ela tá fazendo salvando todos os datasets todas as colunas que estão com a descrição nula mas a gente a gente vai usar isso e aqui eu tô propondo uma outra operação que são os labels os labels para quem não sabe eu consigo fazer marcações dataset tabela coluna não não chega nesse nível mas dataset tabela para quê que esses labels
depois no gcp tu consegue usar para fazer uma rabilidade em Billing em eh para saber assim ó Quanto custa um produto de dados eu através dos Labes eu consigo lá no Billing ah todo tudo que tava marcado com esse Label faz parte desse produto de dado então eu consigo saber o custo disso E aí o que que eu tô fazendo aqui eu tô fazendo fazendo aquele mesmo processo de fazer um insert de uma busca no information esima só que aqui eu tô olhando pro pra parte de esima que é o dataset no Big esima quer
dizer o dataset e salvando todos os os que não tem Label numa num coluna de ddl deles lá que é o que é a coluna que diz como é que cria aquele dataset então eu salvei essas informações ali salvei nessa tabela de met dataset metadata Quality no check event aí o que que como é que eu vou fazer para validar esses dados eu poderia direto usando dataform ter feito uma s e ele já metaria o erro dataform quando faz um asser e vai rodar o vai rodar aquele fluxo de dados se o asserson falha ele
já já para o processo por ali então não vai em frente só que eu gosto de salvar essas informações para saber por que ocorreu o erro até porque depois vocês vão conseguir ver aqui no no nos slides que ele não é muito preciso no que ele tá tá dizendo então o que que eu faço eu faço aqui ó na na linha um ali ó eu tô fazendo mass então ela vai validar asos últimas medições de metadados e o que que ele vai vai fazer ele vai fazer uma consulta com select aquela metadata Quality check events
ã aí ele tá pegando a última extração que teve né que então todo aqueles que eu tinha definido para fazer salvar os datasets salvar os metadados ele for foram falar nessa tabela e ele vai rodar isso e vai me dizer o que que o acert faz é um pouco contraintuitivo mas é assim se ele trouxer registros é porque falhou a tua condição falhou se ele não trouxer registro é que tá tudo certo com a tua validação então eu tô fazendo esse acert para validar a parte de metadados aqui vocês não conseguem ver pelo menos eu
não tô conseguindo ver aqui você não conseguem ver mas tem aqui no na table name No colum Name tá no Então quer dizer que não tem lá o tipo de de metadado ó não tem Label e não tem description ali em alguns casos então quando eu rodo ele vai falhar que ele vai trazer registro e é justamente que ele tá dizendo aqui ó eu rodei essa validação eh ele espera sempre zero rows espera não receber nenhum R mas aqui ele trouxe e falhou Então se vocês olhar o fluxo lá do pipeline ele falhou e parou
lá a validação e eu tomaria ação eu poderia ter feito direto sim eu poderia ter feito direto direto asser direto direto lá na na tabela de de Information Skema metadados eu não fiz isso Por quê é só eu né voltar lá eu tenho tudo salvo aqui vejo quando foi eu botei um time stamp ali eu vejo Quando foi a última estração vejo aqui corrijo que eu tenho que corrigir vou lá no meu vou lá na parte de definições de de tabelas né e datasets corrijo e já tá a próxima vez rodar vai rodar tudo certo
vai fazer habilitação vai passar então assim eu tô garantindo a parte metadados que são é aquela coisa que não parece que não é importante quanto entregar o dado no final mas para construir um produto de dados e ter ele para poder botar numa prateleira numa lojinha para alguém usar e sair usando esse produto de dados precisa pra pessoa entender o que que é o produto de dados E aí outras coisas que a gente pode validar que aí já são mais em tempo de execução mesmo do pipeline e fazer algumas garantias por exemplo como é que
eu garanto dentro do meu minha tabela valores se tem valores nulos ou não se eu posso aceitar isso ou não Ah aqui eu tô fazendo o acert direto até usei aquela tabela lá que tá com os cheques de eventos e eu tô fazendo uma consulta e eu defini alum uma coisa olha eu posso ter no máximo 99,999% de de dados nulos então eu faço um countif se tiver nulo aí tô contando o total de registros divido vezes 100 divididos e arredondando para dois para ver qual é a minha porcentagem de valores nulos que eu tenho
naquela tabela e aqui embaixo eu tô fazendo lá select e e tem uma condição ali ó porcentagem maior igual a 10 então quer dizer se eu tiver ã mais de 10% de valores nulos Isso aqui vai falhar como validação porque vai vai me trazer registro se tiver abaixo não não vai me trazer registro por que que eu uso isso aqui eu coloco no meu pipeline às vezes para validar dá antes de gastar com processamento de dados eu pego rodo isso contra a minha base de Raw minha base de origem rodando assim eu já valido pô
não posso nem processar esse dado porque ele tá com a qualidade baixa ou então eu rodo esse no final do meu no no meu processamento para saber eu tô entregando um dado que tem uma qualidade boa ou tem alguma coisa que tá errada no meu processamento eu posso criar também dataset padronizado se eu mudei alguma coisa no meu meu processo ali meu pipeline minhas transformações PR Silver Gold seja lá como é que vocês estão chamando e colocar essas validações no final do pipeline inclusive el botar no meio no datafa ele vai parar a execução Aonde
tu pedir para ele parar outra coisa que que é bom validar e aqui at não vou entrar até por questão de tempo poderia fazer várias validações ã se eu tenho histórico por exemplo já de extração de como é que que é meu comportamento padrão eu posso colocar um no meu pipeline desvio o padrão eu posso dizer ah eu aceito que determinado sei lá que o meu número de usuários logados que eu tenho no nos registros lá ele tem um desvio padrão de 10% baixo para cima eu consigo expressar isso usando skq então eu vou conseguir
fazer essa mesma validação esse mesmo acerte e aqui o exemplo que eu tô trazendo também a questão de volumetria você pode ver que é bem simples também é basicamente de fazer o acero né e aqui eu tô validando ã Qual é a volumetria de dados nulos né eu tô contando ali se tiver mais que se tiver algum dado nulo ele vai dar erro que ele vai retornar ali e vai parar meu processo era justamente isso que eu quia isso aqui eu quero garantir que não vai ter uma volumetria de dado nulo eu posso fazer isso
de várias formas ã vários tipos de validação eu poderia fazer tipo freshness porque eu lá na por exemplo na minha tabela de metadados eu sei quando que foi a última vez que foi atualizado o meu dado eu posso rodar isso aqui num determinado horário se tiver com intervalo sei lá mais de 12 horas que foi atualizada a tabela eu posso disparar um alarme de assertion que Opa então eu consigo fazer dentro do próprio bigquery sem usar outra outras ferramentas monitorar e ã ter a qualidade do dado ali eu não preciso Sei lá talvez construir um
dashboard para ver isso ou então eu posso justamente usar essas esses dados esses metadados que eu tô gerando aqui no meu pipeline para construir um um dashboard de operações e tá ali já tudo pronto extraído e aqui eu tô usando o próprio banco que ele tá rodando o etl rodando o seu processo de construção do produto de dados para me entregar as informações que eu preciso para garantir que eu tô entregando o produto de dados com qualidade e aí já encaminhando pro pro final né que que eu faço agora eu jogo lii para vocês aqui
um monte de conceito um monte de coisa que eu tô fazendo e disse para vocês que funciona funciona eu sei que eu não não trouxe não tive a coragem do Sérgio ali de vi aqui fazer Live code eh quem sabe um dia eu aprendo a fazer isso mas depois no final tem que que eu faço agora né tem que começar a pensar né a gente vai definir eh não sei se vocês Ficou claro para vocês mas tem duas etapas tem uma etapa ali que vai rodar no C que vai rodar quando tá desenvolvendo e preparando
esse pipeline para rodar e outra etapa que vai rodar no tempo de execução do pipeline junto com pipeline ou até às vezes separado do pipeline porque tem alguns acess se tu botar e ele tiver no meio do pipeline ele vai parar o pipeline ali isso tu faz muito quando eu preciso garantir que tem algumas métricas de qualidade ali aí eu boto os acessos no meio do pipeline e eu quebro quebro intencional m para poder ajustar isso aí e depois eu reprocesso esse dado ou então eu deixo só para fazer um relatório da qualidade do dado
eu faço dois fluxos faço o fluxo de validação e faço o fluxo do etl e eu separo isso sem quebrar então pensar que que tem que ser definido que que tem que ser rodado em tempo de execução que tem que ser rodado em tempo de programação né definir h o que que vai ser né Essa questão de executado na ingestão na transformação de dados se paro então o queci o que é do da parte do pipeline em si construir os testes unitários porque às vezes tu não constrói um pipeline sozinho tem mais de uma pessoa
ali e os testes unitários vão garantir até para quem vier D manutenção às vezes tu foi lá fez um produto de dados sei lá seis meses depois alguém te pergunta ah dá para incluir essa Isso aqui vai precisar de mais seis meses para relembrar que tu tinha feito de contexto para incluir aquilo com teste unitário garante tu mexer lá se tiver uma coisa que vai quebrar ele já vai te te garantir isso né definir Quais as condições para coluna isso aqui às vezes até é muito não nesse primeiro momento que são aquelas condições lá que
tu tá quando tu tá construindo a tua tabela mas talvez aqui nas definições de métricas de qualidade isso aqui é muito bom esse é um bom momento também para tu trazer junto o cliente quem vai consumir esse dado seja um DS seja um machine learning engineer quem vai para pô o que que eu preciso garantir para que tu na hora de a treinar o modelo esse dado tá bom suficiente para ser treinado por quanto mais cedo a gente descobrir que tem um erro no pipeline que tem um erro na ingestão que tem um erro na
transformação de dado menos dinheiro a gente vai gastar porque a gente pode parar inclusive o processamento do dado e nem chegar se alguém já treinou um modelo aqui sabe que às vezes demora 8 15 horas 12 dias para treinar o modelo e chega no final hum meu dado não tava bom o suficiente e deu erro bom então para quem achou isso bacana isso legal Aqui tem um QR Code que tem lá no no github tá o código lá eu só acho que não tá na Brent Main eu acho que tá na Dev as coisas ainda
mas tá lá então uma das Brand vai tá lá com todos os códigos essas tá tudo separadinho lá parte metadado parte teste tá tudo ali bonitinho e Se alguém quiser seguir essa conversa trocar uma ideia sobre isso falar sobre outras questões sobre produtos de dados sobre gcp processamento de geria de dados em Cloud Big query parte Analytics também só conectar comigo aqui no Linkedin se alguém não quiser que volte O slide aqui para pegar o gid Hub esse