☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

Mostrar mensagens com a etiqueta Analytics. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Analytics. Mostrar todas as mensagens

quarta-feira, 18 de fevereiro de 2026

🔥 NumPy: O “PACKED DECIMAL” do Python que Vai Explodir sua Cabeça COBOL

 

Bellacosa Mainframe apresenta a biblioteca matematica do Python

🔥 NumPy: O “PACKED DECIMAL” do Python que Vai Explodir sua Cabeça COBOL

Se você veio do mundo COBOL, onde cada byte importa, cada campo tem propósito e cada processamento precisa ser eficiente… então prepare-se: você está prestes a conhecer o coração matemático do Python — a biblioteca NumPy.

E sim… ela é MUITO mais próxima do seu mundo do que você imagina.


☕ O choque de realidade: Python puro vs processamento “mainframe-like”

No COBOL, você já sabe:

  • COMPUTE é rápido
  • PERFORM VARYING é controlado
  • Estruturas são previsíveis

Agora veja isso no Python “cru”:

lista = [1, 2, 3, 4]
resultado = [x * 2 for x in lista]

Funciona… mas não é exatamente eficiente nível mainframe, certo?

Agora entra o NumPy:

import numpy as np

array = np.array([1, 2, 3, 4])
resultado = array * 2

💥 BOOM.

Você acabou de fazer processamento vetorial, algo muito mais próximo de um:

“loop implícito otimizado em assembler por baixo dos panos”

Sim… isso cheira a z/Architecture.


🧠 Origem: quando cientistas reinventaram o “processamento batch”

O NumPy nasceu oficialmente em 2006, mas sua raiz vem de duas bibliotecas:

  • Numeric
  • Numarray

Ambas criadas para resolver um problema clássico:

“Python era bom… mas lento para matemática pesada”

A fusão virou NumPy — e trouxe um conceito poderoso:

👉 Arrays homogêneos de alta performance

Se você pensa em:

  • tabelas VSAM
  • buffers de memória
  • áreas de trabalho

Você já entendeu metade do NumPy.


⚙️ O conceito que muda tudo: ndarray

O coração do NumPy é o ndarray (N-dimensional array).

Pense nisso como:

COBOLNumPy
OCCURSarray
PIC 9(5)V99dtype=float64
Tabela indexadandarray
Área contígua memóriabuffer otimizado

Exemplo:

import numpy as np

dados = np.array([10, 20, 30])
print(dados * 2)

Saída:

[20 40 60]

Sem loop explícito. Sem PERFORM.

👉 Isso é chamado de vectorization.


🚀 Performance: aqui mora o espírito do mainframe

NumPy é rápido porque:

  • Escrito em C (baixo nível)
  • Usa operações vetorizadas
  • Evita overhead de loops Python

📌 Tradução para o mundo COBOL:

“Você está rodando um SORT interno com exit em assembler… sem escrever assembler.”


🔍 Curiosidades que todo coboleiro vai amar

🧩 1. NumPy evita loops como você evita GO TO

Loops em Python são lentos.

NumPy resolve isso com operações vetoriais:

a = np.array([1,2,3])
b = np.array([4,5,6])

print(a + b)

Resultado:

[5 7 9]

👉 Isso é equivalente a um loop automático altamente otimizado.


🧠 2. Broadcasting: o PERFORM invisível

a = np.array([1,2,3])
print(a + 10)

Resultado:

[11 12 13]

Sem loop. Sem stress.

👉 O NumPy “espalha” o valor automaticamente.


🏎️ 3. Memória contígua = performance absurda

Diferente de listas Python, NumPy usa:

  • memória contínua
  • tipos fixos

👉 Isso lembra:

  • buffers de I/O
  • áreas de WORKING-STORAGE bem definidas

🧪 Exemplos práticos (modo COBOL mindset ON)

📊 Soma de um dataset

COBOL:

PERFORM VARYING I FROM 1 BY 1 UNTIL I > 100
ADD VALOR(I) TO TOTAL
END-PERFORM

NumPy:

np.sum(array)

💥 1 linha. Otimizado. Vetorizado.


📈 Média (sem reinventar roda)

np.mean(array)

👉 Nada de controle manual. Nada de variáveis acumuladoras.


🔄 Transformação em massa

array * 1.15

👉 Isso é literalmente um:

“REDEFINES aplicado em lote com COMPUTE automático”


🧠 Easter Eggs e detalhes escondidos

🥚 1. O tipo float64 é padrão

👉 Isso significa precisão alta — quase como trabalhar com campos bem definidos no COBOL financeiro.


🥚 2. Você pode acessar o “layout de memória”

array.strides

👉 Sim… você pode ver como os dados estão distribuídos na memória.

Isso é nível:

“debug de storage layout no mainframe”


🥚 3. NumPy conversa com C diretamente

👉 Isso permite integrar com código de baixo nível.

Ou seja:

Python vira quase um “COBOL com superpoderes científicos”


⚔️ NumPy vs Python puro (visão mainframe)

AspectoPython puroNumPy
PerformanceBaixaAltíssima
TipagemDinâmicaEstática (dtype)
MemóriaFragmentadaContígua
LoopManualVetorizado
EstiloScriptCientífico / batch-like

🌍 Onde isso entra na sua evolução?

Se você domina COBOL, NumPy é uma ponte natural para:

  • 📊 Data Science
  • 🤖 Machine Learning
  • 📈 Analytics de alto volume
  • 🧮 Simulações financeiras

E mais importante:

👉 Você não começa do zero
👉 Você reaproveita seu mindset de performance


🎯 Conclusão: o despertar do coboleiro moderno

NumPy não é só uma biblioteca.

É uma mudança de paradigma.

É quando você percebe que:

“O Python pode ser tão performático quanto um batch bem escrito — se você usar as ferramentas certas.”

E aqui vai a provocação final:

🔥 Se COBOL é o rei do processamento estruturado…
🔥 NumPy é o motor matemático que pode levar você além do mainframe.


domingo, 29 de setembro de 2024

Data Mining vs Data Analytics: Como um Programador Júnior Pode Transformar Dados em Inteligência de Negócios (e por que isso também importa no IBM Z)

 

Bellacosa Mainframe data mining versus data analytucs

☕ Um Café no Bellacosa Mainframe

Data Mining vs Data Analytics: Como um Programador Júnior Pode Transformar Dados em Inteligência de Negócios (e por que isso também importa no IBM Z)

"No mundo da tecnologia, dados são o novo petróleo. Mas petróleo bruto não move um carro. Primeiro ele precisa ser refinado. Com dados acontece exatamente a mesma coisa."

Quando alguém começa sua carreira em desenvolvimento de software, principalmente no universo do IBM Mainframe, costuma imaginar que seu trabalho será apenas escrever programas COBOL, criar JCLs, consultar DB2 ou desenvolver transações CICS.

E durante algum tempo isso realmente acontece.

Mas, conforme você evolui, percebe uma verdade importante:

Programadores não desenvolvem apenas software. Desenvolvem conhecimento.

Toda aplicação corporativa existe por um motivo: gerar, armazenar ou consumir dados.

E é justamente aí que entram dois conceitos que aparecem cada vez mais em entrevistas, projetos modernos e iniciativas de Inteligência Artificial:

  • Data Mining

  • Data Analytics

Muita gente acredita que são sinônimos.

Não são.

Na verdade, um complementa o outro.

Hoje vamos tomar mais um café e entender essa diferença de uma maneira que faça sentido para um desenvolvedor iniciante, principalmente para quem pretende trabalhar com sistemas corporativos de grande porte.


O tesouro escondido dentro do banco de dados

Imagine que você trabalha em um grande banco.

Todos os dias são registrados:

  • 25 milhões de transações

  • 8 milhões de PIX

  • 4 milhões de compras no cartão

  • 900 mil empréstimos simulados

  • milhares de acessos ao Internet Banking

Agora imagine isso acontecendo durante vinte anos.

Estamos falando de bilhões de registros.

Você conseguiria abrir uma planilha com tudo isso?

Nem o Excel teria coragem.

Então surge uma pergunta.

Como descobrir informações úteis dentro dessa montanha de dados?

É exatamente essa pergunta que deu origem ao Data Mining.


O que é Data Mining?

A tradução literal seria algo como:

Mineração de Dados.

O nome não foi escolhido por acaso.

Imagine um garimpeiro.

Ele não está interessado em toda a terra da mina.

Ele quer encontrar ouro.

Para isso precisa cavar toneladas de pedras.

O Data Mining faz exatamente isso.

Ele "escava" enormes bases de dados procurando algo valioso.

Pode ser:

  • padrões

  • tendências

  • correlações

  • comportamentos

  • anomalias

  • oportunidades

  • riscos

O objetivo não é produzir relatórios bonitos.

O objetivo é descobrir conhecimento escondido.


Data não é informação

Essa é uma das primeiras lições da Ciência de Dados.

Imagine esta sequência.

235
842
129
842
235
991

São apenas números.

Agora imagine que você descubra que representam códigos de produtos vendidos.

Ainda assim são apenas dados.

Agora descubra que:

  • 842 vende três vezes mais nas sextas-feiras;

  • 235 sempre é comprado junto com 991;

  • clientes que compram 129 têm alta chance de cancelar o serviço em até 90 dias.

Agora sim existe informação.

E foi o Data Mining que encontrou isso.


Data Analytics entra em cena

Suponha que o Data Mining encontrou o seguinte padrão:

Clientes entre 20 e 30 anos cancelam o serviço três vezes mais que os demais.

Excelente descoberta.

Mas...

E agora?

O que fazer com essa informação?

É aqui que entra o Data Analytics.

Analytics responde perguntas como:

  • Isso representa quanto de prejuízo?

  • Qual campanha devemos lançar?

  • Vale a pena oferecer desconto?

  • Quanto vamos economizar?

  • Qual decisão deve ser tomada?

Perceba a diferença.

Data Mining encontra.

Data Analytics interpreta.


Uma analogia simples

Imagine um arqueólogo.

Ele encontra uma antiga espada enterrada.

Esse trabalho é o Data Mining.

Agora entra um historiador.

Ele analisa a espada.

Descobre:

  • de qual época veio;

  • quem provavelmente a utilizava;

  • sua importância histórica;

  • seu valor.

Esse é o Data Analytics.


A grande confusão

Uma das frases da imagem diz que:

Data Mining é apenas parte do Data Analytics.

Na prática, isso está correto.

Analytics é muito mais amplo.

Ele envolve:

  • Estatística

  • Business Intelligence

  • Dashboards

  • KPIs

  • Visualização

  • Inteligência Artificial

  • Machine Learning

  • Forecast

  • Otimização

  • Data Mining

Ou seja:

Data Analytics

│

├── Estatística

├── BI

├── Dashboards

├── Visualização

├── IA

├── Machine Learning

└── Data Mining

Mining é uma ferramenta.

Analytics é a estratégia.


Onde entra o Machine Learning?

Outra dúvida bastante comum.

Machine Learning não substitui Data Mining.

Na verdade, ele fornece muitos dos algoritmos utilizados durante a mineração.

Por exemplo:

  • Árvores de decisão

  • Redes neurais

  • Random Forest

  • K-Means

  • Regressão

  • SVM

Todos podem ser utilizados para descobrir padrões.


As quatro grandes perguntas da análise de dados

Existe um modelo bastante conhecido.

1. O que aconteceu?

Análise Descritiva.

Exemplo.

"As vendas caíram 15%."


2. Por que aconteceu?

Análise Diagnóstica.

"O concorrente lançou uma promoção."


3. O que vai acontecer?

Análise Preditiva.

"Existe 82% de chance de queda nas vendas no próximo trimestre."


4. O que devemos fazer?

Análise Prescritiva.

"Aumentar o investimento em marketing digital na região Sudeste."

Perceba como o Analytics evolui da observação para a ação.


Um exemplo usando COBOL

Imagine um programa COBOL responsável por registrar pagamentos.

Todos os dias ele grava milhões de registros.

Durante cinco anos ele acumulou:

CLIENTE

VALOR

DATA

HORA

AGÊNCIA

CANAL

TIPO DE PAGAMENTO

Agora imagine um cientista de dados analisando tudo isso.

O Data Mining descobre que:

  • clientes acima de 65 anos utilizam mais caixas eletrônicos;

  • pagamentos acima de determinado valor aumentam nas sextas-feiras;

  • determinadas agências apresentam comportamento incomum.

Nenhum programador escreveu essas regras.

Os algoritmos descobriram.


Agora entra o Analytics

O Analytics recebe essas descobertas.

Calcula:

  • impacto financeiro;

  • risco;

  • ROI;

  • custo operacional.

Depois responde:

Vale abrir mais caixas eletrônicos?

Vale reforçar a equipe?

Vale oferecer novos produtos?

É por isso que Analytics está diretamente ligado ao negócio.


E no IBM Mainframe?

Muitos iniciantes imaginam que Mainframe apenas executa programas COBOL.

Nada poderia estar mais distante da realidade.

Todos os dias um IBM Z produz uma quantidade gigantesca de informações.

Exemplos.

SMF Records.

RMF.

JES2.

JES3.

SDSF.

RACF.

DB2.

IMS.

MQ.

OMEGAMON.

CICS.

z/OSMF.

Cada componente registra milhares de eventos.

Isso significa milhões de linhas diariamente.


Um Sysprog também faz Analytics

Imagine analisar os registros SMF.

O Data Mining pode descobrir:

  • Jobs que sempre falham juntos.

  • Crescimento gradual do consumo de CPU.

  • Programas responsáveis por gargalos.

  • Horários de pico.

  • Tendências de utilização do DASD.

  • Perfis suspeitos de acesso RACF.

Depois entra o Analytics.

Ele responde.

Devemos comprar mais processadores?

Precisamos aumentar memória?

Vale reorganizar o DB2?

Precisamos alterar políticas do WLM?

Ou seja.

Até mesmo um Administrador Mainframe trabalha com Analytics sem perceber.


Curiosidade

Você sabia que grandes bancos analisam bilhões de registros diariamente usando dados originados no próprio Mainframe?

Isso acontece porque o IBM Z continua sendo responsável por boa parte das transações financeiras do planeta.

Não é exagero dizer que boa parte do dinheiro movimentado diariamente passa por algum sistema que gera dados para análises.


O ciclo completo

Visualmente seria algo assim.

Aplicações

↓

COBOL

↓

CICS

↓

DB2

↓

Dados

↓

ETL

↓

Data Warehouse

↓

Data Mining

↓

Machine Learning

↓

Data Analytics

↓

Dashboards

↓

Decisões

↓

Novas Estratégias

Perceba.

Tudo começa com um bom software.


O futuro: IA + Analytics

Nos últimos anos surgiu um novo personagem.

A Inteligência Artificial Generativa.

Agora imagine o seguinte diálogo.

"ChatGPT, quais foram os cinco produtos com maior crescimento no último trimestre?"

A IA consulta o banco de dados.

Executa SQL.

Analisa gráficos.

Cruza informações.

Explica os resultados.

Sugere decisões.

Esse é o conceito de Augmented Analytics, em que a IA acelera a interpretação dos dados, permitindo que analistas e gestores se concentrem nas decisões de maior impacto.


Dicas para um Programador Júnior

Se você está começando, não tente aprender tudo ao mesmo tempo. Construa uma base sólida.

1. Aprenda SQL profundamente
Quase todo projeto de dados começa com consultas bem escritas. Saber fazer JOIN, GROUP BY, funções analíticas e otimizar consultas é uma habilidade valiosa.

2. Entenda modelagem de dados
Conheça tabelas normalizadas, chaves primárias, chaves estrangeiras e relacionamentos. Um bom modelo facilita qualquer análise.

3. Domine Excel e Power BI
Mesmo em grandes empresas, essas ferramentas são amplamente utilizadas para explorar dados e criar dashboards.

4. Aprenda Python
Bibliotecas como Pandas, NumPy, Matplotlib e Scikit-learn permitem manipular dados e criar modelos de forma eficiente.

5. Conheça estatística básica
Média, mediana, desvio padrão, correlação e distribuição são conceitos essenciais para interpretar resultados corretamente.

6. Desenvolva visão de negócio
Pergunte sempre: "Como essa análise ajuda a empresa?" A tecnologia existe para resolver problemas reais.

7. Se você é do Mainframe, explore os dados da plataforma
SMF, RMF, Db2, CICS e RACF são verdadeiras minas de informação. Aprender a interpretá-los pode diferenciá-lo no mercado.


Erros comuns dos iniciantes

❌ Acreditar que gráficos são Analytics. Um gráfico sem contexto não responde perguntas de negócio.

❌ Pensar que Machine Learning resolve qualquer problema. Um modelo treinado com dados ruins produzirá resultados ruins.

❌ Ignorar a qualidade dos dados. Dados duplicados, incompletos ou inconsistentes comprometem qualquer análise.

❌ Focar apenas na ferramenta. O mais importante é entender o problema, não apenas dominar uma linguagem ou software.


Easter Eggs Bellacosa Mainframe ☕

🥚 Easter Egg #1 – O Data Miner do século XXI
Se um garimpeiro usa uma peneira para separar ouro da areia, o cientista de dados usa algoritmos para separar conhecimento do ruído. Em ambos os casos, a matéria-prima é abundante, mas o valor está escondido.

🥚 Easter Egg #2 – O COBOL já fazia Analytics sem esse nome
Muitos sistemas COBOL geravam relatórios gerenciais, balanços e estatísticas décadas antes de "Data Analytics" virar um termo popular. A diferença é que hoje utilizamos ferramentas muito mais sofisticadas para explorar esses mesmos dados.

🥚 Easter Egg #3 – O Mainframe é uma fábrica de dados
Cada transação CICS, cada acesso ao Db2, cada Job JES2 e cada registro SMF conta uma parte da história da empresa. Quando unidos, esses eventos formam um dos ativos mais valiosos de qualquer organização.

🥚 Easter Egg #4 – O verdadeiro ouro não está no algoritmo
O algoritmo encontra padrões, mas quem transforma esses padrões em inovação é o ser humano. Conhecimento técnico e entendimento do negócio continuam sendo diferenciais insubstituíveis.

🥚 Easter Egg #5 – O café do Bellacosa
Se você chegou até aqui, já percebeu que programar vai muito além de escrever código. Todo sistema existe para apoiar decisões, e toda decisão de qualidade nasce de dados bem compreendidos. O café é apenas a desculpa para conversarmos sobre isso.


Conclusão

A principal lição deste café é simples: Data Mining e Data Analytics não disputam espaço; eles trabalham em conjunto. O primeiro explora grandes volumes de dados para revelar padrões, tendências e anomalias. O segundo interpreta essas descobertas, contextualiza os resultados e transforma conhecimento em ações estratégicas.

Para um programador júnior — seja em desenvolvimento web, ciência de dados ou IBM Mainframe — compreender essa diferença é um passo importante na evolução profissional. Afinal, cada programa COBOL, cada tabela Db2, cada API ou cada transação CICS produz dados que podem orientar decisões de negócio.

No fim das contas, o código é apenas o começo da jornada. O verdadeiro valor aparece quando esses dados são transformados em conhecimento, e esse conhecimento se converte em melhores produtos, processos mais eficientes e decisões mais inteligentes.

"Quem aprende apenas a programar constrói sistemas. Quem aprende a entender os dados constrói o futuro. No universo IBM Z, onde bilhões de transações acontecem silenciosamente todos os dias, cada registro pode esconder uma oportunidade esperando para ser descoberta." ☕

segunda-feira, 5 de outubro de 2020

🧙‍♂️ SHIROE E A DUNGEON DOS DADOS — QUANDO O COBOL DESCOBRIU QUE DATA LAKE NÃO ERA UM LAGO, DATA MART NÃO ERA SUPERMERCADO E O WAREHOUSE NÃO TINHA EMPILHADEIRA

 

Bellacosa Mainframe e os daods e seus repositorios

☕ Um Café no Bellacosa Mainframe

🧙‍♂️ SHIROE E A DUNGEON DOS DADOS — QUANDO O COBOL DESCOBRIU QUE DATA LAKE NÃO ERA UM LAGO, DATA MART NÃO ERA SUPERMERCADO E O WAREHOUSE NÃO TINHA EMPILHADEIRA



Data Warehouse, Data Lake, Data Mart, Lakehouse, ETL, ELT, Schema-on-Write, Schema-on-Read, Star Schema, governança, CICS, Db2, IMS, VSAM, MQ, SMF — e o dia em que Shiroe percebeu que armazenar 8 petabytes de dados não significava absolutamente nada se ninguém soubesse onde estava o cadastro correto do cliente.



🎬 PRÓLOGO — BEM-VINDO A ELDER TALE, PROGRAMADOR COBOL

O jovem programador COBOL acordou assustado.

Olhou em volta.

Não havia ISPF.

Não havia SDSF.

Não havia nem aquela reconfortante tela preta com letras verdes capaz de avisar:

READY

Em seu lugar havia uma enorme cidade medieval.

Guerreiros caminhavam pelas ruas. Magos discutiam estratégias. Mercadores anunciavam poções. Aventureiros corriam atrás de monstros.

— Onde estou?

Uma voz respondeu atrás dele:

— Akiba.

Ele se virou.

Óculos redondos. Capa. Cajado. Expressão de quem provavelmente havia acabado de analisar quinze diagramas de arquitetura antes do café da manhã.

Era Shiroe, de Log Horizon.

— Você é um aventureiro?

— Programador COBOL.

Shiroe ajeitou os óculos.

— Quase a mesma coisa.

— Preciso voltar ao mainframe.

— Primeiro você precisa compreender uma dungeon.

— Qual?

Shiroe apontou para três enormes construções no horizonte.

Na primeira estava escrito:

DATA WAREHOUSE

Na segunda:

DATA LAKE

E na terceira:

DATA MART

Mais distante havia uma quarta construção misteriosa:

LAKEHOUSE

O programador respirou fundo.

— Posso dar CANCEL?

— Não.

— ROLLBACK?

— Também não.

— Então ferrou.

Shiroe sorriu.

— Agora você está aprendendo Data Engineering.



🏰 CAPÍTULO 1 — TRÊS CONSTRUÇÕES, TRÊS MISSÕES DIFERENTES

Existe uma simplificação excelente para começar:

WAREHOUSE = dados confiáveis para a empresa

LAKE      = dados diversos e flexíveis em escala

MART      = dados preparados para uma área específica

O erro começa quando interpretamos isso como:

"Preciso escolher apenas um deles."

Não necessariamente.

Data Warehouse, Data Lake e Data Mart não são três produtos disputando uma vaga.

Eles representam padrões arquiteturais com objetivos diferentes e podem coexistir.

Uma empresa pode possuir simultaneamente:

Sistemas Operacionais
        |
        v
    Data Lake
        |
        v
 Data Warehouse
        |
   +----+----+
   |    |    |
   v    v    v
 Mart  Mart  Mart

E arquiteturas mais recentes podem substituir ou reorganizar partes desse desenho com Lakehouse, streaming, produtos de dados e outras abordagens.

Shiroe escreveria no quadro:

"Não comece escolhendo a tecnologia. Comece descobrindo o problema."

É uma excelente regra de arquitetura.



🏭 CAPÍTULO 2 — DATA WAREHOUSE: O GRANDE ARMAZÉM DA GUILDA

A tradução literal de warehouse é armazém.

Mas não imagine um galpão onde alguém joga caixas pela janela.

Um bom armazém possui:

  • organização;

  • classificação;

  • endereçamento;

  • controle;

  • inventário;

  • procedimentos;

  • segurança;

  • rastreabilidade.

Um Data Warehouse segue filosofia semelhante.

Ele procura disponibilizar dados preparados para análise empresarial.

Imagine uma corporação contendo:

ERP
CRM
Folha de pagamento
E-commerce
Mainframe
Aplicativos
Sistemas financeiros
Logística

Cada sistema pode representar uma entidade de maneira diferente.

Um sistema registra:

CLIENTE = 00012345

Outro:

CUSTOMER_ID = 12345

Outro trabalha principalmente com:

CPF = 123.456.789-00

O Data Warehouse não deveria simplesmente copiar tudo e desejar boa sorte ao analista.

Existe um trabalho de integração, transformação, padronização e governança.

Um fluxo tradicional poderia ser:

FONTES
  |
  v
EXTRAÇÃO
  |
  v
TRANSFORMAÇÃO
  |
  v
VALIDAÇÃO
  |
  v
DATA WAREHOUSE
  |
  +------> BI
  +------> Dashboards
  +------> KPIs
  +------> Relatórios
  +------> Analytics

Essa organização permite responder perguntas corporativas.



⚔️ CAPÍTULO 3 — OLTP NÃO É ANALYTICS

Nosso programador COBOL pergunta:

— Mas se os dados já estão no Db2, para que copiar?

Shiroe desenha duas missões.

Primeira:

Qual é o saldo da conta 12345?

Segunda:

Qual foi a evolução do comportamento
de compra dos clientes paulistas
nos últimos cinco anos,
separada por faixa etária,
canal, produto e mês?

São problemas diferentes.

O primeiro pertence tipicamente ao universo OLTP — Online Transaction Processing.

Precisamos processar rapidamente operações individuais.

No mainframe poderíamos ter:

Cliente
   |
   v
API
   |
   v
CICS
   |
   v
COBOL
   |
   v
Db2

Uma transação chega, é processada e recebe resposta.

Já a segunda pergunta pode envolver milhões ou bilhões de registros, agregações, cruzamentos e histórico.

Não queremos transformar cada consulta de BI numa invasão bárbara ao sistema transacional.

É uma separação importantíssima:

OPERACIONAL
"O que está acontecendo?"

ANALÍTICO
"O que aconteceu e o que podemos aprender?"


📜 CAPÍTULO 4 — SCHEMA-ON-WRITE: PREENCHA A FICHA ANTES DE ENTRAR NA GUILDA

Uma característica historicamente associada aos Data Warehouses é Schema-on-Write.

Antes de armazenar o dado na estrutura analítica definitiva, sabemos como queremos representá-lo.

Imagine:

CREATE TABLE VENDAS (
    ID_VENDA       BIGINT,
    ID_CLIENTE     BIGINT,
    DATA_VENDA     DATE,
    VALOR          DECIMAL(15,2),
    ID_PRODUTO     INTEGER
);

Chega um evento:

{
  "cliente": 12345,
  "produto": 991,
  "valor": 199.90
}

Precisamos interpretar e transformar aquilo para a estrutura desejada.

Há disciplina.

E disciplina tem custo.

Precisamos definir:

tipos
chaves
regras
relacionamentos
qualidade
significado

Mas recebemos algo importantíssimo em troca:

confiança.

Quando duas áreas perguntam quanto a companhia faturou em agosto, o ideal não é receber:

Financeiro: R$ 97 milhões
Vendas:     R$ 103 milhões
Marketing:  R$ 112 milhões
Igor:       depende

🤣

Se cada área possui sua própria definição de "faturamento", temos um problema semântico, não simplesmente tecnológico.


🌊 CAPÍTULO 5 — DATA LAKE: SHIROE MANDA GUARDAR O LOOT

Agora imagine outra necessidade.

Temos:

CSV
JSON
XML
Parquet
logs
documentos
imagens
eventos
telemetria
streams
dados de IoT

Nem sempre sabemos antecipadamente todas as análises que faremos.

Entra o Data Lake.

A filosofia é muito mais flexível.

        FONTES
          |
 +--------+--------+
 |        |        |
JSON     CSV      LOG
 |        |        |
 +--------+--------+
          |
          v
      DATA LAKE

O Lake pode armazenar enormes quantidades de dados estruturados, semiestruturados e não estruturados.

Isso o torna muito atraente para:

Data Science
Machine Learning
Big Data
Experimentação
Streaming
Exploração
Histórico massivo

Mas existe uma diferença importante.

O Lake não deve ser confundido com:

"HD gigantesco onde jogamos qualquer coisa."

Esse caminho leva diretamente para outra criatura.


🐊 CAPÍTULO 6 — O DATA SWAMP: O BOSS QUE NINGUÉM QUER ENFRENTAR

Shiroe leva o programador até uma região pantanosa.

Existem oito petabytes de dados.

— Impressionante! — diz o COBOLzeiro.

— Encontre o cadastro correto dos clientes.

Silêncio.

— Qual diretório?

— Ninguém sabe.

— Quem criou os arquivos?

— Não sabemos.

— Quando?

— Também não.

— Qual é o formato?

— Depende.

— São dados de produção?

— Talvez.

— Posso confiar?

— Boa pergunta.

Parabéns.

Seu Data Lake evoluiu para:

DATA SWAMP.

Um pântano de dados.

Esse é um dos maiores riscos de uma arquitetura de Lake mal governada.

Guardar é fácil.

Descobrir, compreender, proteger e confiar é difícil.

Por isso entram conceitos como:

Metadata
Data Catalog
Data Lineage
Data Quality
IAM
Classificação
Criptografia
Retenção
Auditoria
Governança

Um Lake sem metadados pode ser como encontrar um dataset chamado:

CLIENTES_FINAL_V3_NOVO_FINAL2_OK.csv

e descobrir que existem outros 83 arquivos parecidos.

Qual é o correto?

Bem-vindo à dungeon.


🔮 CAPÍTULO 7 — SCHEMA-ON-READ: PRIMEIRO GUARDE, DEPOIS INTERPRETE

Data Lakes são tradicionalmente associados ao conceito de Schema-on-Read.

Simplificando:

No Warehouse:

definimos estrutura
        |
        v
carregamos os dados

No Lake:

armazenamos os dados
        |
        v
interpretamos conforme consumo

Imagine bilhões de eventos:

{
  "timestamp": "2026-09-22T03:17:00",
  "transaction": "ABC991",
  "response_time": 824,
  "region": "SP"
}

Um cientista de dados talvez queira:

timestamp
response_time
region

Um engenheiro de segurança pode querer outros atributos.

A flexibilidade é enorme.

Mas não transforme a distinção entre Schema-on-Write e Schema-on-Read numa religião.

Plataformas modernas misturam estratégias.

Arquitetura de dados evoluiu.


🛒 CAPÍTULO 8 — DATA MART: A LOJA ESPECIALIZADA DE AKIBA

Imagine agora que o Data Warehouse possui informações de:

RH
Financeiro
Marketing
Vendas
Logística
Clientes
Produtos
Fraudes
Fornecedores

A equipe de Marketing precisa realmente navegar por tudo?

Provavelmente não.

Criamos então uma visão especializada.

             DATA WAREHOUSE
                   |
       +-----------+-----------+
       |           |           |
       v           v           v
     MART        MART        MART
   FINANCEIRO    VENDAS     MARKETING

O Data Mart entrega dados preparados para determinado domínio, departamento ou caso de uso.

O Mart de Marketing poderia conter:

Cliente
Campanha
Canal
Segmentação
Conversão
Lifetime Value

O Financeiro:

Receita
Despesa
Margem
Impostos
Fluxo de Caixa

E Vendas:

Produto
Vendedor
Região
Meta
Receita
Comissão

Isso reduz a complexidade para o usuário.


⭐ CAPÍTULO 9 — O STAR SCHEMA E A PARTY DE CINCO PERSONAGENS

Shiroe desenha uma estrela.

No centro:

               DIM_CLIENTE
                    |
                    |
DIM_PRODUTO --- FATO_VENDA --- DIM_TEMPO
                    |
                    |
                 DIM_LOJA

Temos um Star Schema.

No centro fica normalmente a tabela fato, contendo eventos e medidas.

Por exemplo:

FATO_VENDA

ID_CLIENTE
ID_PRODUTO
ID_TEMPO
ID_LOJA
QUANTIDADE
VALOR
DESCONTO
CUSTO

Ao redor ficam dimensões.

Elas respondem perguntas como:

Quem?
O quê?
Quando?
Onde?
Como?

Assim conseguimos perguntar:

Quanto vendemos do produto X no interior de São Paulo em agosto?

A tabela fato fornece as medidas.

As dimensões fornecem contexto.

É uma ideia extremamente poderosa para BI.


🔄 CAPÍTULO 10 — ETL vs ELT: A ORDEM DOS FEITIÇOS IMPORTA

Outro conceito que o jovem COBOLzeiro precisa dominar:

ETL

EXTRACT
   |
   v
TRANSFORM
   |
   v
LOAD

Primeiro extraímos.

Depois transformamos.

Finalmente carregamos no destino.

Mas existe:

ELT

EXTRACT
   |
   v
LOAD
   |
   v
TRANSFORM

Primeiro extraímos e carregamos.

Depois usamos a capacidade da plataforma para realizar transformações.

Portanto:

Warehouse = ETL

não é uma regra universal.

Ambientes modernos utilizam muito ELT.

E frequentemente encontramos combinações.

Shiroe diria:

"A sequência depende da estratégia da raid."


🏠 CAPÍTULO 11 — SURGE O LAKEHOUSE

Nos limites de Akiba existe a quarta construção.

Lakehouse.

A ideia tenta combinar características historicamente associadas aos dois mundos.

Do Lake:

escala
flexibilidade
múltiplos formatos
armazenamento econômico

Do Warehouse:

governança
SQL
estrutura
qualidade
BI
gerenciamento de tabelas

Em forma de feitiço:

DATA LAKE
    +
capacidades de DATA WAREHOUSE
    =
LAKEHOUSE

Isso tornou a velha discussão:

"Lake ou Warehouse?"

muito menos binária.

As fronteiras ficaram borradas.

E continuam evoluindo.


🖥️ CAPÍTULO 12 — SHIROE ENCONTRA UM IBM Z NO MEIO DA DUNGEON

Agora chegamos à parte divertida.

No subsolo de Akiba existe uma máquina.

Na placa:

IBM Z

Shiroe encontra:

COBOL
CICS
IMS
Db2
VSAM
MQ
JES

O programador pergunta:

— Precisamos transformar o mainframe num Data Lake?

— Não!

Eis um ponto fundamental.

O IBM Z pode continuar desempenhando brilhantemente sua função de System of Record e plataforma transacional.

Imagine:

              IBM Z
                |
      +---------+---------+
      |         |         |
     Db2       IMS       VSAM
      |         |         |
      +---------+---------+
                |
        CDC / ETL / APIs
         MQ / Streaming
                |
                v
        Plataforma de Dados

CDC significa Change Data Capture.

Em vez de executar cargas gigantescas indiscriminadamente, podemos capturar mudanças relevantes e propagá-las para outros ambientes.

Também podemos utilizar:

MQ
APIs
Batch
Streaming
ETL/ELT

dependendo do caso.


💳 CAPÍTULO 13 — A COMPRA DE R$ 3.499

Imagine uma compra.

Valor: R$ 3.499
Horário: 03:17
Local: São Paulo
Canal: Internet

No sistema transacional, queremos algo como:

TRANSACTION_ID
ACCOUNT
VALUE
STATUS

Precisamos autorizar ou recusar rapidamente.

Mas no Warehouse aquela mesma realidade pode virar:

FATO_VENDA
DIM_CLIENTE
DIM_TEMPO
DIM_CANAL
DIM_PRODUTO

No Lake podemos preservar:

evento JSON
logs
clickstream
telemetria
informações antifraude

E no Data Mart de fraude:

cliente
valor
device
localização
risco
score

Veja a mágica.

Não estamos falando necessariamente de quatro eventos diferentes.

Estamos falando de diferentes representações e usos dos dados relacionados ao mesmo evento de negócio.


🔐 CAPÍTULO 14 — RAW NÃO SIGNIFICA "PODE TUDO"

Um aventureiro aparece correndo.

— Shiroe! Criei nosso Lake!

— Excelente.

— Coloquei CPF, cartões, tokens, credenciais, documentos e tudo mais!

Shiroe congela.

🤣

Dados brutos não significam dados sem controle.

Um Data Lake corporativo continua precisando de:

IAM
RBAC/ABAC
Encryption
Masking
Tokenization
Auditing
Retention
Classification
Lineage
LGPD

A flexibilidade aumenta a importância da governança.

Se você centraliza enormes quantidades de informação sensível, está também criando um ativo extremamente interessante para um atacante.


🧭 CAPÍTULO 15 — PASSO A PASSO PARA NÃO CONSTRUIR A ARQUITETURA AO CONTRÁRIO

Antes de escolher tecnologia, faça perguntas.

Passo 1 — Identifique as fontes

Db2?
IMS?
VSAM?
Oracle?
SAP?
APIs?
Kafka?
Arquivos?
Logs?

Passo 2 — Descubra os consumidores

Quem utilizará?

Executivos?
BI?
Data Scientists?
Marketing?
Financeiro?
Fraude?
IA?

Passo 3 — Descubra a latência necessária

O dado precisa chegar:

em 20 ms?
em 1 segundo?
em 5 minutos?
uma vez por hora?
durante o batch noturno?

Isso muda completamente a arquitetura.

Passo 4 — Determine qualidade e governança

Pergunte:

Quem é o dono?
Qual é a fonte oficial?
Quem pode acessar?
Quanto tempo guardar?
É informação pessoal?
Pode sair do mainframe?

Passo 5 — Escolha o padrão apropriado

Precisa de analytics corporativo confiável?

Warehouse pode fazer sentido.

Precisa preservar enormes volumes heterogêneos para exploração?

Lake pode fazer sentido.

Uma área específica precisa de dados curados?

Mart pode fazer sentido.

Precisa combinar capacidades?

Lakehouse pode entrar na conversa.


🥚 EASTER EGG — 03:17 E O INCIDENTE DO DATA LAKE

Às exatamente:

03:17:00

um alerta dispara.

JOB DLK0317 ABEND

O operador chama Shiroe.

— Perdemos o Data Lake!

Shiroe pergunta:

— Backup?

— Temos.

— Catálogo?

— Não.

— Lineage?

— Não.

— Metadata?

— Não.

— Documentação?

— O Igor estava fazendo.

Shiroe tira os óculos.

Silêncio.

O programador COBOL sussurra:

— Então não perdemos o Lake.

Shiroe olha para ele.

— Exatamente.

— Perdemos o mapa.

E essa talvez seja a melhor lição deste artigo.


🗺️ CAPÍTULO 16 — DATA LINEAGE: O MAPA DA DUNGEON

Data Lineage responde:

De onde veio este dado e o que aconteceu com ele?

Imagine:

VSAM CLIENTES
      |
      v
    CDC
      |
      v
RAW CUSTOMER
      |
      v
TRANSFORMAÇÃO
      |
      v
CURATED CUSTOMER
      |
      v
DATA MART
      |
      v
DASHBOARD CFO

Se o CFO encontra um número estranho no dashboard, precisamos conseguir voltar pela trilha.

Dashboard
   ^
   |
Mart
   ^
   |
Transformação
   ^
   |
Origem

Para um veterano de mainframe, essa filosofia deveria soar familiar.

Rastreabilidade sempre foi assunto sério em ambientes críticos.


🧠 CAPÍTULO 17 — A PERGUNTA QUE VALE MAIS QUE PETABYTES

No final da aventura, Shiroe coloca quatro placas sobre a mesa:

DATA LAKE
DATA WAREHOUSE
DATA MART
LAKEHOUSE

E pergunta:

— Qual é a melhor?

O jovem programador já aprendeu a armadilha.

— Depende do problema.

Shiroe sorri.

Exatamente.

Porque a pergunta madura não é:

"Onde vamos guardar os dados?"

É:

"Qual jornada esse dado precisa percorrer desde sua origem até produzir uma decisão?"

Podemos desenhar:

         SISTEMA OPERACIONAL
                |
                v
       CAPTURA / INTEGRAÇÃO
                |
       +--------+--------+
       |                 |
       v                 v
   DATA LAKE        DATA WAREHOUSE
       |                 |
       +--------+--------+
                |
                v
          CAMADA CURADA
                |
       +--------+--------+
       |        |        |
       v        v        v
      MART     MART     MART
       |        |        |
       +--------+--------+
                |
                v
          BI / ML / IA

Ou arquiteturas diferentes podem ser mais apropriadas.

A tecnologia muda.

A pergunta permanece.


🎓 EPÍLOGO — SHIROE ENTREGA O CAJADO AO PROGRAMADOR COBOL

Ao final da dungeon, nosso aventureiro finalmente encontra o terminal.

Na tela:

READY

Ele sorri.

Agora compreende que COBOL, CICS, Db2, IMS e VSAM não estão isolados do mundo moderno dos dados.

Muito pelo contrário.

Imagine o fluxo:

COBOL
  |
CICS
  |
Db2 / IMS / VSAM
  |
CDC / MQ / APIs / Batch / Streaming
  |
  v
PLATAFORMA DE DADOS
  |
  +----> Lake
  |
  +----> Warehouse
  |
  +----> Lakehouse
  |
  +----> Marts
  |
  v
BI / Analytics / ML / IA

O programa COBOL que processa uma transação às 03:17 pode estar produzindo o evento que amanhã será usado por um dashboard, um modelo antifraude ou um algoritmo de Machine Learning.

É a mesma empresa.

É o mesmo negócio.

São diferentes etapas da vida do dado.

E existe algo ainda mais importante.

Um Data Warehouse de última geração com dados ruins continua produzindo respostas ruins.

Um Data Lake de 50 petabytes sem catálogo continua sendo um pântano de 50 petabytes.

Um Data Mart rápido com definições incorretas continuará entregando rapidamente a resposta errada.

E colocar IA sobre tudo isso não resolve magicamente o problema.

Só permite errar em uma velocidade extraordinária.

Shiroe ajeita novamente os óculos:

Dados precisam de estratégia antes de precisarem de tecnologia.

O programador COBOL finalmente digita:

LOGOFF

Antes de desaparecer de Elder Tale, olha uma última vez para o mapa:

       TRANSAÇÃO
           |
           v
          DADO
           |
           v
       CONTEXTO
           |
           v
      INFORMAÇÃO
           |
           v
      CONHECIMENTO
           |
           v
        DECISÃO

Agora ele entende.

O Data Lake preserva.

O Data Warehouse organiza, integra e prepara para confiança analítica.

O Data Mart aproxima o dado de um domínio ou grupo de consumidores.

O Lakehouse procura combinar características antes separadas.

ETL e ELT determinam diferentes estratégias para movimentação e transformação.

Schema-on-Write e Schema-on-Read representam filosofias distintas de estruturação.

Star Schema ajuda a transformar eventos em perguntas de negócio.

Catálogo diz o que existe.

Lineage conta de onde veio.

Governança determina como aquilo pode ser utilizado.

E o mainframe?

O mainframe continua lá.

Processando milhões de transações enquanto todo mundo discute nomes novos para problemas que ele conhece há décadas.

Na saída da dungeon existe uma pequena inscrição.

Quase ninguém percebe.

O programador aproxima a lanterna e lê:

//SHIROE  JOB ...

//* --------------------------------------------
//* TODO DADO TEM UMA ORIGEM.
//* TODO NUMERO PRECISA DE CONTEXTO.
//* TODO DASHBOARD PRECISA DE CONFIANCA.
//*
//* E TODO PROGRAMADOR QUE ENCONTRAR
//* CLIENTES_FINAL_V7_FINAL_OK_AGORA_VAI.CSV
//* DEVE ABRIR UM INCIDENTE IMEDIATAMENTE.
//*
//* 03:17
//* --------------------------------------------

Ele ri.

Em algum lugar de Akiba, Shiroe também.

Fim da raid.

☕ Bellacosa Mainframe — porque modernizar não significa abandonar aquilo que funciona; significa compreender onde cada peça da arquitetura pertence.

quarta-feira, 29 de julho de 2020

ETL Clássico vs. ELT Moderno sem Mistérios

 

Bellacosa Mainframe e o ETL Sem misterios conheca o classico versus o moderno


☕ Um Café no Bellacosa Mainframe

ETL Clássico vs. ELT Moderno sem Mistérios

Da fita magnética ao Data Lakehouse: o guia definitivo do programador COBOL Padawan para entender como os dados aprenderam a viajar no tempo

Imagine a seguinte cena.

São duas horas da manhã em um grande centro de processamento de dados. As luzes da sala estão apagadas, mas centenas de pequenos indicadores piscam silenciosamente. No console do operador, uma fila de jobs atravessa o JES2. Um programa COBOL lê milhões de registros de um arquivo VSAM, consulta tabelas no Db2, gera um arquivo sequencial e o entrega para outro processo.

Depois, um job de transformação organiza os dados.

Outro job elimina duplicidades.

Outro converte datas.

Outro calcula totais.

Finalmente, já perto do amanhecer, as informações chegam ao Data Warehouse, prontas para alimentar os relatórios que os gestores abrirão durante o café da manhã.

Essa cena resume muito bem a era do ETL clássico.

Agora avance algumas décadas.

Os dados continuam vindo do mainframe, do ERP, do CRM, das APIs, das planilhas e de dezenas de sistemas. Porém, em vez de esperar uma longa janela batch noturna, as alterações podem ser capturadas quase em tempo real. Os dados brutos são carregados em uma plataforma de nuvem ou em um Lakehouse e somente depois são organizados, testados e modelados.

Essa segunda cena representa o ELT moderno.

À primeira vista, a diferença parece pequena. Afinal, ETL e ELT possuem as mesmas três letras:

  • E de Extract, extração;

  • T de Transform, transformação;

  • L de Load, carga.

O que muda é a ordem.

Mas, como diria o Sr. Spock ao examinar um fluxo de dados corporativo:

“Uma pequena alteração na sequência pode produzir consequências altamente ilógicas em todo o sistema.”

Trocar a posição do T e do L não é apenas reorganizar três letras. É alterar toda a filosofia da arquitetura de dados.

Prepare o café, ajuste o terminal 3270 e embarque conosco. Nesta missão, o programador COBOL Padawan descobrirá como os dados saíram dos arquivos sequenciais, atravessaram Data Warehouses gigantescos e chegaram aos modernos Data Lakes, Lakehouses, pipelines de CDC, dbt, dashboards e modelos de inteligência artificial.


1. Antes de tudo: o que é um pipeline de dados?

Um pipeline de dados é uma sequência organizada de etapas responsável por transportar informações de um lugar para outro.

Podemos compará-lo a uma linha de produção.

A matéria-prima chega, passa por máquinas, é inspecionada, transformada, embalada e enviada ao destino final.

No mundo dos dados, a matéria-prima pode ser:

  • uma tabela Db2;

  • um arquivo VSAM;

  • um banco Oracle;

  • uma aplicação SAP;

  • um arquivo CSV;

  • uma planilha;

  • uma mensagem MQ;

  • uma API;

  • um tópico Kafka;

  • um log de servidor;

  • uma transação CICS;

  • um registro IMS;

  • um arquivo gerado por um programa COBOL.

O pipeline captura essas informações, movimenta os registros, corrige formatos, aplica regras de negócio e entrega os dados para relatórios, análises, auditorias ou inteligência artificial.

Um pipeline simplificado pode ser representado assim:

Sistema de origem
       ↓
Extração
       ↓
Transformação
       ↓
Carga
       ↓
Banco analítico
       ↓
Relatórios e dashboards

No modelo moderno, a ordem normalmente muda:

Sistema de origem
       ↓
Extração
       ↓
Carga dos dados brutos
       ↓
Transformação dentro da plataforma
       ↓
Modelos analíticos
       ↓
Relatórios, ciência de dados e IA

É exatamente aí que começa a diferença entre ETL e ELT.


2. O nascimento do ETL clássico

O ETL tornou-se extremamente popular durante os anos 1990 e 2000.

Naquela época, os recursos computacionais eram muito mais caros e limitados.

Armazenamento custava caro.

Memória custava caro.

Processamento custava caro.

Licenças de bancos de dados custavam caro.

Manter grandes volumes de dados sem uso aparente era visto como desperdício.

A filosofia dominante era:

“Não carregue tudo. Carregue somente o que estiver limpo, organizado e pronto para ser usado.”

Assim surgiu o processo clássico:

Extract → Transform → Load

Ou seja:

  1. extrair os dados da origem;

  2. transformar os dados fora do Data Warehouse;

  3. carregar apenas os dados prontos.

Essa abordagem combinava muito bem com a cultura dos grandes ambientes corporativos, especialmente aqueles baseados em processamento batch.


3. ETL explicado para um programador COBOL iniciante

Vamos imaginar um cenário bancário.

Um programa COBOL processa diariamente um arquivo de movimentos financeiros.

O arquivo contém informações como:

NUMERO-CONTA
DATA-MOVIMENTO
TIPO-MOVIMENTO
VALOR-MOVIMENTO
CODIGO-AGENCIA

Esses dados precisam alimentar um Data Warehouse para que a área de negócios analise o total de depósitos, saques e transferências.

No ETL clássico, o fluxo seria parecido com este:

Db2 / VSAM / Arquivo
        ↓
Extração
        ↓
Área de staging
        ↓
Transformação
        ↓
Carga no Data Warehouse

Vamos analisar cada etapa.


4. Etapa 1 — Extract: extraindo os dados

A extração é o momento em que os dados são retirados do sistema de origem.

No mainframe, isso pode acontecer por meio de:

  • programas COBOL batch;

  • unload do Db2;

  • IDCAMS REPRO;

  • DFSORT;

  • utilitários de IMS;

  • arquivos sequenciais;

  • mensagens MQ;

  • APIs do z/OS Connect;

  • ferramentas de replicação;

  • soluções de Change Data Capture.

Um programa COBOL poderia, por exemplo, ler uma tabela Db2 e gravar um arquivo sequencial:

SELECT
    ACCOUNT_ID,
    CUSTOMER_ID,
    BALANCE,
    LAST_UPDATE
FROM ACCOUNT
WHERE LAST_UPDATE >= :DATA-ANTERIOR

O resultado seria gravado em um arquivo como:

HLQ.EXTRACAO.CONTAS.D20260716

Esse arquivo seria então enviado para a plataforma de ETL.

O ponto importante é que a extração não deveria aplicar regras complexas. Sua principal função seria capturar os dados da origem.

Contudo, na prática, muitos ambientes antigos misturavam extração e transformação no mesmo programa.

O COBOL lia a tabela, validava registros, convertia datas, alterava códigos e gravava o resultado final.

Funcionava, mas criava forte acoplamento.


5. Etapa 2 — Staging: a sala de espera dos dados

Depois da extração, os dados costumavam ser enviados para uma área temporária chamada staging.

Staging significa algo como área de preparação.

Pense nela como a doca de carga da USS Enterprise.

As caixas chegam de diferentes planetas, mas ainda não foram inspecionadas, classificadas ou distribuídas pelos compartimentos da nave.

A staging poderia conter tabelas como:

STG_CLIENTE
STG_CONTA
STG_MOVIMENTO
STG_AGENCIA
STG_PRODUTO

Os dados nessa área ainda poderiam apresentar:

  • duplicidades;

  • campos vazios;

  • datas inválidas;

  • caracteres inesperados;

  • moedas diferentes;

  • códigos de sistemas antigos;

  • informações inconsistentes.

A staging oferecia um espaço seguro para trabalhar antes de carregar o Data Warehouse oficial.

Em ambientes mainframe, o conceito de staging também podia aparecer na forma de datasets temporários:

//STAGE01 DD DSN=&&STAGING,
//            DISP=(NEW,PASS),
//            SPACE=(CYL,(100,50)),
//            DCB=(RECFM=FB,LRECL=300)

O dataset temporário era criado, utilizado por outros steps e eliminado ao final do job.

Nada muito diferente de uma tabela temporária em um pipeline moderno.

A tecnologia muda. O princípio permanece.


6. Etapa 3 — Transform: onde as regras de negócio vivem

A transformação é o coração do ETL.

É nessa etapa que os dados brutos são convertidos em informações confiáveis.

Algumas transformações comuns incluem:

Padronização de datas

A origem pode trazer:

16/07/2026

O Data Warehouse pode exigir:

2026-07-16

Padronização de valores

Uma origem pode usar vírgula decimal:

1234,56

Outra pode usar ponto:

1234.56

O pipeline precisa escolher um padrão.

Tratamento de códigos

O sistema antigo pode armazenar:

A = Ativo
I = Inativo
B = Bloqueado

O modelo analítico pode exigir:

ATIVO
INATIVO
BLOQUEADO

Eliminação de duplicidades

Dois sistemas podem possuir registros do mesmo cliente.

O processo precisa decidir:

  • qual registro é o principal;

  • qual endereço é o mais recente;

  • qual telefone deve ser preservado;

  • como consolidar os dados.

Criação de métricas

O pipeline pode calcular:

  • saldo médio;

  • faturamento mensal;

  • tempo de relacionamento;

  • quantidade de transações;

  • valor acumulado;

  • risco de crédito;

  • indicador de inadimplência.

Em um programa COBOL, uma transformação poderia parecer assim:

IF WS-TIPO-MOVIMENTO = 'C'
    ADD WS-VALOR TO WS-TOTAL-CREDITOS
ELSE
    IF WS-TIPO-MOVIMENTO = 'D'
        ADD WS-VALOR TO WS-TOTAL-DEBITOS
    END-IF
END-IF

Em uma ferramenta de ETL, a mesma lógica poderia ser implementada visualmente.

Em SQL:

CASE
    WHEN TIPO_MOVIMENTO = 'C' THEN VALOR_MOVIMENTO
    ELSE 0
END AS VALOR_CREDITO

A regra é a mesma.

O que muda é a linguagem e o lugar onde ela é executada.


7. Etapa 4 — Load: carregando o Data Warehouse

Depois que os dados fossem transformados, finalmente seriam carregados no Data Warehouse.

O Data Warehouse era cuidadosamente modelado antes da carga.

Frequentemente utilizava modelos dimensionais compostos por:

  • tabelas fato;

  • tabelas dimensão;

  • chaves substitutas;

  • históricos;

  • agregações;

  • hierarquias.

Uma tabela fato poderia conter:

FATO_VENDAS

Enquanto as dimensões poderiam ser:

DIM_CLIENTE
DIM_PRODUTO
DIM_LOJA
DIM_TEMPO
DIM_VENDEDOR

A tabela fato armazenava medidas:

  • quantidade;

  • valor;

  • desconto;

  • imposto;

  • margem.

As dimensões armazenavam contexto:

  • quem comprou;

  • o que comprou;

  • onde comprou;

  • quando comprou.

Esse modelo facilitava relatórios e análises.

Porém, exigia que a estrutura fosse definida antes da chegada dos dados.

Daí nasce a famosa lógica:

Primeiro modela. Depois carrega.


8. Por que o ETL era tão rígido?

Porque cada alteração precisava atravessar toda a cadeia.

Imagine que uma tabela de clientes receba um novo campo:

CANAL_PREFERENCIAL

Agora seria necessário alterar:

  1. o sistema de origem;

  2. o programa de extração;

  3. o arquivo intermediário;

  4. o layout;

  5. a tabela de staging;

  6. a transformação;

  7. a tabela destino;

  8. a documentação;

  9. os relatórios;

  10. os testes;

  11. o processo de implantação;

  12. os controles de reconciliação.

Para um programador COBOL, isso lembra a alteração de um copybook compartilhado por dezenas de programas.

Você muda um campo.

De repente, vinte módulos precisam ser recompilados.

Três interfaces quebram.

Um arquivo fica com LRECL incorreto.

Um job termina com S013.

Outro apresenta dados deslocados.

O operador liga às três horas da manhã.

A equipe inteira pergunta:

“Quem alterou o copybook?”

No ETL clássico, o mesmo fenômeno acontecia com pipelines de dados.


9. Ferramentas pesadas e lógica espalhada

Outro problema comum era a dispersão das regras.

Uma parte da lógica podia estar em:

  • um programa COBOL;

  • uma procedure SQL;

  • um job SSIS;

  • uma transformação PowerCenter;

  • um script Shell;

  • uma rotina Java;

  • um job Control-M;

  • uma stored procedure Oracle;

  • uma planilha mantida manualmente.

O resultado era uma arquitetura difícil de compreender.

Para descobrir como determinado campo era calculado, o analista precisava investigar cinco sistemas.

A regra podia começar em um programa COBOL, ser alterada em uma procedure e finalmente ser arredondada no relatório.

Era uma verdadeira investigação digna de Sherlock Holmes, Spock e do operador de produção mais experiente da empresa.


10. Então o que mudou?

Três transformações foram fundamentais.

10.1 O armazenamento ficou mais barato

Guardar grandes volumes de dados tornou-se economicamente viável.

Antes, armazenar tudo era um luxo.

Hoje, em muitas arquiteturas, preservar dados brutos é considerado uma vantagem.

10.2 O processamento tornou-se elástico

Plataformas modernas permitem aumentar ou reduzir capacidade conforme a necessidade.

Em vez de comprar uma máquina para o pico máximo, a empresa pode consumir recursos sob demanda.

10.3 O volume e a variedade dos dados explodiram

As organizações passaram a produzir:

  • logs;

  • eventos;

  • cliques;

  • imagens;

  • JSON;

  • XML;

  • telemetria;

  • dados de sensores;

  • mensagens;

  • documentos;

  • dados de redes sociais;

  • informações de aplicações móveis.

Transformar tudo antes da carga tornou-se lento e caro.

Assim nasceu a filosofia do ELT.


11. ELT: primeiro carrega, depois transforma

O ELT segue este fluxo:

Extract → Load → Transform

Primeiro, o dado é extraído.

Depois, é carregado praticamente como veio da origem.

Somente dentro da plataforma moderna ele é transformado.

A nova filosofia pode ser resumida assim:

“Preserve os dados primeiro. Decida depois como utilizá-los.”

Em vez de obrigar o dado a se adaptar imediatamente a um modelo rígido, o ELT preserva a informação original.

Isso aumenta a flexibilidade.


12. A camada Raw ou Bronze

Em arquiteturas modernas, os dados brutos costumam ser armazenados em uma camada chamada:

  • Raw;

  • Bronze;

  • Landing;

  • Ingestion;

  • Source.

Essa camada preserva o dado original.

Imagine que o mainframe envie um arquivo contendo:

00012320260716125000C0000000015000

O registro pode ser armazenado exatamente como chegou.

Depois, outras camadas interpretam os campos.

Uma arquitetura em camadas pode ser:

Bronze → Silver → Gold

Bronze

Dados brutos.

Pouco ou nenhum tratamento.

Silver

Dados limpos, padronizados e reconciliados.

Gold

Dados preparados para negócio, relatórios e indicadores.

Uma analogia mainframe seria:

Arquivo de entrada
       ↓
Arquivo validado
       ↓
Arquivo consolidado
       ↓
Relatório final

O conceito não é totalmente novo.

A novidade está na escala, nas ferramentas e na velocidade.


13. O que é um Data Lake?

Um Data Lake é um repositório capaz de armazenar grandes volumes de dados em diversos formatos.

Ele pode guardar:

  • arquivos CSV;

  • JSON;

  • Parquet;

  • imagens;

  • vídeos;

  • logs;

  • arquivos de áudio;

  • dados estruturados;

  • dados semiestruturados;

  • dados não estruturados.

A principal vantagem é a flexibilidade.

Porém, existe um risco.

Sem organização, governança e catálogo, o Data Lake pode virar um Data Swamp, ou pântano de dados.

Os arquivos estão lá, mas ninguém sabe:

  • quem criou;

  • qual versão é válida;

  • o que cada coluna significa;

  • se os dados estão completos;

  • se há informações sensíveis;

  • quem pode utilizá-los.

Curiosidade importante: guardar tudo não significa compreender tudo.

Um Data Lake sem governança pode ser apenas um gigantesco diretório de arquivos com nomes misteriosos.

Algo como:

FINAL.CSV
FINAL2.CSV
FINAL_CORRETO.CSV
FINAL_CORRETO_AGORA_VAI.CSV
FINAL_DEFINITIVO_V7.CSV

Todo profissional de tecnologia já encontrou uma pasta assim em algum momento da vida.


14. O que é um Data Lakehouse?

O Data Lakehouse tenta unir as vantagens do Data Lake e do Data Warehouse.

Do Data Lake, ele herda:

  • armazenamento flexível;

  • suporte a grandes volumes;

  • formatos variados;

  • custo reduzido.

Do Data Warehouse, ele herda:

  • organização;

  • consultas SQL;

  • desempenho;

  • governança;

  • controle de qualidade;

  • suporte a transações;

  • modelagem analítica.

Em termos simples:

Data Lake + Data Warehouse = Data Lakehouse

Não é uma soma perfeita, mas ajuda o COBOL Padawan a compreender o conceito.

O Lakehouse busca permitir que os mesmos dados sirvam para:

  • dashboards;

  • relatórios;

  • ciência de dados;

  • machine learning;

  • inteligência artificial;

  • auditoria;

  • análises exploratórias.


15. Change Data Capture: capturando apenas o que mudou

Um dos elementos mais importantes do ELT moderno é o CDC, ou Change Data Capture.

No processamento tradicional, uma tabela inteira podia ser extraída diariamente.

Imagine uma tabela com 500 milhões de registros.

Mesmo que apenas 10 mil registros tivessem mudado, o processo poderia copiar tudo novamente.

Isso consome:

  • CPU;

  • disco;

  • rede;

  • tempo;

  • janela batch;

  • paciência do operador.

O CDC captura apenas alterações:

  • INSERT;

  • UPDATE;

  • DELETE.

Exemplo:

Registro 1001 foi incluído
Registro 2050 foi alterado
Registro 3100 foi excluído

Essas mudanças são enviadas para a plataforma analítica.

No ecossistema mainframe, o CDC pode observar alterações em:

  • Db2;

  • IMS;

  • VSAM;

  • logs transacionais;

  • filas;

  • streams de eventos.

Isso permite integrar sistemas centrais com plataformas modernas sem executar extrações completas o tempo todo.


16. Batch não morreu

Existe uma ideia equivocada de que arquiteturas modernas eliminaram o batch.

Não eliminaram.

O batch continua extremamente importante.

Folhas de pagamento, fechamentos contábeis, consolidações financeiras, faturamento e processamento de grandes volumes ainda utilizam jobs em lote.

O que mudou foi a coexistência entre diferentes velocidades.

Hoje, uma arquitetura pode possuir:

  • batch diário;

  • microbatch a cada cinco minutos;

  • eventos em tempo real;

  • CDC quase imediato;

  • consultas sob demanda.

O mainframe também participa dessa arquitetura híbrida.

Um programa COBOL pode continuar processando arquivos à noite, enquanto alterações críticas são enviadas por CDC durante o dia.

Não é uma guerra entre antigo e moderno.

É uma federação de tecnologias.

E, como toda boa federação, cada membro possui sua função.


17. O papel do dbt na transformação moderna

O dbt, conhecido como data build tool, ajudou a transformar a maneira como as equipes escrevem SQL.

Antes, o SQL podia ficar espalhado por:

  • procedures;

  • scripts;

  • jobs;

  • ferramentas visuais;

  • notebooks;

  • arquivos locais.

O dbt trouxe práticas de engenharia de software para a transformação de dados.

Entre elas:

  • versionamento em Git;

  • testes;

  • documentação;

  • dependências;

  • modularização;

  • revisão de código;

  • integração contínua;

  • implantação automatizada.

Um modelo dbt pode ser semelhante a:

SELECT
    CUSTOMER_ID,
    SUM(AMOUNT) AS TOTAL_AMOUNT
FROM {{ ref('stg_transactions') }}
GROUP BY CUSTOMER_ID

A função ref declara que esse modelo depende de outro.

Assim, a ferramenta entende a ordem de execução.

Em vez de manter uma sequência escondida em dez agendadores diferentes, o pipeline passa a possuir um grafo claro de dependências.

Para o programador COBOL, isso pode ser comparado a mapear todos os programas chamados por um módulo principal.

PGMMAIN
 ├── CALL PGMCLI
 ├── CALL PGMCON
 └── CALL PGMREL

No dbt, a lógica é parecida:

RAW_CUSTOMER
      ↓
STG_CUSTOMER
      ↓
DIM_CUSTOMER
      ↓
REPORT_CUSTOMER

A diferença é que o grafo pode ser documentado e executado automaticamente.


18. O dbt resolve tudo?

Não.

O dbt resolve muito bem a parte de transformação SQL dentro de uma plataforma de dados.

Mas ele não é responsável por tudo.

Ele não substitui necessariamente:

  • ferramentas de ingestão;

  • mensageria;

  • CDC;

  • segurança;

  • governança;

  • catálogo;

  • monitoramento;

  • qualidade completa;

  • gestão de custos;

  • orquestração de toda a empresa.

É importante evitar a síndrome da ferramenta mágica.

Nenhuma ferramenta resolve sozinha arquitetura, processo, pessoas, governança e qualidade.

O dbt organiza muito bem o “T”.

Mas o restante da missão ainda precisa de uma tripulação.


19. Orquestração: o maestro do pipeline

A orquestração define:

  • o que executa primeiro;

  • o que depende de quê;

  • o que fazer em caso de falha;

  • quantas tentativas realizar;

  • quando disparar alertas;

  • quais prazos devem ser cumpridos.

No mainframe, JCL, JES2 e schedulers já exercem esse papel há décadas.

Considere:

//STEP01 EXEC PGM=EXTRATOR
//STEP02 EXEC PGM=TRANSFOR,COND=(0,NE,STEP01)
//STEP03 EXEC PGM=CARREGA,COND=(0,NE,STEP02)

O fluxo está claro:

  1. extrair;

  2. transformar;

  3. carregar.

Se o STEP01 falhar, os próximos podem não executar.

Ferramentas modernas fazem algo semelhante por meio de DAGs, grafos acíclicos direcionados.

O conceito parece novo, mas o veterano do mainframe olha para ele e pensa:

“Isso é uma cadeia de jobs com um nome mais elegante.”

E ele não está totalmente errado.


20. ETL versus ELT em uma tabela prática

CaracterísticaETL clássicoELT moderno
OrdemExtrai, transforma, carregaExtrai, carrega, transforma
Local da transformaçãoFora do destino analíticoDentro do Warehouse ou Lakehouse
Dados brutosFrequentemente descartadosNormalmente preservados
ModelagemAntes da cargaPode evoluir após a carga
FlexibilidadeMenorMaior
StorageTratado como recurso caroGeralmente mais acessível
ProcessamentoServidor ETL dedicadoPlataforma analítica
Mudança de schemaPode quebrar o pipelinePode ser absorvida com mais flexibilidade
Uso típicoDW tradicionalCloud Warehouse e Lakehouse
GovernançaForte antes da cargaDeve existir em múltiplas camadas

21. ETL ainda é útil?

Sim, e muito.

O ELT não matou o ETL.

Existem situações em que transformar antes de carregar é obrigatório.

Por exemplo:

  • dados pessoais que precisam ser mascarados;

  • informações médicas;

  • dados bancários;

  • números de documentos;

  • segredos comerciais;

  • restrições regulatórias;

  • limites de residência de dados;

  • necessidade de reduzir volumes;

  • destino com capacidade limitada.

Imagine um arquivo contendo CPF, salário e informações de saúde.

Carregar tudo em uma plataforma sem proteção e decidir depois o que mascarar seria perigoso.

Nesse caso, parte da transformação precisa ocorrer antes da carga.

Portanto, muitas arquiteturas modernas usam uma abordagem híbrida:

Extração
   ↓
Mascaramento e validação
   ↓
Carga na camada bruta protegida
   ↓
Transformações analíticas

É uma combinação de ETL e ELT.


22. O mainframe dentro da arquitetura moderna

O IBM Z não está fora dessa evolução.

Na verdade, ele frequentemente é a origem dos dados mais importantes da empresa.

Sistemas mainframe podem armazenar:

  • contas bancárias;

  • apólices;

  • cartões;

  • pedidos;

  • estoques;

  • reservas;

  • folhas de pagamento;

  • transações governamentais;

  • informações fiscais;

  • cadastros de clientes.

Uma arquitetura moderna pode ser:

CICS / IMS / COBOL
          ↓
Db2 / VSAM / IMS DB
          ↓
CDC / MQ / API / Arquivo
          ↓
Data Lakehouse
          ↓
dbt
          ↓
Modelo analítico
          ↓
Power BI / Tableau / Qlik
          ↓
IA e Machine Learning

Observe que o programa COBOL não desapareceu.

Ele continua processando a transação central.

O que mudou foi a forma de distribuir e explorar os dados produzidos por ele.


23. Exemplo completo: dados de cartão de crédito

Vamos construir um exemplo.

Um sistema COBOL processa compras de cartão.

Cada transação contém:

NUMERO-CARTAO
DATA-HORA
ESTABELECIMENTO
VALOR
PAIS
CODIGO-RESPOSTA

No ETL clássico

  1. O COBOL gera um arquivo ao final do dia.

  2. O arquivo é enviado ao servidor de ETL.

  3. A ferramenta valida os registros.

  4. Os dados são enriquecidos.

  5. As moedas são convertidas.

  6. Transações inválidas são separadas.

  7. Os dados prontos são carregados no DW.

  8. O relatório é atualizado pela manhã.

No ELT moderno

  1. As transações são capturadas por CDC ou streaming.

  2. Os dados brutos são carregados no Lakehouse.

  3. Uma camada Silver padroniza moedas e datas.

  4. Uma camada Gold calcula indicadores.

  5. O dashboard é atualizado em intervalos menores.

  6. Um modelo de fraude analisa padrões quase em tempo real.

O sistema COBOL continua sendo a fonte confiável.

O ELT amplia as formas de consumir seus dados.


24. Qualidade de dados continua sendo obrigatória

Um dos maiores perigos do ELT é interpretar “carregar tudo” como “aceitar qualquer coisa sem controle”.

Isso seria um erro.

Dados brutos podem ser preservados, mas precisam de:

  • catálogo;

  • segurança;

  • linhagem;

  • classificação;

  • testes;

  • monitoramento;

  • regras de retenção;

  • controle de acesso.

Testes comuns incluem:

Teste de unicidade

CUSTOMER_ID não pode se repetir.

Teste de nulidade

ACCOUNT_ID não pode ser nulo.

Teste de integridade

Todo CUSTOMER_ID de ACCOUNT deve existir em CUSTOMER.

Teste de domínio

STATUS deve ser A, I ou B.

Teste de volume

A carga diária não pode cair 90% sem gerar alerta.

Qualidade de dados não desaparece no ELT.

Ela apenas muda de lugar e se torna mais automatizada.


25. Schema-on-write e schema-on-read

Uma diferença conceitual importante é a relação entre dados e esquema.

Schema-on-write

O esquema é definido antes da gravação.

Isso é comum no Data Warehouse clássico.

Definir tabela
      ↓
Validar formato
      ↓
Carregar dados

Schema-on-read

O dado é armazenado primeiro.

O esquema é aplicado quando ele é lido.

Armazenar dado bruto
      ↓
Interpretar conforme a necessidade

O ETL tradicional está mais próximo do schema-on-write.

O Data Lake está mais próximo do schema-on-read.

O Lakehouse tenta equilibrar os dois.


26. Curiosidades para o COBOL Padawan

Curiosidade 1 — O batch já fazia pipelines

Muito antes de “pipeline de dados” virar expressão de moda, equipes mainframe já encadeavam jobs com JCL e schedulers.

Curiosidade 2 — Staging não é invenção recente

Datasets temporários, arquivos intermediários e tabelas de trabalho existem há décadas.

Curiosidade 3 — CDC também não nasceu ontem

A captura de alterações em logs transacionais possui uma longa história em bancos corporativos.

Curiosidade 4 — SQL virou código de engenharia

Ferramentas modernas aproximaram SQL de práticas já comuns em linguagens como COBOL, Java e Python: versionamento, testes e revisão.

Curiosidade 5 — ELT pode gerar custos enormes

Carregar tudo é fácil. Processar tudo repetidamente pode ser caro.

Uma query mal escrita em uma plataforma elástica pode escalar muito bem — inclusive a conta.


27. Dicas práticas para o programador COBOL iniciante

Dica 1 — Aprenda SQL de verdade

Entenda:

  • JOIN;

  • GROUP BY;

  • funções de janela;

  • CTE;

  • agregações;

  • tratamento de nulos;

  • datas;

  • performance.

O SQL é uma ponte entre o mainframe e a engenharia de dados moderna.

Dica 2 — Entenda arquivos

Continue dominando:

  • FB;

  • VB;

  • LRECL;

  • EBCDIC;

  • ASCII;

  • delimitadores;

  • copybooks;

  • packed decimal;

  • zoned decimal.

Grande parte dos problemas de integração nasce no formato dos dados.

Dica 3 — Aprenda JSON e APIs

Sistemas modernos frequentemente trocam dados em JSON.

Compreender APIs REST e z/OS Connect amplia muito o horizonte do programador COBOL.

Dica 4 — Estude Git

Versionamento não é exclusivo do código Java.

SQL, JCL, scripts, modelos dbt e documentação também devem ser versionados.

Dica 5 — Aprenda conceitos, não apenas ferramentas

Ferramentas mudam.

Os conceitos permanecem:

  • extração;

  • transformação;

  • carga;

  • dependência;

  • qualidade;

  • reconciliação;

  • governança;

  • observabilidade.

Dica 6 — Nunca ignore reconciliação

Sempre compare:

Registros extraídos
Registros transformados
Registros rejeitados
Registros carregados

A equação precisa fechar.

Extraídos = Carregados + Rejeitados

Quando não fecha, existe um fantasma no pipeline.


28. Passo a passo para compreender uma arquitetura de dados

Quando encontrar um pipeline, faça estas perguntas.

Passo 1 — Qual é a origem?

Db2?

VSAM?

IMS?

API?

Arquivo?

ERP?

Passo 2 — Como os dados são extraídos?

Batch?

CDC?

Streaming?

API?

Unload?

Passo 3 — Onde os dados brutos ficam?

Staging?

Data Lake?

Tabela temporária?

Dataset?

Passo 4 — Onde ocorre a transformação?

Programa COBOL?

Ferramenta ETL?

SQL?

dbt?

Spark?

Passo 5 — Quem orquestra?

JES2?

Control-M?

Airflow?

Scheduler de nuvem?

Passo 6 — Como a qualidade é validada?

Contagens?

Testes automáticos?

Regras de integridade?

Passo 7 — Quem consome?

Power BI?

Relatório batch?

Aplicação?

IA?

Auditoria?

Passo 8 — Como falhas são tratadas?

Restart?

Retry?

Checkpoint?

Reprocessamento?

Rollback?

Essas perguntas revelam a arquitetura real, independentemente das ferramentas utilizadas.


29. Easter egg: a diretiva secreta do ETL

Nos arquivos perdidos da Federação, existe uma suposta diretiva de engenharia de dados conhecida como Diretiva ETL-1701:

“Nenhum dado deverá entrar no computador central da nave antes de ser validado, padronizado e aprovado pelo oficial de ciência.”

Essa era a filosofia do ETL clássico.

Anos depois, durante uma missão em um quadrante desconhecido, a tripulação percebeu que descartar dados considerados inúteis poderia eliminar pistas valiosas.

Nasceu então a Diretiva ELT-1701-D:

“Preserve o dado original. A informação aparentemente irrelevante de hoje pode ser a chave lógica da missão de amanhã.”

A letra D, naturalmente, é uma homenagem à Enterprise-D.

Coincidência?

Talvez.

Mas no Bellacosa Mainframe, coincidências tecnológicas costumam esconder um dataset catalogado.


30. ETL ou ELT: qual é melhor?

A resposta lógica é:

Depende.

Use ETL quando:

  • dados precisam ser protegidos antes da carga;

  • o volume deve ser reduzido;

  • o destino possui limitações;

  • regras precisam ser aplicadas previamente;

  • a governança exige forte controle antecipado.

Use ELT quando:

  • deseja preservar dados brutos;

  • precisa de flexibilidade;

  • utiliza uma plataforma analítica poderosa;

  • pretende criar múltiplos modelos;

  • trabalha com ciência de dados e IA;

  • precisa reprocessar históricos.

Use uma arquitetura híbrida quando:

  • segurança e flexibilidade são igualmente importantes;

  • existem sistemas legados e modernos;

  • parte das regras deve ocorrer antes da carga;

  • outras transformações podem acontecer depois.

Na maioria das grandes empresas, essa última opção é a mais realista.


Conclusão: o T apenas mudou de cabine

A evolução do ETL para o ELT representa muito mais do que a inversão de duas letras.

O ETL nasceu em um mundo no qual armazenamento e processamento eram caros. Por isso, os dados precisavam ser limpos, filtrados e modelados antes de entrar no Data Warehouse.

O ELT ganhou força em um mundo de armazenamento abundante, plataformas elásticas, nuvem, grandes volumes, inteligência artificial e necessidades analíticas que mudam rapidamente.

No ETL, o modelo decide o que entra.

No ELT, o dado entra primeiro e o modelo pode nascer depois.

Entretanto, isso não significa que o ETL esteja ultrapassado, que o batch tenha morrido ou que o mainframe tenha ficado para trás.

Muito pelo contrário.

Os sistemas COBOL, Db2, IMS, VSAM e CICS continuam gerando os dados mais críticos de inúmeras empresas. A diferença é que agora esses dados podem viajar por CDC, APIs, MQ, arquivos e eventos até plataformas modernas, nas quais são transformados, testados, modelados e utilizados em dashboards, algoritmos e aplicações de inteligência artificial.

O programador COBOL Padawan que compreende ETL e ELT deixa de enxergar apenas o programa e começa a enxergar a jornada completa do dado.

Ele entende de onde o registro nasceu.

Como foi extraído.

Onde foi armazenado.

Que regras foram aplicadas.

Quem consumiu a informação.

E o que acontece quando alguma etapa falha.

Essa visão transforma um simples programador em um verdadeiro engenheiro de sistemas corporativos.

No fim, o “T” não desapareceu.

Ele apenas mudou de posição.

Mudou de servidor.

Mudou de ferramenta.

Mudou de cabine na Enterprise.

Mas continua sendo responsável por uma das tarefas mais importantes de toda a engenharia de dados: transformar registros isolados em informação confiável.

E, como diria o Sr. Spock diante de um pipeline perfeitamente reconciliado:

“Dados sem contexto são apenas registros. Dados transformados com lógica tornam-se conhecimento.”

Vida longa ao COBOL.

Vida longa ao SQL.

E vida longa aos pipelines que conectam o IBM Z ao futuro.

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...