Componentes de Dataflow

Los componentes de Dataflow te permiten enviar trabajos de Apache Beam a Dataflow para su ejecución. En Dataflow, un recurso Job representa un trabajo de Dataflow.

El SDK de los componentes de canalización de Google Cloud incluye los siguientes operadores para crear recursos Job y supervisar su ejecución:

Además, el SDK de los componentes de canalización de Google Cloud incluye el componente WaitGcpResourcesOp, que puedes usar para mitigar costos mientras ejecutas trabajos de Dataflow.

DataflowFlexTemplateJobOp

El operador DataflowFlexTemplateJobOp te permite crear un componente de Vertex AI Pipelines para iniciar una plantilla de Flex de Dataflow.

En Dataflow, un recurso LaunchFlexTemplateParameter representa una plantilla de Flex que se iniciará. Este componente crea un recurso LaunchFlexTemplateParameter y, luego, solicita a Dataflow que cree un trabajo mediante el inicio de la plantilla. Si la plantilla se inicia de forma correcta, Dataflow muestra un recurso Job.

El componente de plantilla de Flex de Dataflow finaliza cuando se recibe un recurso Job de Dataflow. El componente genera un job_id como un .proto gcp_resources serializado. Puedes pasar este parámetro a un componente WaitGcpResourcesOp para esperar a que se complete el trabajo de Dataflow.

DataflowPythonJobOp

El operador DataflowPythonJobOp te permite crear un componente de Vertex AI Pipelines que prepare datos mediante el envío de un trabajo de Apache Beam basado en Python a Dataflow para su ejecución.

El código de Python del trabajo de Apache Beam se ejecuta con Dataflow Runner. Cuando ejecutas la canalización con el servicio de Dataflow, el ejecutor sube tu código ejecutable a la ubicación que especifica el parámetro python_module_path y las dependencias a un bucket de Cloud Storage (especificado por temp_location) y, luego, crea un trabajo de Dataflow que ejecuta tu canalización de Apache Beam en recursos administrados en Google Cloud.

Para obtener más información sobre Dataflow Runner, consulta Usa Dataflow Runner.

El componente de Python para Dataflow acepta una lista de argumentos que se pasan a través del ejecutor de Beam a tu código de Apache Beam. args especifica estos argumentos. Por ejemplo, puedes usar estos argumentos para configurar apache_beam.options.pipeline_options a fin de especificar una red, una subred, una clave de encriptación administrada por el cliente (CMEK) y otras opciones cuando ejecutas trabajos de Dataflow.

WaitGcpResourcesOp

Los trabajos de Dataflow a menudo pueden tardar mucho tiempo en completarse. Los costos de un contenedor busy-wait (el contenedor que inicia el trabajo de Dataflow y espera el resultado) pueden ser caros.

Después de enviar el trabajo de Dataflow a través del ejecutor de Beam, el componente DataflowPythonJobOp finaliza de inmediato y muestra un parámetro de salida job_id como un proto gcp_resources serializado. Puedes pasar este parámetro a un componente WaitGcpResourcesOp para esperar a que se complete el trabajo de Dataflow.

    dataflow_python_op = DataflowPythonJobOp(
        project=project_id,
        location=location,
        python_module_path=python_file_path,
        temp_location = staging_dir,
        requirements_file_path = requirements_file_path,
        args = ['--output', OUTPUT_FILE],
    )
  
    dataflow_wait_op =  WaitGcpResourcesOp(
        gcp_resources = dataflow_python_op.outputs["gcp_resources"]
    )

Vertex AI Pipelines optimiza el WaitGcpResourcesOp para ejecutarlo sin servidores y sin costos.

Si DataflowPythonJobOp y DataflowFlexTemplateJobOp no cumplen con tus requisitos, también puedes crear tu propio componente que genere el parámetro gcp_resources y lo pase al componente WaitGcpResourcesOp.

Para obtener más información sobre cómo crear el parámetro de salida gcp_resources, consulta Escribe un componente para mostrar un vínculo de la consola de Google Cloud.

Referencia de la API

Instructivos

Historial de versiones y notas de la versión

Para obtener más información sobre el historial de versiones y los cambios en el SDK de componentes de canalización de Google Cloud, consulta las notas de la versión del SDK de componentes de canalización de Google Cloud.

Contactos de asistencia técnica

Si tienes alguna pregunta, comunícate con kubeflow-pipelines-components@google.com.