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:
- Criar um pipeline do Dataflow usando Java
- Criar um pipeline do Dataflow usando Python
- Criar um pipeline do Dataflow usando Go
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]==VERSIONno Python ou strings de versão exatas no Maven e no Gradle. Evite intervalos dinâmicos (como>=oulatest) 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
- O Dataflow se integra à Google Cloud CLI. Veja instruções sobre como instalar a interface de linha de comando do Dataflow em Como usar a interface de linha de comando do Dataflow.
- Para saber quais recursos do Apache Beam são compatíveis com o Dataflow, consulte a matriz de recursos do Apache Beam.
- Consulte o status de suporte da versão do SDK para conferir as versões do SDK com suporte, suspensas e desativadas.