Modelo de compressão em massa de ficheiros do Cloud Storage

O modelo Comprimir ficheiros do Cloud Storage em massa é um pipeline em lote que comprime ficheiros no Cloud Storage para uma localização especificada. Este modelo pode ser útil quando precisa de comprimir grandes lotes de ficheiros como parte de um processo de arquivo periódico. Os modos de compressão suportados são: BZIP2, DEFLATE e GZIP. Os ficheiros enviados para a localização de destino seguem um esquema de nomenclatura do nome de ficheiro original anexado com a extensão do modo de compressão. As extensões anexadas serão uma das seguintes: .bzip2, .deflate, .gz.

Todos os erros que ocorram durante o processo de compressão são enviados para o ficheiro de falhas no formato CSV de nome do ficheiro e mensagem de erro. Se não ocorrerem falhas durante a execução do pipeline, o ficheiro de erros é criado na mesma, mas não contém registos de erros.

Requisitos do pipeline

  • A compressão tem de estar num dos seguintes formatos: BZIP2, DEFLATE, GZIP.
  • O diretório de saída tem de existir antes de executar o pipeline.

Parâmetros de modelos

Parâmetros obrigatórios

  • inputFilePattern: a localização no Cloud Storage dos ficheiros que quer processar. Por exemplo, gs://your-bucket/your-files/*.txt.
  • outputDirectory: o caminho e o prefixo do nome de ficheiro para escrever ficheiros de saída. Tem de terminar com uma barra. A formatação DateTime é usada para analisar o caminho do diretório para formatadores de data e hora. Por exemplo, gs://your-bucket/your-path.
  • outputFailureFile: o ficheiro de saída do registo de erros a usar para falhas de escrita que ocorrem durante a compressão. O conteúdo vai ter uma linha para cada ficheiro cuja compressão falhou. Tenha em atenção que este parâmetro permite que o pipeline continue o processamento em caso de falha. Por exemplo, gs://your-bucket/compressed/failed.csv.
  • compression: o algoritmo de compressão usado para comprimir os ficheiros correspondentes. Algoritmos válidos: BZIP2, DEFLATE e GZIP.

Parâmetros opcionais

  • outputFilenameSuffix: sufixo do nome do ficheiro de saída dos ficheiros a escrever. A predefinição é .bzip2, .deflate ou .gz, consoante o algoritmo de compressão.

Execute o modelo

Consola

  1. Aceda à página do fluxo de dados Criar tarefa a partir de um modelo.
  2. Aceda a Criar tarefa a partir de modelo
  3. No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
  4. 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.

  5. No menu pendente Modelo do fluxo de dados, selecione the Bulk Compress Files on Cloud Storage template.
  6. Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
  7. 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/Bulk_Compress_GCS_Files \
    --region REGION_NAME \
    --parameters \
inputFilePattern=gs://BUCKET_NAME/uncompressed/*.txt,\
outputDirectory=gs://BUCKET_NAME/compressed,\
outputFailureFile=gs://BUCKET_NAME/failed/failure.csv,\
compression=COMPRESSION

Substitua o seguinte:

  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • REGION_NAME: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • BUCKET_NAME: o nome do seu contentor do Cloud Storage
  • COMPRESSION: a sua escolha do algoritmo de compressão

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/Bulk_Compress_GCS_Files
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://BUCKET_NAME/uncompressed/*.txt",
       "outputDirectory": "gs://BUCKET_NAME/compressed",
       "outputFailureFile": "gs://BUCKET_NAME/failed/failure.csv",
       "compression": "COMPRESSION"
   },
   "environment": { "zone": "us-central1-f" }
}

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto onde quer executar a tarefa do Dataflow Google Cloud
  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • LOCATION: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • BUCKET_NAME: o nome do seu contentor do Cloud Storage
  • COMPRESSION: a sua escolha do algoritmo de compressão

O que se segue?