Modelo do Cloud Storage Avro para Bigtable

O modelo do Cloud Storage Avro para Bigtable é um pipeline que lê dados de ficheiros Avro num contentor do Cloud Storage e escreve os dados numa tabela do Bigtable. Pode usar o modelo para copiar dados do Cloud Storage para o Bigtable.

Requisitos do pipeline

  • A tabela do Bigtable tem de existir e ter as mesmas famílias de colunas que foram exportadas nos ficheiros Avro.
  • Os ficheiros Avro de entrada têm de existir num contentor do Cloud Storage antes de executar o pipeline.
  • O Bigtable espera um esquema específico dos ficheiros Avro de entrada.

Parâmetros de modelos

Parâmetros obrigatórios

  • bigtableProjectId: o ID do projeto do Google Cloud que contém a instância do Bigtable na qual quer escrever dados.
  • bigtableInstanceId: o ID da instância do Bigtable que contém a tabela.
  • bigtableTableId: o ID da tabela do Bigtable a importar.
  • inputFilePattern: o padrão do caminho do Cloud Storage onde os dados estão localizados. Por exemplo, gs://<BUCKET_NAME>/FOLDER/PREFIX*.

Parâmetros opcionais

  • splitLargeRows: a flag para ativar a divisão de linhas grandes em vários pedidos MutateRows. Tenha em atenção que, quando uma linha grande é dividida entre várias chamadas da API, as atualizações à linha não são atómicas.

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 Avro Files on Cloud Storage to Cloud Bigtable 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/GCS_Avro_to_Cloud_Bigtable \
    --region REGION_NAME \
    --parameters \
bigtableProjectId=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
inputFilePattern=INPUT_FILE_PATTERN

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
  • INPUT_FILE_PATTERN: o padrão do caminho do Cloud Storage onde os dados estão localizados, por exemplo, gs://mybucket/somefolder/prefix*

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/GCS_Avro_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "inputFilePattern": "INPUT_FILE_PATTERN",
   },
   "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
  • INPUT_FILE_PATTERN: o padrão do caminho do Cloud Storage onde os dados estão localizados, por exemplo, gs://mybucket/somefolder/prefix*

O que se segue?