Plantilla de AstraDB a BigQuery

La plantilla de AstraDB a BigQuery es una canalización 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 RECORD de BigQuery.
  • Todos los demás tipos se asignan a los campos de BigQuery con los tipos correspondientes.
  • Los tipos definidos por el usuario (UDT) y los tipos de datos de tupla de Cassandra son compatibles.

Requisitos de la canalización

  • Cuenta de AstraDB con un token

Parámetros de la plantilla

Parámetros obligatorios

  • astraToken: Valor de token o ID de recurso secreto (ejemplo: AstraCS:abcdefghij).
  • astraDatabaseId: Identificador único de la base de datos (UUID) (ejemplo: cf7af129-d33a-498f-ad06-d97a6ee6eb7).
  • astraKeyspace: El nombre del espacio de claves de Cassandra dentro de la base de datos Astra.
  • astraTable: El nombre de la tabla dentro de la base de datos de Cassandra. (Ejemplo: my_table).

Parámetros opcionales

  • astraQuery: La consulta que se usará para filtrar filas en lugar de leer toda la tabla.
  • astraDatabaseRegion: Si no se proporciona, se elige uno predeterminado, que es útil con bases de datos multirregionales.
  • minTokenRangesCount: La cantidad mínima de divisiones que se usarán para distribuir la consulta.
  • outputTableSpec: La ubicación de la tabla de BigQuery en la que se escribirá el resultado. Usa el formato <PROJECT_ID>:<DATASET_NAME>.<TABLE_NAME>. El esquema de la tabla debe coincidir con los objetos de entrada.

Ejecuta la plantilla

Console

  1. Ve a la página Crear un trabajo a partir de una plantilla de Dataflow.
  2. Ir a Crear un trabajo a partir de una plantilla
  3. En el campo Nombre del trabajo, ingresa un nombre de trabajo único.
  4. 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.

  5. En el menú desplegable Plantilla de Dataflow, selecciona the AstraDB to BigQuery template.
  6. En los campos de parámetros proporcionados, ingresa los valores de tus parámetros.
  7. 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/AstraDB_To_BigQuery \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       astraToken=ASTRA_TOKEN,\
       astraDatabaseId=ASTRA_DATABASE_ID,\
       astraKeyspace=ASTRA_KEYSPACE,\
       astraTable=ASTRA_TABLE,\

Reemplaza lo siguiente:

  • JOB_NAME: Es el nombre del trabajo que elijas
  • VERSION: 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
  • ASTRA_TOKEN: Es el token de Astra
  • ASTRA_DATABASE_ID: Es el identificador de la base de datos
  • ASTRA_KEYSPACE: Es el espacio de claves de Cassandra
  • ASTRA_TABLE: Es la tabla de Cassandra

API

Para ejecutar la plantilla con la API de REST, envía una solicitud POST HTTP. 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": {
       "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" }
  }
}

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

¿Qué sigue?