Como configurar modelos Flex

Nesta página, você encontra informações sobre as variáveis de ambiente Dockerfile e os parâmetros de pipeline compatíveis para os modelos do Dataflow Flex.

Como configurar variáveis de ambiente do Dockerfile necessárias

Se quiser criar seu próprio arquivo do Docker para um job de modelo Flex, especifique as seguintes variáveis de ambiente:

Java

Especifique FLEX_TEMPLATE_JAVA_MAIN_CLASS e FLEX_TEMPLATE_JAVA_CLASSPATH no seu Dockerfile.

Python

Especifique o seguinte no Dockerfile: FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE, FLEX_TEMPLATE_PYTHON_PY_FILE, FLEX_TEMPLATE_PYTHON_PY_OPTIONS e FLEX_TEMPLATE_PYTHON_SETUP_FILE

Por exemplo, configuramos as seguintes variáveis de ambiente no tutorial Streaming em modelos flexíveis do Python:

ENV FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE="${WORKDIR}/requirements.txt"
ENV FLEX_TEMPLATE_PYTHON_PY_FILE="${WORKDIR}/streaming_beam.py"

Como alterar a imagem base

Use uma imagem de base fornecida pelo Google para empacotar os contêineres usando o Docker. Escolha o nome de versão mais recente na referência de imagens de base dos modelos Flex. Não selecione latest.

Especifique a imagem base no seguinte formato:

gcr.io/dataflow-templates-base/IMAGE_NAME:VERSION_NAME

Substitua:

Como especificar parâmetros do pipeline

As opções de pipeline são parâmetros de execução que configuram como e onde executar jobs do Dataflow. É possível definir as seguintes opções de pipeline do Dataflow para jobs de modelo flexível usando a ferramenta de linha de comando gcloud:

Java

Campo Tipo Descrição Valor padrão
gcpTempLocation String Caminho do Cloud Storage para arquivos temporários. Precisa ser um URL do Cloud Storage válido, começando com gs://.
numWorkers int O número inicial de instâncias do Google Compute Engine a serem usadas na execução do canal. Essa opção determina quantos trabalhadores são iniciados no serviço Dataflow quando o job começa. Se não for especificado, o serviço Dataflow determinará um número adequado de workers.
maxNumWorkers int O número máximo de instâncias do Compute Engine a serem disponibilizadas para o canal durante a execução. Observe que esse valor pode ser superior ao número inicial de workers, especificado por numWorkers para permitir que o job seja escalonado automaticamente ou não. Se não foi especificado, um número adequado de workers é determinado no serviço Dataflow.
numberOfWorkerHarnessThreads int O número de linhas de execução por uso de worker. Se não for especificado, o serviço do Dataflow determina um número apropriado de linhas de execução por worker.
workerRegion String

Especifica uma região do Compute Engine para iniciar instâncias de worker para executar o pipeline. Essa opção é usada para executar workers em um local diferente do region usado para implantar, gerenciar e monitorar jobs. A zona de workerRegion é atribuída automaticamente.

Observação: essa opção não pode ser combinada com workerZone ou zone.

Se não for definido, usará o valor padrão region.
workerZone String

Especifica uma zona do Compute Engine para inicialização de instâncias de worker a fim de executar o pipeline. Essa opção é usada para executar workers em um local diferente do region usado para implantar, gerenciar e monitorar jobs.

Observação: essa opção não pode ser combinada com workerRegion ou zone.

Se você especificar region ou workerRegion, workerZone usará como padrão uma zona da região correspondente. É possível modificar esse comportamento especificando uma zona diferente.
zone String (Obsoleto) Para o SDK 2.17.0 ou anterior do Apache Beam, isso especifica a zona do Compute Engine para iniciar instâncias de worker para executar o pipeline. Se você especificar region, zone usará como padrão uma zona da região correspondente. É possível modificar esse comportamento especificando uma zona diferente.
dataflowKmsKey String Especifica a chave de criptografia gerenciada pelo cliente (CMEK, na sigla em inglês) usada para criptografar dados em repouso. É possível controlar a chave de criptografia por meio do Cloud KMS. Para usar este recurso, você também precisa especificar gcpTempLocation. Se não for especificado, o Dataflow usará a criptografia padrão do Google Cloud em vez de um CMEK.
network String A rede do Compute Engine para iniciar instâncias desse serviço para a execução do canal. Saiba como especificar a rede. Se não for definido, o Google Cloud pressupõe que você pretende usar uma rede chamada default.
subnetwork String A sub-rede do Compute Engine para iniciar instâncias desse serviço para execução do canal. Saiba como especificar a sub-rede. O valor padrão é determinado no serviço Dataflow.
enableStreamingEngine boolean Especifica se o Streaming Engine do Dataflow está ativado ou desativado. Se ativado, "true". A ativação do Streaming Engine permite que você execute as etapas do pipeline de streaming no back-end do serviço Dataflow, economizando CPU, memória e recursos de armazenamento de disco permanente. O valor padrão é false. Isso significa que as etapas do pipeline de streaming são executadas inteiramente nas VMs de worker.
serviceAccount String Especifica uma conta de serviço do controlador gerenciada pelo usuário, usando o formato my-service-account-name@<project-id>.iam.gserviceaccount.com. Para mais informações, consulte a seção Conta de serviço do controlador, na página de permissões e segurança do Cloud Dataflow. Se não definido, os workers usam a conta de serviço do Compute Engine do seu projeto como a conta de serviço do controlador.
workerMachineType String

O tipo de máquina do Compute Engine que o Dataflow usa ao iniciar VMs de worker. Você pode usar qualquer uma das famílias de tipos de máquina do Compute Engine disponíveis, assim como usar tipos de máquinas personalizadas.

Para melhores resultados, use tipos de máquina n1. Os tipos de máquina com núcleo compartilhado, como workers da série f1 e g1, não recebem suporte de acordo com o Contrato de nível de serviço do Dataflow.

O Dataflow cobra pelo número de vCPUs e GB de memória nos workers. O faturamento não depende da família de tipos de máquinas.

No serviço Dataflow, o tipo de máquina é escolhido com base no job, caso você não defina essa opção.

Python

Campo Tipo Descrição Valor padrão
temp_location str Caminho do Cloud Storage para arquivos temporários. Precisa ser um URL do Cloud Storage válido, começando com gs://. Se não for definido, o padrão será staging_location. Para executar o pipeline na nuvem do Google, é preciso especificar pelo menos um temp_location ou staging_location.
num_workers int O número de instâncias do Compute Engine a serem usadas na execução do pipeline. Se não foi especificado, um número adequado de workers é determinado no serviço Dataflow.
max_num_workers int O número máximo de instâncias do Compute Engine a serem disponibilizadas para o canal durante a execução. Observe que esse valor pode ser superior ao número inicial de workers, especificado por num_workers para permitir que o job seja escalonado automaticamente ou não. Se não foi especificado, um número adequado de workers é determinado no serviço Dataflow.
number_of_worker_harness_threads int O número de linhas de execução por uso de worker. Se não for especificado, o serviço do Dataflow determina um número apropriado de linhas de execução por worker. Para usar esse parâmetro, também é necessário usar a sinalização --experiments=use_runner_v2
worker_region String

Especifica uma região do Compute Engine para iniciar instâncias de worker para executar o pipeline. Essa opção é usada para executar workers em um local diferente do region usado para implantar, gerenciar e monitorar jobs. A zona de worker_region é atribuída automaticamente.

Observação: essa opção não pode ser combinada com worker_zone ou zone.

Se não for definido, usará o valor padrão region.
worker_zone String

Especifica uma zona do Compute Engine para inicialização de instâncias de worker a fim de executar o pipeline. Essa opção é usada para executar workers em um local diferente do region usado para implantar, gerenciar e monitorar jobs.

Observação: essa opção não pode ser combinada com worker_region ou zone.

Se você especificar region ou worker_region, worker_zone usará como padrão uma zona da região correspondente. É possível modificar esse comportamento especificando uma zona diferente.
zone str (Obsoleto) Para o SDK 2.17.0 ou anterior do Apache Beam, isso especifica a zona do Compute Engine para iniciar instâncias de worker para executar o pipeline. Se você especificar region, zone usará como padrão uma zona da região correspondente. É possível modificar esse comportamento especificando uma zona diferente.
dataflow_kms_key str Especifica a chave de criptografia gerenciada pelo cliente (CMEK, na sigla em inglês) usada para criptografar dados em repouso. É possível controlar a chave de criptografia por meio do Cloud KMS. Para usar este recurso, você também precisa especificar temp_location. Se não for especificado, o Dataflow usará a criptografia padrão do Google Cloud em vez de um CMEK.
network str A rede do Compute Engine para iniciar instâncias desse serviço para a execução do canal. Saiba como especificar a rede. Se não for definido, o Google Cloud pressupõe que você pretende usar uma rede chamada default.
subnetwork str A sub-rede do Compute Engine para iniciar instâncias desse serviço para execução do canal. Saiba como especificar a sub-rede. O valor padrão é determinado no serviço Dataflow.
enable_streaming_engine bool Especifica se o Streaming Engine do Dataflow está ativado ou desativado. Se ativado, "true". A ativação do Streaming Engine permite que você execute as etapas do pipeline de streaming no back-end do serviço Dataflow, economizando CPU, memória e recursos de armazenamento de disco permanente. O valor padrão é false. Isso significa que as etapas do pipeline de streaming são executadas inteiramente nas VMs de worker.
service_account_email str Especifica uma conta de serviço do controlador gerenciada pelo usuário, usando o formato my-service-account-name@<project-id>.iam.gserviceaccount.com. Para mais informações, consulte a seção Conta de serviço do controlador, na página de permissões e segurança do Cloud Dataflow. Se não definido, os workers usam a conta de serviço do Compute Engine do seu projeto como a conta de serviço do controlador.
machine_type str

O tipo de máquina do Compute Engine que o Dataflow usa ao iniciar VMs de worker. Você pode usar qualquer uma das famílias de tipos de máquina do Compute Engine disponíveis, assim como usar tipos de máquinas personalizadas.

Para melhores resultados, use tipos de máquina n1. Os tipos de máquina com núcleo compartilhado, como workers da série f1 e g1, não recebem suporte de acordo com o Contrato de nível de serviço do Dataflow.

O Dataflow cobra pelo número de vCPUs e GB de memória nos workers. O faturamento não depende da família de tipos de máquinas.

No serviço Dataflow, o tipo de máquina é escolhido com base no job, caso você não defina essa opção.

A seguir