Modelo do Bigtable para o Parquet do Cloud Storage

O modelo do Bigtable para o Cloud Storage Parquet é um pipeline que lê dados de uma tabela do Bigtable e escreve-os num contentor do Cloud Storage no formato Parquet. Pode usar o modelo para mover dados do Bigtable para o Cloud Storage.

Requisitos do pipeline

  • A tabela do Bigtable tem de existir.
  • O contentor do Cloud Storage de saída tem de existir antes de executar o pipeline.

Parâmetros de modelos

Parâmetros obrigatórios

  • bigtableProjectId: o ID do projeto do Google Cloud que contém a instância do Cloud Bigtable a partir da qual quer ler dados.
  • bigtableInstanceId: o ID da instância do Cloud Bigtable que contém a tabela.
  • bigtableTableId: o ID da tabela do Cloud Bigtable a exportar.
  • 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 de data/hora é usada para analisar o caminho do diretório para formatadores de data e hora. Por exemplo: gs://your-bucket/your-path.
  • filenamePrefix: o prefixo do nome do ficheiro Parquet. Por exemplo, table1-. Predefinição: part.

Parâmetros opcionais

  • numShards: o número máximo de fragmentos de saída produzidos durante a escrita. Um número mais elevado de fragmentos significa um débito mais elevado para a escrita no Cloud Storage, mas um custo de agregação de dados potencialmente mais elevado entre fragmentos ao processar ficheiros do Cloud Storage de saída. O valor predefinido é decidido pelo Dataflow.
  • bigtableAppProfileId: o ID do perfil da aplicação do Bigtable a usar para a exportação. Se não especificar um perfil de app, o Bigtable usa o perfil de app predefinido da instância: https://cloud.google.com/bigtable/docs/app-profiles#default-app-profile.

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 Cloud Bigtable to Parquet 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/Cloud_Bigtable_to_GCS_Parquet \
    --region REGION_NAME \
    --parameters \
bigtableProjectId=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
outputDirectory=OUTPUT_DIRECTORY,\
filenamePrefix=FILENAME_PREFIX,\
numShards=NUM_SHARDS

Substitua o seguinte:

  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • REGION_NAME: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • BIGTABLE_PROJECT_ID: o ID do Google Cloud projeto da instância do Bigtable a partir da qual quer ler dados
  • INSTANCE_ID: o ID da instância do Bigtable que contém a tabela
  • TABLE_ID: o ID da tabela do Bigtable a exportar
  • OUTPUT_DIRECTORY: o caminho do Cloud Storage onde os dados são escritos, por exemplo, gs://mybucket/somefolder
  • FILENAME_PREFIX: o prefixo do nome do ficheiro Parquet, por exemplo, output-
  • NUM_SHARDS: o número de ficheiros Parquet a gerar, por exemplo, 1

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_Bigtable_to_GCS_Parquet
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "outputDirectory": "OUTPUT_DIRECTORY",
       "filenamePrefix": "FILENAME_PREFIX",
       "numShards": "NUM_SHARDS"
   },
   "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
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • LOCATION: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • BIGTABLE_PROJECT_ID: o ID do Google Cloud projeto da instância do Bigtable a partir da qual quer ler dados
  • INSTANCE_ID: o ID da instância do Bigtable que contém a tabela
  • TABLE_ID: o ID da tabela do Bigtable a exportar
  • OUTPUT_DIRECTORY: o caminho do Cloud Storage onde os dados são escritos, por exemplo, gs://mybucket/somefolder
  • FILENAME_PREFIX: o prefixo do nome do ficheiro Parquet, por exemplo, output-
  • NUM_SHARDS: o número de ficheiros Parquet a gerar, por exemplo, 1

O que se segue?