Componentes do Dataflow

Os componentes do Dataflow permitem-lhe enviar tarefas do Apache Beam para execução no Dataflow. No Dataflow, um recurso representa uma tarefa do Dataflow.Job

O Google Cloud SDK inclui os seguintes operadores para criar recursos Job e monitorizar a respetiva execução:

Além disso, o Google Cloud SDK inclui o componente WaitGcpResourcesOp, que pode usar para mitigar os custos durante a execução de tarefas do Dataflow.

DataflowFlexTemplateJobOp

O operador DataflowFlexTemplateJobOp permite-lhe criar um componente dos Vertex AI Pipelines para lançar um modelo flexível do Dataflow.

No Dataflow, um recurso LaunchFlexTemplateParameter representa um modelo flexível a ser iniciado. Este componente cria um recurso LaunchFlexTemplateParameter e, em seguida, pede ao Dataflow para criar uma tarefa através do lançamento do modelo. Se o modelo for iniciado com êxito, o Dataflow devolve um recurso Job.

O componente do modelo flexível do Dataflow termina após receber um recurso de Job do Dataflow. O componente produz um job_id como um proto gcp_resourcesserializado. Pode transmitir este parâmetro a um componente WaitGcpResourcesOp para aguardar a conclusão da tarefa do Dataflow.

DataflowPythonJobOp

O operador DataflowPythonJobOp permite-lhe criar um componente do Vertex AI Pipelines que prepara dados através do envio de uma tarefa do Apache Beam baseada em Python para o Dataflow para execução.

O código Python da tarefa do Apache Beam é executado com o Dataflow Runner. Quando executa a sua pipeline com o serviço Dataflow, o executor carrega o código executável para a localização especificada pelo parâmetro python_module_path e as dependências para um contentor do Cloud Storage (especificado por temp_location) e, em seguida, cria uma tarefa do Dataflow que executa a sua pipeline do Apache Beam em recursos geridos no Google Cloud.

Para saber mais sobre o Dataflow Runner, consulte o artigo Usar o Dataflow Runner.

O componente Python do Dataflow aceita uma lista de argumentos que são transmitidos através do Beam Runner para o seu código do Apache Beam. Estes argumentos são especificados por args. Por exemplo, pode usar estes argumentos para definir o apache_beam.options.pipeline_options para especificar uma rede, uma sub-rede, uma chave de encriptação gerida pelo cliente (CMEK) e outras opções quando executa tarefas do Dataflow.

WaitGcpResourcesOp

As tarefas do Dataflow podem demorar muito tempo a ser concluídas. Os custos de um contentor busy-wait (o contentor que inicia a tarefa do Dataflow e aguarda o resultado) podem tornar-se caros.

Depois de enviar a tarefa do Dataflow através do executor do Beam, o componente DataflowPythonJobOp termina imediatamente e devolve um parâmetro de saída job_id como um proto serializado.gcp_resources Pode transmitir este parâmetro a um componente WaitGcpResourcesOp para aguardar a conclusão da tarefa do 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"]
    )

O Vertex AI Pipelines otimiza o WaitGcpResourcesOp para o executar de forma sem servidor e não tem custos.

Se DataflowPythonJobOp e DataflowFlexTemplateJobOp não cumprirem os seus requisitos, também pode criar o seu próprio componente que produz o parâmetro gcp_resources e transmiti-lo ao componente WaitGcpResourcesOp.

Para mais informações sobre como criar o parâmetro de saída gcp_resources, consulte o artigo Escreva um componente para mostrar um Google Cloud link da consola.

Referência da API

Tutoriais

Histórico de versões e notas de lançamento

Para saber mais sobre o histórico de versões e as alterações ao Google Cloud SDK de componentes de pipeline, consulte as Google Cloud notas de lançamento do SDK de componentes de pipeline.

Contactos do apoio técnico

Se tiver dúvidas, contacte kubeflow-pipelines-components@google.com.