Componenti Dataflow

I componenti Dataflow consentono di inviare job Apache Beam a Dataflow per l'esecuzione. In Dataflow, una risorsa Job rappresenta un job Dataflow.

L'SDK Google Cloud Pipeline components include i seguenti operatori per creare risorse Job e monitorarne l'esecuzione:

Inoltre, l'SDK Google Cloud Pipeline Componenti include il componente WaitGcpResourcesOp, che puoi utilizzare per mitigare i costi durante l'esecuzione dei job Dataflow.

DataflowFlexTemplateJobOp

L'operatore DataflowFlexTemplateJobOp consente di creare un componente Vertex AI Pipelines per avviare un modello Dataflow Flex.

In Dataflow, una risorsa LaunchFlexTemplateParameter rappresenta un modello flessibile da avviare. Questo componente crea una risorsa LaunchFlexTemplateParameter e quindi richiede a Dataflow di creare un job avviando il modello. Se il modello viene avviato correttamente, Dataflow restituisce una risorsa Job.

Il componente Dataflow Flex Template termina alla ricezione di una risorsa Job da Dataflow. Il componente genera un job_id come proto gcp_resources serializzato. Puoi passare questo parametro a un componente WaitGcpResourcesOp in attesa del completamento del job Dataflow.

DataflowPythonJobOp

L'operatore DataflowPythonJobOp consente di creare un componente Vertex AI Pipelines che prepara i dati inviando un job Apache Beam basato su Python a Dataflow per l'esecuzione.

Il codice Python del job Apache Beam viene eseguito con Dataflow Runner. Quando esegui la pipeline con il servizio Dataflow, il runner carica il codice eseguibile nella posizione specificata dal parametro python_module_path e dalle dipendenze in un bucket Cloud Storage (specificato da temp_location), quindi crea un job Dataflow che esegue la pipeline Apache Beam sulle risorse gestite in Google Cloud.

Per saperne di più su Dataflow Runner, consulta Utilizzo dell'esecuzione di Dataflow.

Il componente Python di Dataflow accetta un elenco di argomenti passati tramite Beam Runner al codice Apache Beam. Questi argomenti sono specificati da args. Ad esempio, puoi utilizzare questi argomenti per impostare apache_beam.options.pipeline_options in modo da specificare una rete, una subnet, una chiave di crittografia gestita dal cliente (CMEK) e altre opzioni quando esegui i job Dataflow.

WaitGcpResourcesOp

Il completamento dei job Dataflow può spesso richiedere molto tempo. I costi di un container busy-wait (il container che avvia il job Dataflow e attende il risultato) possono diventare costosi.

Dopo aver inviato il job Dataflow utilizzando il runner Beam, il componente DataflowPythonJobOp termina immediatamente e restituisce un parametro di output job_id come proto gcp_resources in serie. Puoi passare questo parametro a un componente WaitGcpResourcesOp in attesa del completamento del job 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 ottimizza WaitGcpResourcesOp in modo che venga eseguito in modalità serverless, senza costi.

Se DataflowPythonJobOp e DataflowFlexTemplateJobOp non soddisfano i tuoi requisiti, puoi anche creare un tuo componente che generi il parametro gcp_resources e passarlo al componente WaitGcpResourcesOp.

Per maggiori informazioni su come creare il parametro di output gcp_resources, consulta Scrivere un componente per mostrare un link alla console Google Cloud.

Riferimento API

Tutorial

Cronologia delle versioni e note di rilascio

Per saperne di più sulla cronologia delle versioni e sulle modifiche all'SDK Google Cloud Pipeline Componenti, consulta le note di rilascio dell'SDK Google Cloud Pipeline Componenti.

Contatti dell'assistenza tecnica

In caso di domande, scrivi all'indirizzo kubeflow-pipelines-components@google.com.