Plantilla de Spanner a texto de Cloud Storage

La plantilla de Spanner a texto de Cloud Storage es una canalización por lotes que lee datos de una tabla de Spanner y los escribe en Cloud Storage como archivos de texto CSV.

Requisitos del flujo de procesamiento

  • La tabla de entrada de Spanner debe existir antes de ejecutar el flujo de procesamiento.

Parámetros de plantilla

Parámetros obligatorios

  • spannerTable la tabla de Spanner de la que se leerán los datos.
  • spannerProjectId el ID del proyecto de Google Cloud que contiene la base de datos de Spanner de la que se van a leer los datos.
  • spannerInstanceId: el ID de instancia de la tabla solicitada.
  • spannerDatabaseId el ID de la base de datos de la tabla solicitada.
  • textWritePrefix prefijo de la ruta de Cloud Storage que especifica dónde se escriben los datos. Por ejemplo, gs://mybucket/somefolder/.

Parámetros opcionales

  • csvTempDirectory: ruta de Cloud Storage en la que se escriben los archivos CSV temporales. Por ejemplo, gs://your-bucket/your-path.
  • spannerPriority la prioridad de la solicitud (https://cloud.google.com/spanner/docs/reference/rest/v1/RequestOptions) de las llamadas de Spanner. Los valores posibles son HIGH, MEDIUM y LOW. El valor predeterminado es MEDIUM.
  • spannerHost el endpoint de Cloud Spanner al que se llama en la plantilla. Solo se usa para hacer pruebas. Por ejemplo, https://batch-spanner.googleapis.com. El valor predeterminado es https://batch-spanner.googleapis.com.
  • spannerSnapshotTime la marca de tiempo que corresponde a la versión de la base de datos de Spanner desde la que quieres leer. La marca de tiempo debe especificarse en formato de hora zulú UTC RFC 3339 (https://tools.ietf.org/html/rfc3339). La marca de tiempo debe ser anterior a la hora actual y se aplica la antigüedad máxima de la marca de tiempo (https://cloud.google.com/spanner/docs/timestamp-bounds#maximum_timestamp_staleness). Por ejemplo, 1990-12-31T23:59:60Z. El valor predeterminado es una cadena vacía.
  • dataBoostEnabled asigna el valor true para usar los recursos de computación de Spanner Data Boost y ejecutar el trabajo con un impacto casi nulo en los flujos de trabajo de OLTP de Spanner. Si es true, requiere el permiso spanner.databases.useDataBoost Gestión de Identidades y Accesos (IAM). Para obtener más información, consulta la descripción general de Data Boost (https://cloud.google.com/spanner/docs/databoost/databoost-overview). Valor predeterminado: false.

Ejecutar la plantilla

Consola

  1. Ve a la página Crear tarea a partir de plantilla de Dataflow.
  2. Ir a Crear tarea a partir de plantilla
  3. En el campo Nombre de la tarea, introduce un nombre único.
  4. Opcional: En Endpoint regional, seleccione un valor en el menú desplegable. La región predeterminada es us-central1.

    Para ver una lista de las regiones en las que puedes ejecutar una tarea de Dataflow, consulta Ubicaciones de Dataflow.

  5. En el menú desplegable Plantilla de flujo de datos, seleccione the Cloud Spanner to Text Files on Cloud Storage template.
  6. En los campos de parámetros proporcionados, introduzca los valores de los parámetros.
  7. Haz clic en Ejecutar trabajo.

gcloud

En tu shell o terminal, ejecuta la plantilla:

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/

Haz los cambios siguientes:

  • JOB_NAME: un nombre de trabajo único que elijas
  • VERSION: la versión de la plantilla que quieres usar

    Puedes usar los siguientes valores:

    • latest para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/
    • el nombre de la versión, como 2023-09-12-00_RC00, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
  • REGION_NAME: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo, us-central1
  • SPANNER_PROJECT_ID: el ID del proyecto de la Google Cloud base de datos de Spanner de la que quieras leer datos.
  • DATABASE_ID: el ID de la base de datos de Spanner
  • BUCKET_NAME: el nombre de tu segmento de Cloud Storage
  • INSTANCE_ID: el ID de la instancia de Spanner
  • TABLE_ID: el ID de la tabla de Spanner

API

Para ejecutar la plantilla mediante la API REST, envía una solicitud HTTP POST. Para obtener más información sobre la API y sus ámbitos de autorización, consulta 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" }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto Google Cloud en el que quieres ejecutar la tarea de Dataflow
  • JOB_NAME: un nombre de trabajo único que elijas
  • VERSION: la versión de la plantilla que quieres usar

    Puedes usar los siguientes valores:

    • latest para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/
    • el nombre de la versión, como 2023-09-12-00_RC00, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
  • LOCATION: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo, us-central1
  • SPANNER_PROJECT_ID: el ID del proyecto de la Google Cloud base de datos de Spanner de la que quieras leer datos.
  • DATABASE_ID: el ID de la base de datos de Spanner
  • BUCKET_NAME: el nombre de tu segmento de Cloud Storage
  • INSTANCE_ID: el ID de la instancia de Spanner
  • TABLE_ID: el ID de la tabla de Spanner

Siguientes pasos