Componentes do Dataflow

Os componentes do Dataflow permitem enviar jobs do Apache Beam para execução no Dataflow. No Dataflow, um recurso Job representa um job do Dataflow.

O SDK dos componentes do pipeline Google Cloud inclui os seguintes operadores para criar recursos Job e monitorar a execução deles:

Além disso, o SDK dos componentes do pipeline Google Cloud inclui o componente WaitGcpResourcesOp, que pode ser usado para reduzir custos durante a execução de jobs do Dataflow.

DataflowFlexTemplateJobOp

O operador DataflowFlexTemplateJobOp permite criar um componente de pipelines da Vertex AI para iniciar um modelo Flex do Dataflow.

No Dataflow, um recurso LaunchFlexTemplateParameter representa um modelo Flex a ser iniciado. Esse componente cria um recurso LaunchFlexTemplateParameter e solicita que o Dataflow crie um job ao iniciar o modelo. Se o modelo for iniciado com sucesso, o Dataflow vai retornar um recurso Job.

O componente do modelo flexível do Dataflow é encerrado ao receber um recurso Job do Dataflow. O componente gera um job_id como um proto gcp_resources serializado. É possível transmitir esse parâmetro a um componente WaitGcpResourcesOp para aguardar a conclusão do job do Dataflow.

DataflowPythonJobOp

O operador DataflowPythonJobOp permite criar um componente do Vertex AI Pipelines que prepara dados enviando um job do Apache Beam baseado em Python para o Dataflow para execução.

O código Python do job do Apache Beam é executado com o Dataflow Runner. Quando você executa o pipeline com o serviço Dataflow, o executor faz upload do código executável para o local especificado pelo parâmetro python_module_path e das dependências para um bucket do Cloud Storage (especificado por temp_location) e, em seguida, cria um job do Dataflow que executa o pipeline do Apache Beam em recursos gerenciados em Google Cloud.

Para saber mais sobre o executor do Dataflow, consulte Como usar o executor do Dataflow.

O componente Python do Dataflow aceita uma lista de argumentos transmitidos pelo executor do Beam para o código do Apache Beam. Esses argumentos são especificados por args. Por exemplo, é possível usar esses argumentos para definir o apache_beam.options.pipeline_options para especificar uma rede, uma sub-rede, uma chave de criptografia gerenciada pelo cliente (CMEK, na sigla em inglês) e outras opções ao executar jobs do Dataflow.

WaitGcpResourcesOp

Os jobs do Dataflow podem levar muito tempo para serem concluídos. Os custos de um contêiner busy-wait, que inicia o job do Dataflow e aguarda o resultado, podem ficar caros.

Depois de enviar o job do Dataflow pelo executor do Beam, o componente DataflowPythonJobOp é encerrado imediatamente e retorna um parâmetro de saída job_id como um proto gcp_resources serializado. É possível transmitir esse parâmetro a um componente WaitGcpResourcesOp para aguardar a conclusão do job 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 executá-lo de forma sem servidor e não tem custo.

Se DataflowPythonJobOp e DataflowFlexTemplateJobOp não atenderem aos requisitos, você também poderá criar seu próprio componente que gera o parâmetro gcp_resources e o transmite para o componente WaitGcpResourcesOp.

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

Referência da API

Tutoriais

Histórico de versões e notas da versão

Para saber mais sobre o histórico de versões e as mudanças no SDK de componentes de pipeline Google Cloud , consulte as Notas de lançamento do SDK de componentes de pipelineGoogle Cloud .

Contatos do suporte técnico

Se você tiver alguma dúvida, entre em contato com kubeflow-pipelines-components@google.com.