Instala o actualiza el SDK de Apache Beam

En esta página, se muestra cómo instalar o actualizar el SDK de Apache Beam para que puedas ejecutar tus canalizaciones en el servicio de Dataflow.

Instalar el SDK de Apache Beam

El SDK de Apache Beam es un modelo de programación de código abierto para canalizaciones de datos. Debes definir estas canalizaciones con un programa Apache Beam y puedes elegir un ejecutor, como Dataflow, para ejecutar tu canalización.

Java

La versión más reciente del SDK de Apache Beam para Java es la 2.76.0. Consulta el anuncio de actualización para obtener información sobre los cambios que se incluyen en la actualización.

Para obtener el SDK de Apache Beam para Java con Maven, usa uno de los artefactos publicados del Repositorio central de Maven.

Agrega dependencias y herramientas de administración de dependencias al archivo pom.xml para el artefacto del SDK. Para obtener más información, consulta Administra dependencias de canalizaciones en Dataflow.

Para obtener más información sobre el SDK de Apache Beam para las dependencias de Java, consulta SDK de Apache Beam para dependencias de Java y Administra dependencias de Beam en Java. en la documentación de Apache Beam.

Python

La versión más reciente del SDK de Apache Beam para Python es la 2.76.0. Consulta el anuncio de actualización para obtener información sobre los cambios que se incluyen en la actualización.

A fin de obtener el SDK de Apache Beam para Python, usa uno de los paquetes publicados del Índice de paquetes de Python.

Instala la rueda de Python mediante la ejecución del siguiente comando:

pip install wheel

Instala la versión más reciente del SDK de Apache Beam para Python. Para hacerlo, ejecuta el siguiente comando desde un entorno virtual:

pip install 'apache-beam[gcp]'

Según la conexión, la instalación puede demorar un poco.

Go

La versión más reciente del SDK de Apache Beam para Go es la 2.76.0. Consulta el anuncio de actualización para obtener información sobre los cambios que se incluyen en la actualización.

Si deseas instalar la versión más reciente del SDK de Apache Beam para Go, ejecuta el siguiente comando:

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

Configura tu entorno de desarrollo

Si deseas obtener información para configurar tu proyecto Google Cloud y el entorno de desarrollo para usar Dataflow, sigue uno de los siguientes instructivos:

Código fuente y ejemplos

El código fuente de Apache Beam está disponible en el repositorio de Apache Beam en GitHub.

Java

Las muestras de código están disponibles en el Directorio de ejemplos de Apache Beam en GitHub.

Python

Las muestras de código están disponibles en el Directorio de ejemplos de Apache Beam en GitHub.

Go

Las muestras de código están disponibles en el Directorio de ejemplos de Apache Beam en GitHub.

Busca la versión del SDK de Dataflow

Los detalles de instalación dependen de tu entorno de desarrollo. Si usas Maven, puedes tener varias versiones del SDK de Dataflow “instaladas” en uno o más repositorios locales de Maven.

Java

Para saber qué versión del SDK de Dataflow se ejecuta en una canalización determinada, puedes ver la salida de la consola cuando se ejecuta con DataflowPipelineRunner o BlockingDataflowPipelineRunner. En la consola, aparecerá un mensaje como el que se muestra a continuación, que contiene la información de la versión del SDK de Dataflow:

Python

Para saber qué versión del SDK de Dataflow se ejecuta en una canalización determinada, puedes ver la salida de la consola cuando se ejecuta con DataflowRunner. En la consola, aparecerá un mensaje como el que se muestra a continuación, que contiene la información de la versión del SDK de Dataflow:

Go

Para saber qué versión del SDK de Dataflow se ejecuta en una canalización determinada, puedes ver la salida de la consola cuando se ejecuta con DataflowRunner. En la consola, aparecerá un mensaje como el que se muestra a continuación, que contiene la información de la versión del SDK de Dataflow:

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

Actualiza el SDK de Apache Beam

Cuando actualices tu canalización a una versión posterior del SDK de Apache Beam, actualiza las configuraciones de dependencia de tu proyecto y verifica si hay posibles cambios que interrumpan la compatibilidad entre versiones.

Revisa las notas de la versión y los cambios rotundos

Antes de actualizar, consulta las notas de la versión de Apache Beam para conocer los cambios, las correcciones de errores y los posibles cambios rotundos.

Si actualizas varias versiones secundarias, revisa las notas de la versión de todas las versiones intermedias. Por ejemplo, si actualizas de la versión 2.50.0 a la 2.60.0, revisa las notas de la versión de las versiones 2.51.0 a 2.60.0. Los cambios rotundos, las bajas y las actualizaciones de configuración son acumulativos en todas las versiones.

Para conocer los problemas conocidos y los avisos específicos del conector que afectan a Dataflow, consulta la columna Detalles en la tabla Estado de compatibilidad de la versión del SDK.

Actualiza las dependencias del SDK

Para actualizar la versión del SDK en tu proyecto, actualiza la configuración de compilación o el entorno para el lenguaje que usa tu canalización. Reemplaza VERSION por la versión de destino del SDK de Apache Beam (por ejemplo, 2.76.0).

Java

Para actualizar el SDK de Apache Beam para Java, actualiza la versión del SDK en tu archivo de configuración de compilación, como pom.xml para Maven o build.gradle para Gradle.

Maven

En tu archivo pom.xml, actualiza la propiedad beam.version o la etiqueta <version> en tus dependencias de 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

En tu archivo build.gradle, actualiza las declaraciones de dependencia de Apache Beam:

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

Para obtener más información, consulta Administra las dependencias de canalización de Java.

Python

Para actualizar el SDK de Apache Beam para Python en tu entorno local o virtual, usa pip:

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

En tu archivo requirements.txt o setup.py, actualiza la versión fijada:

apache-beam[gcp]==VERSION

Go

Para actualizar el SDK de Apache Beam para Go, usa go get para recuperar la versión de destino y actualizar tu archivo go.mod:

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

Para obtener más información, consulta Administra las dependencias de canalizaciones de Go.

Implementa canalizaciones actualizadas

Después de actualizar la versión del SDK en tu código, elige una estrategia de implementación según el tipo de canalización:

  • Canalizaciones de transmisión: Para las canalizaciones de transmisión, puedes implementar código actualizado con el reemplazo de trabajos en la misma ubicación, la ejecución de canalizaciones paralelas o la detención y el reinicio del trabajo. Para obtener instrucciones detalladas, reglas de compatibilidad y estrategias de implementación, consulta Actualiza una canalización existente y Actualiza una canalización de transmisión.
  • Canalizaciones por lotes: Las canalizaciones por lotes no admiten actualizaciones en tránsito ni trabajos de reemplazo in situ. Permite que el trabajo existente se ejecute hasta completarse o cancela el trabajo en ejecución y, luego, inicia un trabajo nuevo con la versión actualizada del SDK.

Prácticas recomendadas para la CI/CD y la actualización de implementaciones

Para minimizar el riesgo operativo cuando implementes actualizaciones del SDK en canalizaciones automatizadas de compilación e implementación, sigue estas prácticas recomendadas:

  • Fija las dependencias: Siempre fija las versiones exactas del SDK, como apache-beam[gcp]==VERSION en Python o cadenas de versión exactas en Maven y Gradle. Evita los rangos dinámicos (como >= o latest) para evitar que se produzcan actualizaciones secundarias no probadas durante las compilaciones automatizadas de CI/CD.
  • Valida en entornos de etapa de pruebas: Implementa y prueba tu canalización actualizada en un entorno de etapa de pruebas o preproducción dedicado antes de promover los cambios a producción. Valida la capacidad de procesamiento de la canalización, la estabilidad de las métricas y los resultados posteriores.
  • Usa canalizaciones de prueba o paralelas: Para las aplicaciones de transmisión de servicio crítico, ejecuta la canalización actualizada en paralelo con la canalización existente. Verifica la paridad de los datos y la exactitud de los resultados entre ambos trabajos antes de agotar la canalización anterior.

¿Qué sigue?