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:
- 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 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]==VERSIONem Python ou strings de versão exatas em Maven e Gradle. Evite intervalos dinâmicos (como>=oulatest) 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
- 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 compatíveis, descontinuadas e desativadas.