Skip to main content

Migração de Pipeline: Prefect 1.4 → Prefect 3.0

Visão Geral

Este guia irá ajudá-lo a entender as principais diferenças e como migrar sua pipeline de forma segura.

Principais Mudanças

Pré-requisitos

Antes de começar a migração, certifique-se de que você possui:
  • ✅ Pipeline Prefect 1.4 funcionando corretamente
  • ✅ Acesso completo ao código fonte da pipeline
  • ✅ Conhecimento básico de YAML
  • ✅ Acesso ao repositório Git da pipeline

Estrutura de Arquivos

Estrutura Atual (Prefect 1.4)

Estrutura Nova (Prefect 3.0)

Passo a Passo da Migração

💡 Dica para Usuários de IDEs com LLM: Se você usa Cursor ou outra IDE com LLM integrada, pode usar o seguinte prompt para automatizar a migração:

1. Gerar Estrutura Base com CookieCutter

Use nosso template do cookiecutter para gerar rapidamente a estrutura de diretórios e arquivos necessários para uma nova pipeline Prefect. Para criar uma nova pipeline, instale uv e rode:
Você será solicitado a informar valores como secretaria e pipeline, que serão utilizados para preencher os nomes dos diretórios, arquivos e variáveis nos templates. O template gerado já segue o padrão de nomenclatura definido anteriormente. O template irá gerar automaticamente:
  • flow.py - Estrutura base do flow
  • prefect.yaml - Configuração do deployment
  • Dockerfile - Container para execução
  • pyproject.toml - Dependências do projeto
  • .dockerignore - Arquivos ignorados no build

2. Análise da Pipeline Atual

Antes de migrar, analise sua pipeline atual:

2.1 Analisar Configurações Atuais

Identifique as configurações da sua pipeline de dump de banco:
  • Schedules: Frequência, horário e timezone de execução
  • Parâmetros: Configurações específicas do banco e tabelas
  • Dependências: Imports e bibliotecas utilizadas

3. Migração do Schedule

3.1 Analisar o Schedule Atual

Examine seu arquivo schedules.py atual:

3.2 Converter para YAML

Crie a seção de schedules no prefect.yaml:

3.3 Mapeamento de Configurações

4. Migração do Flow

4.1 Identificar o Template

Para pipelines de dump de banco, use o template específico:

4.2 Adaptar Imports

4.3 Adaptar Decorators

4.4 Adaptar Parâmetros

5. Configuração do prefect.yaml

5.1 Estrutura Básica

5.2 Configuração de Schedules

6. Configuração de Work Pool

Este repositório utiliza dois work pools principais para execução dos deployments Prefect:
  • default-pool: Destinado à execução geral de pipelines, incluindo fluxos que não possuem requisitos especiais de rede ou infraestrutura. É o pool padrão para a maioria dos deployments.
  • datario-pool: Utilizado para pipelines que acessam bancos de dados ou sistemas internos da IplanRio, especialmente aqueles que exigem conexão via VPN. Esse pool garante que os jobs sejam executados em ambientes com acesso seguro e autorizado aos recursos internos.
Para pipelines de dump de banco de dados, use o datario-pool:

7. Migração de Secrets para Infisical

Para pipelines de dump de banco de dados, é necessário configurar as credenciais de acesso no Infisical. Acesse infisical.iplan.dados.rio e configure os secrets nos projetos:
  • prefect-jobs (produção)
  • prefect-jobs-staging (staging)

7.1 Estrutura de Pastas

Crie uma pasta com o nome da pipeline seguindo o seguinte padrão. Exemplo para a pipeline db-gestao-escolar:

7.2 Padrão de Nomenclatura

Para pipelines de ingestão de banco de dados, use sempre o padrão:
  • {PIPELINE_NAME_UPPER}__DB_USERNAME
  • {PIPELINE_NAME_UPPER}__DB_PASSWORD

7.3 Configuração no Flow

No seu flow, referencie as variáveis usando o caminho do Infisical:

Exemplos Práticos

Exemplo Completo

Flow (flow.py)

Configuração (prefect.yaml)