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 de componentes de pipeline do Google Cloud inclui os seguintes operadores para criar recursos Job
e monitorar a execução deles:
Além disso, o SDK de componentes de pipeline do 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ível para iniciar. Esse componente cria um recurso LaunchFlexTemplateParameter
e solicita que o Dataflow crie um job iniciando o modelo. Se o modelo for lançado com sucesso, o Dataflow retornará um recurso Job
.
O componente de modelo flexível do Dataflow termina 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 para um componente WaitGcpResourcesOp
para aguardar a conclusão do job do Dataflow.
DataflowPythonJobOp
O operador DataflowPythonJobOp
permite criar um componente de pipelines da Vertex AI 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 no local especificado pelo parâmetro python_module_path
e dependências em um bucket do Cloud Storage (especificado por temp_location
). Em seguida, 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 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
Para conferir a referência de componentes, consulte a referência do SDK de componentes de pipeline do Google Cloud para componentes do Dataflow.
Para referência de recursos do Dataflow, consulte as seguintes páginas de referência da API:
LaunchFlexTemplateParameter
RecursoJob
Recurso
Tutoriais
- Primeiros passos com o componente de modelo flexível do Dataflow
- Primeiros passos com o componente do job em Python do Dataflow
- Especificar uma rede e sub-rede
- Como usar chaves de criptografia gerenciadas pelo cliente (CMEK)
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 dos componentes do Google Cloud Pipeline, consulte as Notas de lançamento do SDK dos componentes do Google Cloud Pipeline.
Contatos do suporte técnico
Se você tiver alguma dúvida, entre em contato com kubeflow-pipelines-components@google.com.