Engenharia de Dados
Padrões SQL, modelagem, identidade, qualidade, deduplicação e fluxos analíticos de dados.
O que vive neste domínio hoje.
A profundidade cresce a partir de trabalho real. Espaço vazio é intencional; Estudo nunca deve se passar por Produção.
7 entradas
Reprocesse uma pequena janela de overlap para não perder silenciosamente registros que chegaram atrasados.
Normalize chaves inconsistentes de metadata em um schema estável antes de reporting/export.
Escolha o registro sobrevivente primeiro pela confiança da fonte e depois pela recência.
Escolha o primeiro valor não nulo entre vários campos candidatos.
Traduza regras explícitas de negócio para uma classificação legível por linha.
Normalize múltiplas populações de origem em um único formato de staging sem deduplicar cedo demais.
Compare dicionários normalizados para identificar chaves adicionadas, removidas ou alteradas entre exports.
9 entradas
Use ROW_NUMBER() quando a pergunta de negócio for “qual única linha deve sobreviver dentro de cada grupo lógico?”. A parte difícil não é a função — é definir corretamente a partição e a regra de ordenação.
Uma regra de Golden Record muitas vezes precisa considerar confiança da fonte, prioridade de status ou precedência de permissão antes da recência. Coloque essas regras no ORDER BY da window function para que a linha sobrevivente represente o contrato de negócio.
Em Data Extensions e Data Views grandes, o lado em que a função é aplicada pode decidir se o banco consegue usar índice de forma eficiente. Sempre que possível, mantenha as colunas pesquisáveis “nuas” no lado esquerdo dos predicados.
A maioria dos problemas do tipo “minha contagem explodiu” é problema de grain. Defina o que uma linha representa em cada fonte antes de escrever o JOIN.
Quando uma Query Activity acumula joins, scans e transformações demais, divida o trabalho em etapas determinísticas. Você ganha observabilidade, scans menores e isolamento de falhas muito melhor.
O texto SQL é só metade da Query Activity. A target action muda a forma como a plataforma escreve os dados e pode virar gargalo conforme o alvo cresce.
Use NTILE() quando você precisa de grupos aleatórios equilibrados. Use módulo de _CustomObjectKey quando precisa de uma divisão muito barata e aproximadamente uniforme em Data Extensions padrão grandes e o equilíbrio exato não é obrigatório.
Uma Data Extension é uma tabela relacional, não uma lista ordenada. ORDER BY é útil junto com TOP ou window functions para escolher quais linhas vencem, mas consumidores downstream nunca devem depender da ordem física das linhas.
Esses são os defaults que quero lembrar antes de promover uma query de exploração para uma automação produtiva.
4 entradas
Nomeie as colunas que pretende mover em vez de depender de SELECT *.
Camada pragmática de consolidação dentro do SFMC quando CRM/MDM corporativo não está disponível.
Conveniente durante exploração, frágil como contrato durável de dados.
Normalize metadata externa em registros tipados e estáveis antes de construir relatórios, grafos ou drift.
3 entradas
Transforme registros duplicados em uma seleção de vencedor repetível, com identidade, prioridade de fonte e desempate explícitos.
Consolide identidade dentro do SFMC quando a empresa ainda não possui uma camada dedicada de CRM/MDM, mantendo o workaround explícito.
Normalize dois exports, compare fingerprints estáveis e revise drift de dependências antes de migração ou mudança estrutural.