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

O modelo Descomprimir ficheiros do Cloud Storage em massa é um pipeline em lote que descomprime ficheiros no Cloud Storage para uma localização especificada. Esta funcionalidade é útil quando quer usar dados comprimidos para minimizar os custos de largura de banda da rede durante uma migração, mas quer maximizar a velocidade de processamento analítico operando com dados não comprimidos após a migração. O pipeline processa automaticamente vários modos de compressão durante uma única execução e determina o modo de descompressão a usar com base na extensão do ficheiro (.bzip2, .deflate, .gz, .zip).

Requisitos do pipeline

  • Os ficheiros a descomprimir têm de estar num dos seguintes formatos: Bzip2, Deflate, Gzip, Zip.
  • O diretório de saída tem de existir antes de executar o pipeline.

Parâmetros de modelos

Parâmetro Descrição
inputFilePattern O padrão do ficheiro de entrada a partir do qual os dados serão lidos. Por exemplo, gs://bucket-name/compressed/*.gz.
outputDirectory A localização de saída para a qual escrever. Por exemplo, gs://bucket-name/decompressed.
outputFailureFile O ficheiro de saída do registo de erros a usar para falhas de escrita que ocorrem durante o processo de descompressão. Por exemplo, gs://bucket-name/decompressed/failed.csv. Se não houver falhas, o ficheiro é criado, mas fica vazio. O conteúdo do ficheiro está no formato CSV (Nome do ficheiro, Erro) e consiste numa linha para cada ficheiro cuja descompressão falha.

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 Decompress 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_Decompress_GCS_Files \
    --region REGION_NAME \
    --parameters \
inputFilePattern=gs://BUCKET_NAME/compressed/*.gz,\
outputDirectory=gs://BUCKET_NAME/decompressed,\
outputFailureFile=OUTPUT_FAILURE_FILE_PATH

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
  • OUTPUT_FAILURE_FILE_PATH: o caminho que escolheu para o ficheiro com informações sobre a falha

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_Decompress_GCS_Files
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://BUCKET_NAME/compressed/*.gz",
       "outputDirectory": "gs://BUCKET_NAME/decompressed",
       "outputFailureFile": "OUTPUT_FAILURE_FILE_PATH"
   },
   "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
  • OUTPUT_FAILURE_FILE_PATH: o caminho que escolheu para o ficheiro com informações sobre a falha

O que se segue?