Modelos do Dataflow

Os modelos do Dataflow permitem organizar os pipelines no Cloud Storage e executá-los de diversos ambientes. É possível usar um dos modelos fornecidos pelo Google ou criar o seu próprio.

Os modelos oferecem outros benefícios em comparação com a implantação tradicional do Dataflow, como:

  • Não é necessário recompilar o código todas as vezes em que o pipeline for executado.
  • É possível executar os pipelines sem o ambiente de desenvolvimento e as dependências associadas que são comuns na implantação tradicional. Isso é útil para programar jobs em lote recorrentes.
  • Os parâmetros do ambiente de execução permitem personalizar a execução do pipeline.
  • Usuários não técnicos têm a possibilidade de executar modelos com o Console do Google Cloud, com a ferramenta de linha de comando gcloud ou com a API REST.

Como comparar a execução de jobs tradicionais e com modelo

Os modelos do Dataflow apresentam um novo fluxo de trabalho de desenvolvimento e execução que difere do fluxo de trabalho tradicional de execução de jobs. O fluxo de trabalho com modelo separa a etapa de desenvolvimento das etapas de organização e execução.

Jobs do Dataflow tradicionais

O desenvolvimento de pipelines e a execução de jobs no Apache Beam ocorrem dentro de um ambiente de desenvolvimento.

Fluxo de trabalho típico dos jobs tradicionais do Dataflow:

  1. Os desenvolvedores criam um ambiente de desenvolvimento e elaboram o pipeline. O ambiente inclui o SDK do Apache Beam e outras dependências.
  2. Os usuários executam o pipeline do ambiente de desenvolvimento. O SDK do Apache Beam organiza arquivos no Cloud Storage, cria um arquivo de solicitação de job e o envia para o serviço do Dataflow.

Jobs do Dataflow com modelo

Se você usar modelos do Dataflow, a organização e a execução serão etapas separadas. Essa separação dá mais flexibilidade para decidir quem executa jobs e onde eles serão executados.

Fluxo de trabalho típico dos jobs do Dataflow com modelo:

  1. Os desenvolvedores criam um ambiente de desenvolvimento e elaboram o pipeline. O ambiente inclui o SDK do Apache Beam e outras dependências.
  2. Os desenvolvedores executam o pipeline e criam um modelo. O SDK do Apache Beam organiza arquivos no Cloud Storage, cria um arquivo de modelo (semelhante ao de solicitação de job) e o salva no Cloud Storage.
  3. Outros usuários têm a possibilidade de executar jobs facilmente com o Console do Cloud, com a ferramenta de linha de comando gcloud ou com a API REST para enviar solicitações de execução de arquivos de modelo para o serviço do Dataflow.

Jobs do Dataflow com modelo flexível

Se você usar modelos flexíveis do Dataflow, a organização e a execução serão etapas separadas. Essa separação dá mais flexibilidade para decidir quem executa jobs, de onde eles são executados e as etapas de execução do job com base nos parâmetros de entrada e saída.

Fluxo de trabalho típico dos jobs do Dataflow com modelo flexível:

  1. Os desenvolvedores criam um ambiente de desenvolvimento e elaboram o pipeline. O ambiente inclui o SDK do Apache Beam e outras dependências.
  2. Os desenvolvedores empacotam o pipeline em um contêiner do Docker e usam a ferramenta de linha de comando gcloud para criar e salvar o arquivo de modelo flexível no Cloud Storage.
  3. Outros usuários têm a possibilidade de executar jobs facilmente com o Console do Cloud, com a ferramenta de linha de comando gcloud ou com a API REST para enviar solicitações de execução de arquivos de modelo flexível para o serviço do Dataflow.

Antes de começar

Para criar seus próprios modelos, verifique se a versão do SDK do Apache Beam é compatível com a criação de modelos.

Java: SDK 2.x

Para criar modelos com o SDK 2.x do Dataflow para Java, é necessário ter a versão 2.0.0-beta3 ou superior.

Python

Para criar modelos com o SDK 2.x do Dataflow para Python, é necessário ter a versão 2.0.0 ou superior.

Java: SDK 1.x

Para executar modelos com a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou superior do SDK do Cloud.

A seguir