O modelo Pub/Sub para ficheiros Avro no Cloud Storage é um pipeline de streaming que lê dados de um tópico do Pub/Sub e escreve ficheiros Avro no contentor do Cloud Storage especificado.
Requisitos do pipeline
- O tópico Pub/Sub de entrada tem de existir antes da execução do pipeline.
Parâmetros de modelos
Parâmetros obrigatórios
- inputTopic: o tópico do Pub/Sub ao qual subscrever para o consumo de mensagens. O nome do tópico tem de estar no formato
projects/<PROJECT_ID>/topics/<TOPIC_NAME>
. - outputDirectory: o diretório de saída onde os ficheiros Avro de saída são arquivados. Tem de conter
/
no final. Por exemplo:gs://example-bucket/example-directory/
. - avroTempDirectory: o diretório para ficheiros Avro temporários. Tem de conter
/
no final. Por exemplo:gs://example-bucket/example-directory/
.
Parâmetros opcionais
- outputFilenamePrefix: o prefixo do nome do ficheiro de saída para os ficheiros Avro. A predefinição é: output.
- outputFilenameSuffix: o sufixo do nome do ficheiro de saída para os ficheiros Avro. A predefinição é vazio.
- outputShardTemplate: o modelo de fragmento define a parte dinâmica de cada ficheiro dividido em janelas. Por predefinição, o pipeline usa um único fragmento para a saída para o sistema de ficheiros em cada janela. Por conseguinte, todos os dados são enviados para um único ficheiro por janela. O valor predefinido é
outputShardTemplate
, ondeto W-P-SS-of-NN
é o intervalo de datas da janela,P
são as informações do painel,S
é o número de fragmentos eN
é o número de fragmentos.W
No caso de um único ficheiro, a parteSS-of-NN
dooutputShardTemplate
é00-of-01
. - yearPattern: padrão para formatar o ano. Tem de ser um ou mais de
y
ouY
. A caixa não faz diferença no ano. Opcionalmente, envolva o padrão com carateres que não sejam alfanuméricos ou o caráter de diretório (/
). A predefinição éYYYY
. - monthPattern: padrão para formatar o mês. Tem de ser um ou mais carateres
M
. Opcionalmente, envolva o padrão com carateres que não sejam alfanuméricos ou o caráter de diretório (/
). A predefinição éMM
. - dayPattern: padrão para formatar o dia. Tem de ser um ou mais dos seguintes valores:
d
para o dia do mês ouD
para o dia do ano. Opcionalmente, envolva o padrão com carateres que não sejam alfanuméricos ou o caráter de diretório (/
). A predefinição édd
. - hourPattern: padrão para formatar a hora. Tem de ser um ou mais carateres
H
. Opcionalmente, envolva o padrão com carateres que não sejam alfanuméricos ou o caráter de diretório (/
). A predefinição éHH
. - minutePattern: padrão para formatar o minuto. Tem de ser um ou mais carateres
m
. Opcionalmente, envolva o padrão com carateres que não sejam alfanuméricos ou o caráter de diretório (/
). A predefinição émm
.
Execute o modelo
Consola
- Aceda à página do fluxo de dados Criar tarefa a partir de um modelo. Aceda a Criar tarefa a partir de modelo
- No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
- Opcional: para Ponto final regional, selecione um valor no menu pendente. A região
predefinida é
us-central1
.Para ver uma lista das regiões onde pode executar uma tarefa do Dataflow, consulte as localizações do Dataflow.
- No menu pendente Modelo do fluxo de dados, selecione the Pub/Sub to Avro Files on Cloud Storage template.
- Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
- Clique em Executar tarefa.
gcloud
Na 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 o seguinte:
JOB_NAME
: um nome de tarefa exclusivo à sua escolhaREGION_NAME
: a região onde quer implementar a tarefa do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que quer usarPode usar os seguintes valores:
latest
para usar a versão mais recente do modelo, que está disponível na pasta principal sem data no contentor: 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 pasta principal com a data correspondente no contentor: gs://dataflow-templates-REGION_NAME/
STAGING_LOCATION
: a localização para organizar ficheiros locais (por exemplo,gs://your-bucket/staging
)TOPIC_NAME
: o nome do tópico do Pub/SubBUCKET_NAME
: o nome do seu contentor do Cloud StorageFILENAME_PREFIX
: o prefixo do nome do ficheiro de saída preferidoFILENAME_SUFFIX
: o sufixo do nome do ficheiro de saída preferidoSHARD_TEMPLATE
: o modelo de fragmento de saída preferido
API
Para executar o modelo através da API REST, envie um pedido HTTP POST. Para mais informações sobre a API e os respetivos âmbitos 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 o seguinte:
PROJECT_ID
: o ID do projeto onde quer executar a tarefa do Dataflow Google CloudJOB_NAME
: um nome de tarefa exclusivo à sua escolhaLOCATION
: a região onde quer implementar a tarefa do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que quer usarPode usar os seguintes valores:
latest
para usar a versão mais recente do modelo, que está disponível na pasta principal sem data no contentor: 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 pasta principal com a data correspondente no contentor: gs://dataflow-templates-REGION_NAME/
STAGING_LOCATION
: a localização para organizar ficheiros locais (por exemplo,gs://your-bucket/staging
)TOPIC_NAME
: o nome do tópico do Pub/SubBUCKET_NAME
: o nome do seu contentor do Cloud StorageFILENAME_PREFIX
: o prefixo do nome do ficheiro de saída preferidoFILENAME_SUFFIX
: o sufixo do nome do ficheiro de saída preferidoSHARD_TEMPLATE
: o modelo de fragmento de saída preferido
O que se segue?
- Saiba mais sobre os modelos do Dataflow.
- Consulte a lista de modelos fornecidos pela Google.