Instalar ou atualizar o SDK do Apache Beam

Nesta página, você vai aprender a instalar ou atualizar o SDK do Apache Beam para 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 de lançamento mais recente do SDK do Apache Beam para Java é a 2.77.0. Consulte o anúncio de lançamento (em inglês) para informações sobre as mudanças 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 gestão de dependências ao seu pom.xml arquivo para o 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 de lançamento mais recente do SDK do Apache Beam para Python é a 2.77.0. Consulte o anúncio de lançamento (em inglês) para informações sobre as mudanças 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 de lançamento mais recente do SDK do Apache Beam para Go é 2.77.0. Consulte o anúncio de lançamento (em inglês) para informações sobre as mudanças 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 e ambiente de desenvolvimento para usar Google Cloud 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 se há possíveis alterações interruptivas entre as versões.

Verificar as notas da versão e as alterações interruptivas

Antes de fazer o 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 todos os lançamentos intermediários. Por exemplo, se você estiver fazendo upgrade da versão 2.50.0 para 2.60.0, revise as notas da versão 2.51.0 até 2.60.0. As alterações interruptivas, as descontinuações e as atualizações de configuração são cumulativas em todos os lançamentos.

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

Atualizar as dependências do SDK

Para fazer upgrade da versão do SDK no 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 seu 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 do Java.

Python

Para fazer upgrade do SDK do Apache Beam para Python no ambiente local ou virtual ambiente, 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 file:

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 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: os 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 job 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 implementar upgrades do SDK em pipelines de build e implantação automatizados, siga estas práticas recomendadas:

  • Fixar dependências: sempre fixe versões exatas do SDK, como apache-beam[gcp]==VERSION no Python ou strings de versão exatas no Maven e no Gradle. Evite intervalos dinâmicos (como >= ou latest) para impedir que upgrades secundários não testados ocorram durante builds automatizados de CI/CD.
  • Validar em ambientes de preparo: implante e teste o pipeline atualizado em um ambiente de preparo ou pré-produção dedicado antes de promover as mudanças para a produção. Valide a capacidade de processamento do pipeline, a estabilidade das métricas e as saídas downstream.
  • Usar um pipeline de teste ou paralelo: para aplicativos de streaming de missão crítica 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 esgotar o pipeline mais antigo.

A seguir