Instalar ou atualizar o SDK do Apache Beam

Nesta página, você vai aprender a instalar ou atualizar o SDK do Apache Beam para poder executar pipelines no serviço Dataflow.

Instale o SDK do Apache Beam

O SDK do Apache Beam é um modelo de programação de código aberto para pipelines de dados. Esses pipelines são definidos usando um programa do Apache Beam, e é possível escolher um executor, como o Dataflow, para executar o pipeline.

Java

A versão mais recente do SDK do Apache Beam para Java é a 2.76.0. Veja o anúncio de lançamento (em inglês) para informações sobre as alterações incluídas na versão.

Para acessar o SDK do Apache Beam para Java usando o Maven, use um dos artefatos lançados no Repositório central do Maven.

Adicione dependências e ferramentas de gerenciamento de dependências ao arquivo pom.xml do artefato do SDK. Para detalhes, consulte Gerenciar dependências de pipeline no Dataflow.

Para mais informações sobre dependências de SDK do Apache Beam para Java, confira Dependências de SDK do Apache Beam para Java e Como gerenciar dependências de Beam em Java na documentação do Apache Beam.

Python

A versão mais recente do SDK do Apache Beam para Python é a 2.76.0. Veja o anúncio de lançamento (em inglês) para informações sobre as alterações incluídas na versão.

Para fazer o download do SDK do Apache Beam para Python, use um dos pacotes lançados no Índice de pacotes do Python.

Instale a roda Python do Python executando o seguinte comando:

pip install wheel

Instale a versão mais recente do SDK do Apache Beam para Python executando o seguinte comando em um ambiente virtual:

pip install 'apache-beam[gcp]'

Dependendo da conexão, a instalação pode levar algum tempo.

Go

A versão mais recente do SDK do Apache Beam para Go é a 2.76.0. Veja o anúncio de lançamento (em inglês) para informações sobre as alterações incluídas na versão.

Para instalar a versão mais recente do SDK do Apache Beam para Go, execute o seguinte comando:

go get -u github.com/apache/beam/sdks/v2/go/pkg/beam

Configurar o ambiente de desenvolvimento

Para informações sobre como configurar seu projeto do Google Cloud e o ambiente de desenvolvimento para usar o Dataflow, siga um dos tutoriais:

Código-fonte e exemplos

O código-fonte do Apache Beam está disponível no repositório do Apache Beam (em inglês) no GitHub.

Java

Há amostras de código disponíveis no diretório de exemplos do Apache Beam no GitHub.

Python

Há amostras de código disponíveis no diretório de exemplos do Apache Beam no GitHub.

Go

Há amostras de código disponíveis no diretório de exemplos do Apache Beam no GitHub.

Encontrar a versão do SDK do Dataflow

Os detalhes da instalação dependem do ambiente de desenvolvimento. Se você está usando o Maven, pode ter várias versões de SDK do Dataflow "instaladas" em um ou mais repositórios locais do Maven.

Java

Para descobrir qual versão do SDK do Dataflow um determinado pipeline está executando, observe a saída do console ao executar com DataflowPipelineRunner ou BlockingDataflowPipelineRunner. O console contém uma mensagem como esta, com informações de versão do SDK do Dataflow:

Python

Para descobrir qual versão do SDK do Dataflow um determinado pipeline está executando, é possível analisar a saída do console ao executar com DataflowRunner. O console contém uma mensagem como esta, com informações de versão do SDK do Dataflow:

Go

Para descobrir qual versão do SDK do Dataflow um determinado pipeline está executando, é possível analisar a saída do console ao executar com DataflowRunner. O console contém uma mensagem como esta, com informações de versão do SDK do Dataflow:

  INFO: Executing pipeline on the Dataflow Service, ...
  Dataflow SDK version: <version>

Atualizar o SDK do Apache Beam

Ao fazer upgrade do pipeline para uma versão mais recente do SDK do Apache Beam, atualize as configurações de dependência do projeto e verifique possíveis mudanças incompatíveis entre as versões.

Verificar notas de lançamento e mudanças interruptivas

Antes de fazer upgrade, consulte as notas da versão do Apache Beam para conferir mudanças, correções de bugs e possíveis alterações interruptivas.

Se você estiver fazendo upgrade em várias versões secundárias, revise as notas da versão de todas as versões intermediárias. Por exemplo, se você estiver fazendo upgrade da versão 2.50.0 para 2.60.0, consulte as notas da versão 2.51.0 até 2.60.0. Mudanças incompatíveis, descontinuações e atualizações de configuração são cumulativas em todas as versões.

Para problemas conhecidos e avisos específicos do conector que afetam o Dataflow, consulte a coluna Detalhes na tabela Status de suporte da versão do SDK.

Atualizar dependências do SDK

Para fazer upgrade da versão do SDK no seu projeto, atualize a configuração do build ou o ambiente da linguagem usada pelo pipeline. Substitua VERSION pela versão de destino do SDK do Apache Beam (por exemplo, 2.76.0).

Java

Para fazer upgrade do SDK do Apache Beam para Java, atualize a versão do SDK no arquivo de configuração de build, como pom.xml para Maven ou build.gradle para Gradle.

Maven

No arquivo pom.xml, atualize a propriedade beam.version ou a tag <version> nas dependências do Apache Beam:

<properties>
  <beam.version>VERSION</beam.version>
</properties>

<dependencies>
  <dependency>
    <groupId>org.apache.beam</groupId>
    <artifactId>beam-sdks-java-core</artifactId>
    <version>${beam.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.beam</groupId>
    <artifactId>beam-runners-google-cloud-dataflow-java</artifactId>
    <version>${beam.version}</version>
  </dependency>
</dependencies>

Gradle

No arquivo build.gradle, atualize as declarações de dependência do Apache Beam:

dependencies {
  implementation 'org.apache.beam:beam-sdks-java-core:VERSION'
  implementation 'org.apache.beam:beam-runners-google-cloud-dataflow-java:VERSION'
}

Para mais informações, consulte Gerenciar dependências de pipeline Java.

Python

Para fazer upgrade do SDK do Apache Beam para Python no ambiente local ou virtual, use pip:

pip install --upgrade 'apache-beam[gcp]==VERSION'

No arquivo requirements.txt ou setup.py, atualize a versão fixada:

apache-beam[gcp]==VERSION

Go

Para fazer upgrade do SDK do Apache Beam para Go, use go get para recuperar a versão de destino e atualizar o arquivo go.mod:

go get -u github.com/apache/beam/sdks/v2@vVERSION
go mod tidy

Para mais informações, consulte Gerenciar dependências de pipeline do Go.

Implantar pipelines atualizados

Depois de atualizar a versão do SDK no seu código, escolha uma estratégia de implantação com base no tipo de pipeline:

  • Pipelines de streaming: para pipelines de streaming, é possível implantar o código atualizado usando a substituição de jobs no local, executando pipelines paralelos ou interrompendo e reiniciando o job. Para instruções detalhadas, regras de compatibilidade e estratégias de implantação, consulte Atualizar um pipeline atual e Fazer upgrade de um pipeline de streaming.
  • Pipelines em lote: não oferecem suporte a atualizações em andamento ou jobs de substituição no local. Deixe o job atual ser concluído ou cancele o job em execução e inicie um novo com a versão atualizada do SDK.

Práticas recomendadas para CI/CD e atualização de implantações

Para minimizar o risco operacional ao lançar upgrades de SDK em pipelines automatizados de build e implantação, siga estas práticas recomendadas:

  • Fixar dependências: sempre fixe as versões exatas do SDK, como apache-beam[gcp]==VERSION em Python ou strings de versão exatas em Maven e Gradle. Evite intervalos dinâmicos (como >= ou latest) para impedir que upgrades secundários não testados ocorram durante builds de CI/CD automatizados.
  • Valide em ambientes de preparo: implante e teste o pipeline atualizado em um ambiente dedicado de preparo ou pré-produção antes de promover as mudanças para a produção. Valide a capacidade de processamento do pipeline, a estabilidade da métrica e as saídas downstream.
  • Use um teste ou pipelines paralelos: para aplicativos de streaming essenciais, execute o pipeline atualizado em paralelo com o pipeline atual. Verifique a paridade de dados e a correção da saída entre os dois jobs antes de drenar o pipeline mais antigo.

A seguir