Modelos do Dataflow

Os modelos do Dataflow permitem-lhe criar um pacote de um pipeline do Dataflow para implementação. Em seguida, qualquer pessoa com as autorizações corretas pode usar o modelo para implementar o pipeline preparado. Pode criar os seus próprios modelos personalizados do Dataflow e a Google oferece modelos pré-criados para cenários comuns.

Vantagens

Os modelos têm várias vantagens em relação à implementação direta de um pipeline no Dataflow:

  • Os modelos separam a conceção do pipeline da implementação. Por exemplo, um programador pode criar um modelo e um cientista de dados pode implementar o modelo mais tarde.
  • Os modelos podem ter parâmetros que lhe permitem personalizar o pipeline quando implementa o modelo.
  • Pode implementar um modelo através da Google Cloud consola, da Google Cloud CLI ou de chamadas da API REST. Não precisa de um ambiente de desenvolvimento nem de dependências de pipeline instaladas no seu computador local.
  • Um modelo é um artefacto de código que pode ser armazenado num repositório de controlo de origem e usado em pipelines de integração contínua (CI/CD).

Modelos fornecidos pela Google

A Google oferece uma variedade de modelos do Dataflow de código aberto pré-criados que pode usar para cenários comuns. Para mais informações acerca dos modelos disponíveis, consulte o artigo Modelos fornecidos pela Google.

Compare modelos flexíveis e modelos clássicos

O Dataflow suporta dois tipos de modelos: modelos flexíveis, que são mais recentes, e modelos clássicos. Se estiver a criar um novo modelo do Dataflow, recomendamos que o crie como um modelo flexível.

Com um modelo flexível, o pipeline é incluído num pacote como uma imagem do Docker no Artifact Registry, juntamente com um ficheiro de especificação do modelo no Cloud Storage. A especificação do modelo contém um ponteiro para a imagem do Docker. Quando executa o modelo, o serviço Dataflow inicia uma VM do iniciador, extrai a imagem do Docker e executa o pipeline. O gráfico de execução é criado dinamicamente com base nos parâmetros de tempo de execução fornecidos pelo utilizador. Para usar a API para iniciar uma tarefa que usa um modelo flexível, use o método projects.locations.flexTemplates.launch.

Um modelo clássico contém a serialização JSON de um gráfico de tarefas do Dataflow. O código da pipeline tem de envolver todos os parâmetros de tempo de execução na interface ValueProvider. Esta interface permite que os utilizadores especifiquem valores de parâmetros quando implementam o modelo. Para usar a API para trabalhar com modelos clássicos, consulte a projects.locations.templates documentação de referência da API.

Os modelos flexíveis têm as seguintes vantagens em relação aos modelos clássicos:

  • Ao contrário dos modelos clássicos, os modelos flexíveis não requerem a interface ValueProvider para parâmetros de entrada. Nem todas as origens e destinos do Dataflow suportam ValueProvider.
  • Embora os modelos clássicos tenham um gráfico de tarefas estático, os modelos flexíveis podem construir dinamicamente o gráfico de tarefas. Por exemplo, o modelo pode selecionar um conetor de E/S diferente com base nos parâmetros de entrada.
  • Um modelo flexível pode realizar o pré-processamento numa máquina virtual (VM) durante a construção do pipeline. Por exemplo, pode validar os valores dos parâmetros de entrada.

Fluxo de trabalho do modelo

A utilização de modelos do Dataflow envolve os seguintes passos de nível elevado:

  1. Os programadores configuram um ambiente de programação e desenvolvem o respetivo pipeline. O ambiente inclui o SDK do Apache Beam e outras dependências.
  2. Consoante o tipo de modelo (Flex ou clássico):
    • Para modelos flexíveis, os programadores agrupam o pipeline numa imagem Docker, enviam a imagem para o Artifact Registry e carregam um ficheiro de especificação do modelo para o Cloud Storage.
    • Para modelos clássicos, os programadores executam o pipeline, criam um ficheiro de modelo e preparam o modelo para o Cloud Storage.
  3. Outros utilizadores enviam um pedido ao serviço Dataflow para executar o modelo.
  4. O Dataflow cria um pipeline a partir do modelo. O pipeline pode demorar entre cinco e sete minutos a começar a ser executado.

Defina autorizações de IAM

As tarefas do Dataflow, incluindo as tarefas executadas a partir de modelos, usam duas contas de serviço do IAM:

  • O serviço Dataflow usa uma conta de serviço do Dataflow para manipular Google Cloud recursos, como a criação de VMs.
  • As VMs do worker do Dataflow usam uma conta de serviço do worker para aceder aos ficheiros e a outros recursos do seu pipeline. Esta conta de serviço precisa de acesso a todos os recursos aos quais a tarefa do pipeline faz referência, incluindo a origem e o destino usados pelo modelo. Para mais informações, consulte o artigo Aceda aos Google Cloud recursos.

Certifique-se de que estas duas contas de serviço têm funções adequadas. Para mais informações, consulte Segurança e autorizações do fluxo de dados.

Requisitos da versão do SDK do Apache Beam

Para criar os seus próprios modelos, certifique-se de que a versão do SDK do Apache Beam suporta a criação de modelos.

Java

Para criar modelos com o Apache Beam SDK 2.x para Java, tem de ter a versão 2.0.0-beta3 ou superior.

Python

Para criar modelos com o Apache Beam SDK 2.x para Python, tem de ter a versão 2.0.0 ou superior.

Para executar modelos com a CLI do Google Cloud, tem de ter a CLI do Google Cloud versão 138.0.0 ou superior.

Expanda modelos

Pode criar os seus próprios modelos expandindo os modelos do Dataflow de código aberto. Por exemplo, para um modelo que usa uma duração de janela fixa, os dados que chegam fora da janela podem ser rejeitados. Para evitar este comportamento, use o código do modelo como base e modifique o código para invocar a operação .withAllowedLateness.

O que se segue?