Plantilla de AstraDB a BigQuery

La plantilla de AstraDB a BigQuery es un flujo de procesamiento por lotes que lee registros de AstraDB y los escribe en BigQuery.

Si la tabla de destino no existe en BigQuery, la canalización crea una tabla con los siguientes valores:

  • El Dataset ID, que se hereda del espacio de claves de Cassandra.
  • El Table ID, que se hereda de la tabla de Cassandra.

El esquema de la tabla de destino se infiere de la tabla de origen de Cassandra.

  • List y Set se asignan a los campos REPEATED de BigQuery.
  • Map se asignan a los campos de RECORD de BigQuery.
  • Todos los demás tipos se asignan a campos de BigQuery con los tipos correspondientes.
  • No se admiten los tipos definidos por el usuario (UDTs) ni los tipos de datos de tupla de Cassandra.

Requisitos del flujo de procesamiento

  • Cuenta de Astra DB con un token

Parámetros de plantilla

Parámetros obligatorios

  • astraToken el valor del token o el ID de recurso secreto. Por ejemplo, AstraCS:abcdefghij.
  • astraDatabaseId el identificador único (UUID) de la base de datos. Por ejemplo, cf7af129-d33a-498f-ad06-d97a6ee6eb7.
  • astraKeyspace nombre del espacio de claves de Cassandra en la base de datos de Astra.
  • astraTable el nombre de la tabla de la base de datos de Cassandra. Por ejemplo, my_table.

Parámetros opcionales

  • astraQuery la consulta que se va a usar para filtrar las filas en lugar de leer toda la tabla.
  • astraDatabaseRegion si no se proporciona, se elige un valor predeterminado, lo que resulta útil con las bases de datos multirregión.
  • minTokenRangesCount número mínimo de divisiones que se deben usar para distribuir la consulta.
  • outputTableSpec la ubicación de la tabla de BigQuery en la que se escribirán los resultados. Usa el formato <PROJECT_ID>:<DATASET_NAME>.<TABLE_NAME>. El esquema de la tabla debe coincidir con los objetos de entrada.

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 AstraDB to BigQuery 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 flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/AstraDB_To_BigQuery \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       astraToken=ASTRA_TOKEN,\
       astraDatabaseId=ASTRA_DATABASE_ID,\
       astraKeyspace=ASTRA_KEYSPACE,\
       astraTable=ASTRA_TABLE,\

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
  • ASTRA_TOKEN: el token de Astra
  • ASTRA_DATABASE_ID: el identificador de la base de datos
  • ASTRA_KEYSPACE: el espacio de claves de Cassandra
  • ASTRA_TABLE: la tabla de Cassandra

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/flexTemplates:launch
{
   "launchParameter": {
     "jobName": "JOB_NAME",
     "parameters": {
       "astraToken": "ASTRA_TOKEN",
       "astraDatabaseId": "ASTRA_DATABASE_ID",
       "astraKeyspace": "ASTRA_KEYSPACE",
       "astraTable": "ASTRA_TABLE",
     },
     "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/AstraDB_To_BigQuery",
     "environment": { "maxWorkers": "10" }
  }
}

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
  • ASTRA_TOKEN: el token de Astra
  • ASTRA_DATABASE_ID: el identificador de la base de datos
  • ASTRA_KEYSPACE: el espacio de claves de Cassandra
  • ASTRA_TABLE: la tabla de Cassandra

Siguientes pasos