Modelo de texto do Spanner para o Cloud Storage

O modelo de texto do Spanner para o Cloud Storage é um pipeline em lote que lê dados de uma tabela do Spanner e escreve-os no Cloud Storage como ficheiros de texto CSV.

Requisitos do pipeline

  • A tabela do Spanner de entrada tem de existir antes de executar o pipeline.

Parâmetros de modelos

Parâmetros obrigatórios

  • spannerTable: a tabela do Spanner a partir da qual os dados são lidos.
  • spannerProjectId: o ID do projeto do Google Cloud que contém a base de dados do Spanner a partir da qual os dados são lidos.
  • spannerInstanceId: o ID da instância da tabela pedida.
  • spannerDatabaseId: o ID da base de dados da tabela pedida.
  • textWritePrefix: o prefixo do caminho do Cloud Storage que especifica onde os dados são escritos. Por exemplo, gs://mybucket/somefolder/.

Parâmetros opcionais

  • csvTempDirectory: o caminho do Cloud Storage onde os ficheiros CSV temporários são escritos. Por exemplo, gs://your-bucket/your-path.
  • spannerPriority: a prioridade do pedido (https://cloud.google.com/spanner/docs/reference/rest/v1/RequestOptions) para chamadas do Spanner. Os valores possíveis são HIGH, MEDIUM e LOW. O valor predefinido é MEDIUM.
  • spannerHost: o ponto final do Cloud Spanner a chamar no modelo. Usado apenas para testes. Por exemplo, https://batch-spanner.googleapis.com. O valor predefinido é: https://batch-spanner.googleapis.com.
  • spannerSnapshotTime: a data/hora que corresponde à versão da base de dados do Spanner a partir da qual quer ler. A data/hora tem de ser especificada no formato de hora UTC Zulu RFC 3339 (https://tools.ietf.org/html/rfc3339). A data/hora tem de ser no passado e aplica-se a obsolescência máxima da data/hora (https://cloud.google.com/spanner/docs/timestamp-bounds#maximum_timestamp_staleness). Por exemplo, 1990-12-31T23:59:60Z. A predefinição é vazio.
  • dataBoostEnabled: definido como true para usar os recursos de computação do Spanner Data Boost para executar a tarefa com um impacto quase nulo nos fluxos de trabalho OLTP do Spanner. Quando é verdadeiro, requer a autorização de spanner.databases.useDataBoostgestão de identidade e de acesso (IAM) Para mais informações, consulte a vista geral do Data Boost (https://cloud.google.com/spanner/docs/databoost/databoost-overview). A predefinição é: false.

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 Spanner to Text 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/Spanner_to_GCS_Text \
    --region REGION_NAME \
    --parameters \
spannerProjectId=SPANNER_PROJECT_ID,\
spannerDatabaseId=DATABASE_ID,\
spannerInstanceId=INSTANCE_ID,\
spannerTable=TABLE_ID,\
textWritePrefix=gs://BUCKET_NAME/output/

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
  • SPANNER_PROJECT_ID: o Google Cloud ID do projeto da base de dados do Spanner a partir da qual quer ler dados
  • DATABASE_ID: o ID da base de dados do Spanner
  • BUCKET_NAME: o nome do seu contentor do Cloud Storage
  • INSTANCE_ID: o ID da instância do Spanner
  • TABLE_ID: o ID da tabela do Spanner

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/Spanner_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "spannerProjectId": "SPANNER_PROJECT_ID",
       "spannerDatabaseId": "DATABASE_ID",
       "spannerInstanceId": "INSTANCE_ID",
       "spannerTable": "TABLE_ID",
       "textWritePrefix": "gs://BUCKET_NAME/output/"
   },
   "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
  • SPANNER_PROJECT_ID: o Google Cloud ID do projeto da base de dados do Spanner a partir da qual quer ler dados
  • DATABASE_ID: o ID da base de dados do Spanner
  • BUCKET_NAME: o nome do seu contentor do Cloud Storage
  • INSTANCE_ID: o ID da instância do Spanner
  • TABLE_ID: o ID da tabela do Spanner

O que se segue?