46 pessoas cuja identidade era um número de telefone

46 membros deixaram de existir porque uma migração usou o telefone como identidade. Levaram consigo €8.511 de receita.

46 people whose identity was a phone number

The €100 Lakehouse — 9/12

46 membros deixaram de existir porque uma migração usou o telefone como identidade. Levaram consigo €8.511 de receita.

O importador usava o telefone — um campo opcional — como chave de identidade. Reimplementei o leitor XLSX e o norm_phone verbatim e reproduzi a execução linha a linha:

→ 42 saltados: sem telefone utilizável
→ 10: telefone duplicado (um partial unique index)
→ 4: data de nascimento no futuro (typos no ficheiro)
→ 2: telefone já de outra pessoa

1.437 linhas → 1.379 importadas, 58 skips — igual ao log original.

O indício, entre os membros criados: nem um telefone em branco, e nenhum repetido — numa população onde famílias partilham número. Não é coincidência, é o índice.

A assinatura familiar: números de sócio adjacentes — 421/422, 622/623, 757/758. Inscreveram-se juntos; ficou um.

E os rankings discordam. "Sem telefone" cortou mais cabeças (20 membros) e pôs €0,00 no buraco de maio — dormentes. Os 4 com DOB futura pagavam todos: €269 em maio. Ordena os defeitos pelo dinheiro que sangram hoje, não pelas cabeças que cortam — só um desses rankings paga contas.

Perder a person era perder todos os pagamentos: 138 pagamentos, €8.511 all-time.

Qual dos sistemas estava a mentir — o novo ou o antigo? Para a semana: o veredicto que ninguém ousa escrever.

E vocês: qual foi o campo mais inocente que já viram promovido a chave de identidade — e o que apagou em silêncio?

Databricks · dbt · Airflow · Terraform · AWS

P.S. Novo post tech todas as quartas-feiras.

#100EuroLakehouse #DataEngineering #DataMigration

Comentários