Componentes do Dataflow

O DataflowPythonJobOp permite que você crie um componente do Vertex AI Pipelines que prepara dados enviando um job do Apache Beam gravado em Python para Dataflow para execução.

O código do Python Beam é executado com o executor do Dataflow. Quando você executa o pipeline com o serviço Dataflow, o executor faz upload do parâmetro e dependências do código executável (especificado por python_module_path) para um bucket do Cloud Storage (especificado por temp_location) cria um job do Dataflow que executa o pipeline do Apache Beam em recursos gerenciados no 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 passados por meio do 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.

Em vez disso, depois de enviar o job do Dataflow pelo executor do Beam, o componente DataflowPythonJobOp será encerrado imediatamente. Um job_id é retornado pelo componente como um proto gcp_resources serializado. Essa saída pode ser transmitida para 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 não atender aos requisitos (por exemplo, se você precisar pré-processar antes de chamar o executor do Beam ou usar uma linguagem diferente, como o Java do Beam), também será possível criar seu próprio componente que gera o parâmetro gcp_resources para aproveitar o componente WaitGcpResourcesOp. Para saber mais detalhes sobre como criar um parâmetro de saída gcp_resources, consulte Criar um componente para mostrar um link do Console do Google Cloud.

Referência da API

Para referência de componentes, consulte a referência do SDK google_cloud_pipeline_components.

Tutoriais

Histórico de versões e registro de alterações

Data Versão Notas
03/2022 GCPC v1.0 Versão 1.0 dos componentes.
02/2022 GCPC v0.3 Nova versão experimental dos componentes.
11/2021 GCPC v0.2 Versão experimental dos componentes.

Contatos do suporte técnico

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