O modelo Cloud Pub/Sub para Cloud Storage Text é um pipeline de streaming que lê registros do Cloud Pub/Sub e os salva como uma série de arquivos do Cloud Storage em formato de texto. O modelo pode ser usado como uma maneira rápida de salvar dados em Pub/Sub para uso futuro. Por padrão, o modelo gera um novo arquivo a cada cinco minutos.
Requisitos de pipeline
- O tópico do Pub/Sub precisa existir antes da execução.
- As mensagens publicadas no tópico precisam estar em formato de texto.
- As mensagens publicadas no tópico não podem conter novas linhas. Observe que cada mensagem do Pub/Sub é salva como uma linha única no arquivo de saída.
Parâmetros do modelo
Parâmetros obrigatórios
- outputDirectory: o caminho e o prefixo do nome do arquivo para gravar arquivos de saída. Por exemplo,
gs://bucket-name/path/. Esse valor precisa terminar com uma barra. - outputFilenamePrefix: o prefixo a ser colocado em cada arquivo em janela. Por exemplo,
output-. O padrão é: saída.
Parâmetros opcionais
- inputTopic: o tópico do Pub/Sub em que a entrada será lida. O nome do tópico precisa estar no formato
projects/<PROJECT_ID>/topics/<TOPIC_NAME>. - userTempLocation: o diretório fornecido pelo usuário para enviar arquivos temporários. Precisa terminar com uma barra.
- outputFilenameSuffix: o sufixo a ser colocado em cada arquivo em janela. Normalmente, uma extensão de arquivo, como
.txtou.csv. 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,Psã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-NNdeoutputShardTemplateé00-of-01. - yearPattern: padrão para formatar o ano. Precisa ser
youY. 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 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
dpara o dia do mês ouDpara 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 Text Files on Cloud Storage template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Opcional: para alternar do processamento "Exatamente uma vez" para o modo de streaming "Pelo menos uma vez", selecione Pelo menos uma vez.
- 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_GCS_Text \ --region REGION_NAME \ --staging-location STAGING_LOCATION \ --parameters \ inputTopic=projects/PROJECT_ID/topics/TOPIC_NAME,\ outputDirectory=gs://BUCKET_NAME/output/,\ outputFilenamePrefix=output-,\ outputFilenameSuffix=.txt
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-central1VERSION: a versão do modelo que você quer usarUse estes valores:
latestpara 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 Storage
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_GCS_Text { "jobName": "JOB_NAME", "environment": { "ipConfiguration": "WORKER_IP_UNSPECIFIED", "additionalExperiments": [] }, "parameters": { "inputTopic": "projects/PROJECT_ID/topics/TOPIC_NAME" "outputDirectory": "gs://BUCKET_NAME/output/", "outputFilenamePrefix": "output-", "outputFilenameSuffix": ".txt", } }
Substitua:
PROJECT_ID: o ID do projeto 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-central1VERSION: a versão do modelo que você quer usarUse estes valores:
latestpara 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 Storage
A seguir
- Saiba mais sobre os modelos do Dataflow.
- Confira a lista de modelos fornecidos pelo Google.