La plantilla de Spanner a BigQuery es una canalización por lotes que lee datos de una tabla de Spanner y los escribe en BigQuery.
Requisitos de la canalización
- La tabla de entrada de Spanner debe existir antes de ejecutar la canalización.
- El conjunto de datos de BigQuery debe existir antes de ejecutar la canalización.
- Un archivo JSON que describa tu esquema de BigQuery.
El archivo debe contener un arreglo JSON de nivel superior titulado
fields
. El contenido del arreglofields
debe usar el siguiente patrón:{"name": "COLUMN_NAME", "type": "DATA_TYPE"}
.En el siguiente JSON, se describe un esquema de BigQuery de ejemplo:
{ "fields": [ { "name": "location", "type": "STRING" }, { "name": "name", "type": "STRING" }, { "name": "age", "type": "STRING" }, { "name": "color", "type": "STRING" }, { "name": "coffee", "type": "STRING" } ] }
La plantilla por lotes de Spanner a BigQuery no admite la importación de datos a los campos
STRUCT
(Registro) en la tabla BigQuery de destino.
Parámetros de la plantilla
Parámetro | Descripción |
---|---|
spannerInstanceId |
ID de la instancia de la base de datos de Spanner desde la que se leerá. |
spannerDatabaseId |
El ID de la base de datos de la base de datos de Spanner que se exportará. |
spannerTableId |
El nombre de la tabla de la base de datos de Spanner que se exportará. |
sqlQuery |
La consulta en SQL que se usará para leer los datos de la base de datos de Spanner. |
outputTableSpec |
La tabla de BigQuery en la que se escribirá. Por ejemplo, <project>:<dataset>.<table_name> . |
spannerProjectId |
Opcional: El ID del proyecto en el que reside la base de datos de Spanner. El valor predeterminado para este parámetro es el proyecto en el que se ejecuta la canalización de Dataflow. |
spannerRpcPriority |
Opcional: La prioridad de solicitud para llamadas de Spanner. Los valores posibles son HIGH , MEDIUM y LOW . El valor predeterminado es
HIGH . |
bigQuerySchemaPath |
Opcional: La ruta de Cloud Storage (gs:// ) al archivo JSON que define tu esquema de BigQuery.
Por ejemplo, gs://path/to/my/schema.json . |
writeDisposition |
Opcional: El WriteDisposition de BigQuery.
Los valores admitidos son WRITE_APPEND , WRITE_EMPTY y WRITE_TRUNCATE . El valor predeterminado es WRITE_APPEND . |
createDisposition |
Opcional: El CreateDisposition de BigQuery.
Los valores admitidos son CREATE_IF_NEEDED y CREATE_NEVER . El valor predeterminado es CREATE_IF_NEEDED . |
useStorageWriteApi |
Opcional: Si es true , la canalización usa la API de BigQuery Storage Write. El valor predeterminado es false . Para obtener más información, consulta Usa la API de BigQuery Storage Write.
|
useStorageWriteApiAtLeastOnce |
Opcional: Cuando usas la API de Storage Write, se especifica la semántica de escritura (opcional). Para usar una semántica de al menos una vez, establece este parámetro en true . Para usar una semántica de una y solo una vez, configura el parámetro en false . Este parámetro se aplica solo cuando useStorageWriteApi es true . El valor predeterminado es false .
|
Ejecuta la plantilla
Consola
- Ve a la página Crear un trabajo a partir de una plantilla de Dataflow. Ir a Crear un trabajo a partir de una plantilla
- En el campo Nombre del trabajo, ingresa un nombre de trabajo único.
- Opcional: Para Extremo regional, selecciona un valor del menú desplegable. La región predeterminada es
us-central1
.Para obtener una lista de regiones en las que puedes ejecutar un trabajo de Dataflow, consulta Ubicaciones de Dataflow.
- En el menú desplegable Plantilla de Dataflow, selecciona the Spanner to BigQuery template.
- En los campos de parámetros proporcionados, ingresa los valores de tus parámetros.
- Haga clic en Ejecutar trabajo.
gcloud
En tu shell o terminal, ejecuta la plantilla:
gcloud dataflow flex-template run JOB_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Cloud_Spanner_to_BigQuery_Flex \ --project=PROJECT_ID \ --region=REGION_NAME \ --parameters \ spannerInstanceId=SPANNER_INSTANCE_ID,\ spannerDatabaseId=SPANNER_DATABASE_ID,\ spannerTableId=SPANNER_TABLE_ID,\ sqlQuery=SQL_QUERY,\ outputTableSpec=OUTPUT_TABLE_SPEC,\
Reemplaza lo siguiente:
JOB_NAME
: Es el nombre del trabajo que elijasVERSION
: Es la versión de la plantilla que deseas usar.Puedes usar los siguientes valores:
latest
para usar la última versión de la plantilla, que está disponible en la carpeta superior non-dated en el bucket 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 puede encontrar anidada en la carpeta superior con fecha correspondiente en el bucket gs://dataflow-templates-REGION_NAME/
REGION_NAME
: La región en la que deseas implementar tu trabajo de Dataflow, por ejemplo,us-central1
SPANNER_INSTANCE_ID
: Es el ID de la instancia de Spanner.SPANNER_DATABASE_ID
: Es el ID de la base de datos de Spanner.SPANNER_TABLE_ID
: Es el nombre de la tabla de Spanner.SQL_QUERY
: La consulta en SQLOUTPUT_TABLE_SPEC
: la ubicación de la tabla de BigQuery
API
Para ejecutar la plantilla con la API de REST, envía una solicitud HTTP POST. Para obtener más información de la API y sus permisos de autorización, consulta projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launchParameter": { "jobName": "JOB_NAME", "parameters": { "spannerInstanceId": "SPANNER_INSTANCE_ID", "spannerDatabaseId": "SPANNER_DATABASE_ID", "spannerTableId": "SPANNER_TABLE_ID", "sqlQuery": "SQL_QUERY", "outputTableSpec": "OUTPUT_TABLE_SPEC", }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Cloud_Spanner_to_BigQuery_Flex", "environment": { "maxWorkers": "10" } } }
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto de Google Cloud en el que deseas ejecutar el trabajo de Dataflow.JOB_NAME
: Es el nombre del trabajo que elijasVERSION
: Es la versión de la plantilla que deseas usar.Puedes usar los siguientes valores:
latest
para usar la última versión de la plantilla, que está disponible en la carpeta superior non-dated en el bucket 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 puede encontrar anidada en la carpeta superior con fecha correspondiente en el bucket gs://dataflow-templates-REGION_NAME/
LOCATION
: La región en la que deseas implementar tu trabajo de Dataflow, por ejemplo,us-central1
SPANNER_INSTANCE_ID
: Es el ID de la instancia de Spanner.SPANNER_DATABASE_ID
: Es el ID de la base de datos de Spanner.SPANNER_TABLE_ID
: Es el nombre de la tabla de Spanner.SQL_QUERY
: La consulta en SQLOUTPUT_TABLE_SPEC
: la ubicación de la tabla de BigQuery
¿Qué sigue?
- Obtén información sobre las plantillas de Dataflow.
- Consulta la lista de plantillas que proporciona Google.