Evolução automatizada de schema no framework de ingestão de banco de dados do Pinterest
Aprofundamento CEVIU
Aprofundamento
O Pinterest aprimorou seu framework de ingestão de dados com um sistema sofisticado de evolução automatizada de schema. Essa solução, construída sobre Kafka, Flink, Spark e Iceberg, gerencia as constantes mudanças nos schemas de bancos de dados upstream. O sistema trata o schema não apenas como metadados, mas como um contrato inter-sistemas que abrange ingestão, transformação e armazenamento. Ele gera automaticamente código Flink, definições de tabelas Iceberg e queries essenciais, garantindo consistência entre os artefatos gerados na hora de onboardar novas tabelas e quando seus schemas evoluem. A detecção de desvios de schema utiliza mecanismos de push-based (baseado em DDL CDC messages) e pull-based (comparação diária), garantindo baixa latência e um sistema de backup. Todas as alterações passam por um fluxo de trabalho baseado em Pull Request (PR), o que viabiliza auditabilidade, versionamento e um modelo operacional mais seguro.
A abordagem adota um modelo de convergência em fases para lidar com a evolução de schema. Primeiro, os schemas Iceberg são atualizados. Em seguida, o código Flink e Spark é atualizado para processar as mudanças. Finalmente, o Spark realiza o backfill de dados históricos, se necessário, e a tabela base converge para o schema e conteúdo online mais recentes. Essa estratégia permite que as alterações sejam propagadas de forma controlada, minimizando o risco de interrupções e inconsistências. O sistema suporta um subconjunto restrito de mudanças de schema, focando principalmente em adições (additive changes) para preservar a compatibilidade retroativa e simplificar a gestão de dados históricos.
Por que isso importa
A capacidade de gerenciar a evolução de schema de forma automatizada é crucial em ecossistemas de dados complexos como o do Pinterest. Sem um sistema robusto, mudanças de schema podem quebrar jobs Flink, impedir operações de upsert no Spark ou gerar inconsistências entre as representações online e offline dos dados. A solução do Pinterest garante a disponibilidade contínua dos pipelines, ao mesmo tempo que mantém a integridade e a correção dos dados. A abordagem de convergência em fases e o suporte a um conjunto específico de mudanças (additive changes) demonstram um entendimento profundo dos desafios operacionais e do trade-off entre compatibilidade e a complexidade de reprocessamento de dados históricos. Isso se traduz em maior confiabilidade, menor esforço manual e mais agilidade para adaptar a infraestrutura de dados a novas necessidades de negócio.
Linha do tempo
Pinterest anuncia ingestão com CDC que reduz latência de 24h para 15 min
Pinterest detalha plataforma de ingestão CDC com Kafka, Flink, Spark e Iceberg
Pinterest apresenta framework de evolução de schema automatizada para ingestão de dados
Perguntas frequentes
Como o Pinterest detecta mudanças de schema?
O Pinterest utiliza dois mecanismos complementares: um caminho push-based, onde mensagens DDL CDC disparam o fluxo de trabalho para comparar schemas com o catálogo Iceberg, e um caminho pull-based, com um job diário que verifica desvios entre schemas online e offline. A detecção push oferece baixa latência, enquanto a pull é uma rede de segurança.
Quais tipos de mudanças de schema são suportadas automaticamente?
O sistema foca em mudanças aditivas, que preservam a compatibilidade retroativa e evitam a complexidade de reprocessar dados históricos. Mudanças de tipo mais arriscadas, como STRING para INT, exigem migração manual ou backfill completo.
O que acontece se a automação de schema falhar?
Em casos de falha da automação ou quando um backfill se faz necessário dentro do SLA, o sistema recorre ao modelo de onboarding. Isso envolve selecionar um snapshot de backup da origem, sobrescrever a tabela base com esse snapshot e reverter o watermark do Spark para restaurar a consistência entre tabelas online e offline.
Fontes
- medium.comfonte original
- Categoria
- CEVIU Dados
- Publicado
- 29 de junho de 2026
- Editoria
- CEVIU Dados
