Translate

Mostrar mensagens com a etiqueta Data Pipeline. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Data Pipeline. Mostrar todas as mensagens

quarta-feira, 4 de maio de 2022

Engenharia de Dados para um Programador COBOL Padawan

 

Bellacosa Mainframe e a engenharia de dados

☕ Um Café no Bellacosa Mainframe

Engenharia de Dados para um Programador COBOL Padawan

Você Não Está Mudando de Profissão. Está Descobrindo que Sempre Trabalhou com Dados.

"Toda geração acredita que inventou a Engenharia de Dados. Quem passou décadas desenvolvendo em COBOL sabe que mover, transformar, validar e proteger dados sempre foi o coração do Mainframe."


Se existe uma palavra que domina o mercado de tecnologia atualmente, ela é Dados.

Data Engineer.

Data Lake.

Data Warehouse.

Data Mesh.

Data Fabric.

Big Data.

Analytics.

Machine Learning.

Inteligência Artificial.

Para quem acompanha as vagas do LinkedIn, parece que surgiu uma profissão completamente nova.

Mas será que surgiu mesmo?

Se você é um Programador COBOL Padawan, talvez esteja olhando para esse universo pensando:

"Isso não é para mim."

Ou talvez pior.

"Vou precisar esquecer tudo o que aprendi nos últimos anos."

Nada poderia estar mais distante da realidade.

Na verdade, existe uma notícia excelente.

Boa parte da Engenharia de Dados nasceu exatamente nos ambientes onde o COBOL reina há mais de sessenta anos.

Hoje vamos tomar um café e descobrir por que um programador COBOL possui muito mais vantagens para aprender Engenharia de Dados do que imagina.


O maior equívoco sobre Engenharia de Dados

Quando alguém fala "Data Engineer", muitas pessoas imaginam imediatamente alguém escrevendo Python.

Outros imaginam Spark.

Outros imaginam nuvem.

Outros imaginam Inteligência Artificial.

Tudo isso faz parte da profissão.

Mas nada disso explica sua essência.

A verdadeira Engenharia de Dados pode ser resumida em uma única pergunta:

Como garantir que a informação certa chegue ao lugar certo, no momento certo, com qualidade e segurança?

Perceba.

Não estamos falando de linguagem.

Não estamos falando de banco de dados.

Não estamos falando de cloud.

Estamos falando de engenharia.

E engenharia sempre existiu.


O COBOL sempre foi uma linguagem de dados

Vamos imaginar um programa extremamente simples.

READ CLIENTE

IF STATUS = "A"

   COMPUTE LIMITE = SALARIO * 3

   WRITE CLIENTE-APROVADO

END-IF

O que esse programa faz?

Não desenha telas.

Não cria animações.

Não faz gráficos.

Ele faz algo muito mais importante.

Transforma dados.

Exatamente o trabalho de um pipeline moderno.

Hoje essa transformação poderia estar escrita em:

Python.

Spark.

SQL.

Scala.

Mas o conceito permanece exatamente o mesmo.

Entrada.

Transformação.

Saída.


Um pipeline moderno não é muito diferente de um Job Batch

Vamos comparar.

No Mainframe

Arquivo VSAM

↓

Programa COBOL

↓

SORT

↓

IDCAMS

↓

DB2

↓

Relatório

Agora veja um ambiente moderno.

API

↓

Python

↓

Spark

↓

Data Lake

↓

Data Warehouse

↓

Dashboard

Mudaram as ferramentas.

O fluxo continua praticamente idêntico.

Receber.

Transformar.

Validar.

Persistir.

Consumir.

É por isso que muitos profissionais de Mainframe aprendem Engenharia de Dados com enorme facilidade.

Eles já entendem o processo.

Só precisam aprender novos nomes.


Nível 1 — SQL e Linux

Toda jornada começa aqui.

Algumas pessoas desprezam SQL.

Grave isto.

Quem domina SQL domina dados.

SQL continua sendo a língua universal da informação.

Não importa se você usa:

Oracle

SQL Server

PostgreSQL

MySQL

Db2

Snowflake

BigQuery

Databricks

Spark SQL

Todos conversam através de SQL.


No Linux acontece algo parecido.

Quem trabalha com z/OS talvez ache curioso.

Mas muitos comandos Linux lembram bastante utilitários clássicos do Mainframe.

Por exemplo.

Localizar informações.

Linux

grep CPF clientes.txt

Mainframe

SORT INCLUDE

Contar registros.

Linux

wc -l arquivo.txt

Mainframe

ICETOOL COUNT.

Filtrar.

Ordenar.

Mesclar.

Tudo isso já fazia parte do universo Batch décadas antes do Big Data existir.


Nível 2 — Programação

Aqui normalmente aparece Python.

Mas poderia ser Java.

Scala.

Go.

Até mesmo COBOL.

Sim.

COBOL continua sendo usado em pipelines modernos.

Principalmente quando o dado nasce no Mainframe.

O objetivo agora não é consultar dados.

É automatizar processos.

Imagine.

Você precisa:

baixar arquivos

consumir APIs

descompactar

validar

gerar logs

carregar banco

enviar e-mail

Tudo isso exige programação.

Não importa a linguagem.

O importante é pensar em automação.


O primeiro choque: APIs

Muitos programadores COBOL perguntam:

"O que é uma API?"

A resposta mais simples é:

Uma API é um programa conversando com outro programa.

Só isso.

Você já fazia isso.

CICS fazia isso.

MQ fazia isso.

IMS fazia isso.

A diferença é que hoje a conversa normalmente acontece usando:

HTTP

JSON

REST

GraphQL

gRPC

O conceito continua exatamente igual.


Nível 3 — Spark

Aqui começa a diversão.

Imagine que seu programa COBOL processa:

5 milhões de registros.

Funciona muito bem.

Agora imagine:

5 bilhões.

Não existe CPU suficiente.

Surge então o processamento distribuído.

Em vez de uma máquina.

Cem máquinas.

Ou mil.

Cada uma processando uma pequena parte.

Esse é o Spark.

Ele divide o problema.

Depois reúne os resultados.

É como um enorme SORT distribuído.


Spark não substitui SQL

Esse é outro mito.

Na prática.

Boa parte do Spark moderno utiliza SQL.

Ou Spark SQL.

Ou DataFrames.

Ou seja.

O conhecimento adquirido anteriormente continua sendo utilizado.

Nada é perdido.

Tudo evolui.


Nível 4 — Cloud

Aqui muita gente se assusta.

Parece outro universo.

Na verdade, não é.

Cloud é apenas um novo datacenter.

Só que alugado.

Imagine um CPD gigantesco.

Você liga um servidor.

Usa.

Desliga.

Paga apenas pelo tempo utilizado.

É isso.

Claro.

Existem centenas de serviços.

Mas a ideia continua simples.

Infraestrutura sob demanda.


O que muda para o Engenheiro de Dados?

Antes.

Você tinha um servidor.

Agora possui dezenas.

Centenas.

Tudo automatizado.

Surge então uma nova preocupação.

Escalabilidade.

Monitoramento.

Custos.

Segurança.


Nível 5 — Inteligência Artificial

Chegamos ao assunto da moda.

Todo mundo quer trabalhar com IA.

Mas poucos entendem uma verdade simples.

A IA depende completamente da Engenharia de Dados.

Imagine um modelo treinado com:

CPFs inválidos.

Datas erradas.

Valores duplicados.

Clientes repetidos.

O resultado será desastroso.

Existe uma frase muito antiga.

Garbage In.

Garbage Out.

Entrou lixo.

Sai lixo.


Por isso.

Antes da Inteligência Artificial.

Existe um profissional invisível.

O Engenheiro de Dados.

Ele garante que os dados sejam:

limpos

organizados

consistentes

históricos

auditáveis

confiáveis

Sem isso.

Nenhum ChatGPT.

Nenhum Copilot.

Nenhum modelo funciona adequadamente.


Mas existe algo ainda mais importante...

A imagem que inspirou este artigo mostra uma sequência de tecnologias.

Ela está correta.

Mas incompleta.

Porque existem conhecimentos que nunca saem de moda.


Modelagem de Dados

Se existe um superpoder do programador COBOL, é este.

Quem desenvolveu sistemas bancários conhece:

Cliente.

Conta.

Agência.

Contrato.

Movimentação.

Parcela.

Histórico.

Relacionamentos.

Tudo isso é modelagem.

Sem um bom modelo.

Nem Spark salva.

Nem IA resolve.

Nem Cloud ajuda.


Qualidade dos Dados

Imagine um cadastro onde o mesmo cliente aparece quinze vezes.

Ou um saldo negativo impossível.

Ou datas inexistentes.

Quem resolve?

Não é a IA.

É engenharia.

Validação.

Regras.

Auditoria.

Consistência.

Exatamente como fazemos há décadas em sistemas críticos.


Observabilidade

No Mainframe existe SDSF.

SMF.

RMF.

Logs.

Mensagens JES.

Abends.

Tudo isso existe para observar o ambiente.

Hoje fazemos exatamente a mesma coisa.

Só mudaram as ferramentas.

Monitoramos:

pipelines

latência

falhas

volumes

distribuição

anomalias

A filosofia continua igual.

Nunca confiar.

Sempre medir.


Governança

Poucos assuntos cresceram tanto.

Hoje toda empresa pergunta:

Quem alterou esse dado?

Quem acessou?

Quem apagou?

Quando?

Por quê?

No Mainframe isso sempre foi levado muito a sério.

RACF.

Auditoria.

Perfis.

Permissões.

Hoje apenas ampliamos esse conceito.


Versionamento

Você conhece Endevor?

ISPW?

ChangeMan?

Parabéns.

Você já trabalhou com gestão de versões antes mesmo do Git existir.

Hoje usamos GitHub.

GitLab.

Bitbucket.

Mas o princípio permanece.

Nunca alterar produção diretamente.

Sempre controlar mudanças.


DataOps

Assim como surgiu DevOps.

Hoje existe DataOps.

Automatizar testes.

Validar qualidade.

Executar pipelines.

Fazer deploy.

Documentar.

Monitorar.

Tudo automaticamente.

Isso reduz erros humanos.

Aumenta confiabilidade.

E acelera entregas.


O conhecimento mais importante continua sendo o negócio

Imagine dois profissionais.

O primeiro conhece:

Spark.

Kafka.

Snowflake.

Airflow.

Terraform.

Kubernetes.

Python.

Databricks.

O segundo conhece apenas SQL.

Mas entende perfeitamente:

crédito

seguros

contabilidade

tributação

previdência

Qual deles gera mais valor?

Na maioria das empresas.

O segundo.

Porque tecnologia resolve problemas.

Mas somente quem entende o negócio consegue resolver o problema correto.


O programador COBOL já possui metade da jornada concluída

Esse talvez seja o maior segredo da Engenharia de Dados.

Profissionais de Mainframe normalmente já dominam:

✔ Processamento Batch

✔ Integridade transacional

✔ Bancos relacionais

✔ Modelagem

✔ Performance

✔ Grandes volumes

✔ Segurança

✔ Auditoria

✔ Sistemas críticos

✔ Dados corporativos

O que falta aprender?

As ferramentas modernas.

E ferramentas podem ser aprendidas.

Princípios levam anos para serem construídos.


A verdadeira evolução

Muitos imaginam a carreira assim.

COBOL

↓

Python

↓

Spark

↓

Cloud

↓

IA

Na realidade.

Ela é muito mais parecida com isto.

                 Negócio
                     │
      ┌──────────────┼──────────────┐
      │              │              │
 Modelagem     Engenharia      Arquitetura
      │              │              │
      ├──────────────┼──────────────┤
      │              │              │
    SQL         Programação      Segurança
      │              │              │
      ├──────────────┼──────────────┤
      │              │              │
 Spark        Cloud         Observabilidade
      │              │              │
      └──────────────┼──────────────┘
                     │
                 DataOps
                     │
               Inteligência Artificial

Observe que a IA aparece quase no final.

Isso não é coincidência.

Ela depende de tudo o que veio antes.


Um café antes de voltar ao código...

Existe uma frase muito comum nas redes sociais:

"Aprenda IA."

Eu faria uma pequena correção.

Aprenda Engenharia.

Porque tecnologias mudam.

Spark um dia será substituído.

Novos bancos aparecerão.

Novas linguagens surgirão.

Novos frameworks nascerão.

Assim como Clipper deu lugar a outras soluções, e como muitas ferramentas de ETL evoluíram ao longo das décadas, o ecossistema continuará mudando.

Mas alguns princípios permanecem praticamente imutáveis desde os primeiros sistemas corporativos:

  • Dados precisam ser confiáveis.

  • Processos precisam ser previsíveis.

  • Sistemas precisam ser auditáveis.

  • Arquiteturas precisam ser sustentáveis.

  • Segurança nunca é opcional.

  • O negócio deve orientar a tecnologia, e não o contrário.

É exatamente por isso que um Programador COBOL não está começando do zero ao olhar para a Engenharia de Dados. Pelo contrário: ele já carrega uma bagagem construída em ambientes onde disponibilidade, consistência e integridade sempre foram requisitos inegociáveis.

No fim das contas, a maior transformação não é aprender Python, Spark ou Cloud. É perceber que o trabalho sempre foi o mesmo: transformar dados em informação confiável para apoiar decisões.

As ferramentas evoluem.

Os nomes mudam.

As interfaces ficam mais modernas.

Mas a boa engenharia continua sendo reconhecida pelos mesmos atributos de décadas atrás: simplicidade, clareza, desempenho, confiabilidade e foco no problema de negócio.

Então, Padawan, da próxima vez que ouvir alguém dizer que Engenharia de Dados é "uma profissão completamente nova", sorria, tome mais um gole do seu café e lembre-se: os mainframes já movimentavam bilhões de registros por dia quando muitos dos conceitos modernos ainda nem tinham nome.