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:
- Crea una canalización de Dataflow con Java
- Crea una canalización de Dataflow con Python
- Crea una canalización de Dataflow con Go
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]==VERSIONen Python o cadenas de versión exactas en Maven y Gradle. Evita los rangos dinámicos (como>=olatest) 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?
- Dataflow se integra con Google Cloud CLI. Con el fin de obtener instrucciones para instalar la interfaz de línea de comandos de Dataflow, consulta Usa la interfaz de línea de comandos de Dataflow.
- Para obtener información sobre las capacidades de Apache Beam compatibles con Dataflow, revisa la matriz de capacidad de Apache Beam.
- Revisa el estado de compatibilidad de la versión del SDK para ver las versiones del SDK compatibles, las que están en desuso y las que se retiraron.