O modelo do Pub/Sub para arquivos do Avro no Cloud Storage é um pipeline de streaming que lê dados de um tópico do Pub/Sub e grava arquivos Avro no bucket especificado do Cloud Storage.
Requisitos de pipeline
- O tópico de entrada do Pub/Sub precisa existir antes da execução do pipeline.
Parâmetros do modelo
Parâmetros obrigatórios
- inputTopic: o tópico do Pub/Sub a ser assinado para consumo de mensagens. O nome do tópico deve estar no formato projects/<PROJECT_ID>/topics/<TOPIC_NAME>.
- outputDirectory: o diretório de saída em que os arquivos Avro de saída são arquivados. Precisa conter / no final. Exemplo: gs://example-bucket/example-directory/.
- avroTempDirectory: diretório para arquivos Avro temporários. Precisa conter / no final. Exemplo: gs://example-bucket/example-directory/.
Parâmetros opcionais
- outputFilenamePrefix: o prefixo do nome de arquivo de saída dos arquivos Avro. O padrão é: saída.
- outputFilenameSuffix: o sufixo do nome do arquivo de saída dos arquivos Avro. O padrão é vazio.
- outputShardTemplate: o modelo de fragmento define a parte dinâmica de cada arquivo em janela. Por padrão, o pipeline usa um único fragmento para saída para o sistema de arquivos em cada janela. Portanto, todos os dados são enviados em um único arquivo por janela. O padrão de
outputShardTemplate
éto W-P-SS-of-NN
, em queW
é o intervalo de datas da janela,P
são as informações do painel,S
é o número do fragmento eN
é a quantidade de fragmentos. No caso de um único arquivo, a parteSS-of-NN
deoutputShardTemplate
é00-of-01
. - yearPattern : padrão para formatar o ano. Precisa ser
y
ouY
. O uso de maiúsculas e minúsculas não faz diferença no ano. Como opção, coloque o padrão entre caracteres não alfanuméricos ou use o caractere de diretório ("/"). O padrão éYYYY
. - monthPattern (padrão): padrão para formatar o mês. Precisa ter um ou mais do caractere
M
. Como opção, coloque o padrão entre caracteres não alfanuméricos ou use o caractere de diretório ("/"). O padrão éMM
. - dayPattern : padrão para formatar o dia. Precisa ser um ou mais do caractere
d
para o dia do mês ouD
para o dia do ano. Como opção, coloque o padrão entre caracteres não alfanuméricos ou use o caractere de diretório ("/"). O padrão édd
. - hourPattern : padrão para formatar a hora. Precisa ter um ou mais do caractere
H
. Como opção, coloque o padrão entre caracteres não alfanuméricos ou use o caractere de diretório ("/"). O padrão éHH
. - minutePattern : padrão para formatar os minutos. Precisa ter um ou mais do caractere
m
. Como opção, coloque o padrão entre caracteres não alfanuméricos ou use o caractere de diretório ("/"). O padrão émm
.
Executar o modelo
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. A região padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Pub/Sub to Avro Files on Cloud Storage template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Cloud_PubSub_to_Avro \ --region REGION_NAME \ --staging-location STAGING_LOCATION \ --parameters \ inputTopic=projects/PROJECT_ID/topics/TOPIC_NAME,\ outputDirectory=gs://BUCKET_NAME/output/,\ outputFilenamePrefix=FILENAME_PREFIX,\ outputFilenameSuffix=FILENAME_SUFFIX,\ outputShardTemplate=SHARD_TEMPLATE,\ avroTempDirectory=gs://BUCKET_NAME/temp/
Substitua:
JOB_NAME
: um nome de job de sua escolhaREGION_NAME
: a região onde você quer implantar o job do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates-REGION_NAME/latest/- o nome da versão, como
2023-09-12-00_RC00
, para usar uma versão específica do modelo, que pode ser encontrada aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates-REGION_NAME/
STAGING_LOCATION
: o local para fase de testes de arquivos locais (por exemplo,gs://your-bucket/staging
)TOPIC_NAME
: o nome do tópico do Pub/SubBUCKET_NAME
: o nome do bucket do Cloud StorageFILENAME_PREFIX
: o prefixo de nome de arquivo de saída de sua preferênciaFILENAME_SUFFIX
: o sufixo de nome de arquivo de saída de sua preferênciaSHARD_TEMPLATE
: o modelo de fragmento de saída de sua preferência
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/Cloud_PubSub_to_Avro { "jobName": "JOB_NAME", "environment": { "ipConfiguration": "WORKER_IP_UNSPECIFIED", "additionalExperiments": [] }, "parameters": { "inputTopic": "projects/PROJECT_ID/topics/TOPIC_NAME", "outputDirectory": "gs://BUCKET_NAME/output/", "avroTempDirectory": "gs://BUCKET_NAME/temp/", "outputFilenamePrefix": "FILENAME_PREFIX", "outputFilenameSuffix": "FILENAME_SUFFIX", "outputShardTemplate": "SHARD_TEMPLATE" } }
Substitua:
PROJECT_ID
: o ID do projeto do Google Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaLOCATION
: a região onde você quer implantar o job do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates-REGION_NAME/latest/- o nome da versão, como
2023-09-12-00_RC00
, para usar uma versão específica do modelo, que pode ser encontrada aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates-REGION_NAME/
STAGING_LOCATION
: o local para fase de testes de arquivos locais (por exemplo,gs://your-bucket/staging
)TOPIC_NAME
: o nome do tópico do Pub/SubBUCKET_NAME
: o nome do bucket do Cloud StorageFILENAME_PREFIX
: o prefixo de nome de arquivo de saída de sua preferênciaFILENAME_SUFFIX
: o sufixo de nome de arquivo de saída de sua preferênciaSHARD_TEMPLATE
: o modelo de fragmento de saída de sua preferência
A seguir
- Saiba mais sobre os modelos do Dataflow.
- Confira a lista de modelos fornecidos pelo Google.