Ingerir datos mediante plantillas

Dataplex Universal Catalog proporciona plantillas (con tecnología de Dataflow) para realizar tareas comunes de procesamiento de datos, como la ingestión, el procesamiento y la gestión del ciclo de vida de los datos. En esta guía se describe cómo configurar y ejecutar una plantilla que ingiere datos mediante una conexión JDBC.

Antes de empezar

Las plantillas de tareas de Dataplex Universal Catalog se basan en Dataflow. Antes de usar plantillas, habilita las APIs de Dataflow.

Habilitar las APIs de Dataflow

comunes.

Plantilla: ingiere datos en Dataplex Universal Catalog mediante una conexión JDBC

La plantilla de ingestión JDBC de Dataplex Universal Catalog copia datos de una base de datos relacional en un recurso de destino de Dataplex Universal Catalog. El recurso de Dataplex Universal Catalog puede ser un recurso de Cloud Storage o de BigQuery.

Esta canalización usa JDBC para conectarse a la base de datos relacional. Para añadir una capa de protección adicional, también puedes incluir una clave de Cloud KMS junto con los parámetros de nombre de usuario, contraseña y cadena de conexión codificados en Base64 y encriptados con la clave de Cloud KMS.

La plantilla gestiona de forma transparente los diferentes tipos de recursos. Los datos almacenados en el recurso de Cloud Storage se particionan al estilo de Hive y la función Discovery (Descubrimiento) de Dataplex Universal Catalog los pone automáticamente a disposición como tabla en Data Catalog (obsoleto), BigQuery (tabla externa) o una instancia de Dataproc Metastore adjunta.

Parámetros de plantilla

Parámetro Descripción
driverJars Separa con comas las rutas de Cloud Storage de los controladores JDBC.
Por ejemplo: gs://your-bucket/driver_jar1.jar, gs://your-bucket/driver_jar2.jar.
connectionURL Cadena de conexión de URL para conectarse a la fuente JDBC.
Por ejemplo, jdbc:mysql://some-host:3306/sampledb.
Puedes enviar la URL de conexión como texto sin formato o como una cadena codificada en Base64 cifrada por Cloud KMS.
driverClassName El nombre de clase del controlador JDBC.
Por ejemplo, com.mysql.jdbc.Driver.
connectionProperties La cadena de propiedades que se usará para la conexión JDBC.
Por ejemplo, unicode=true&characterEncoding=UTF-8.
query Consulta que se va a ejecutar en la fuente para extraer los datos.
Por ejemplo, select * from sampledb.sample_table.
outputAsset El ID del recurso de salida de Dataplex Universal Catalog en el que se almacenan los resultados. En el ID, usa el formato projects/your-project/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name></code>. Puede encontrar el outputAsset en la Google Cloud consola, en la pestaña Detalles del recurso Catálogo universal de Dataplex.
username Nombre de usuario que se usará para la conexión JDBC. Puedes enviar el nombre de usuario como texto sin formato o como una cadena cifrada con codificación Base64 mediante Cloud KMS.
password La contraseña que se usará para la conexión JDBC. Puedes enviar la contraseña como texto sin formato o como una cadena codificada en Base64 encriptada por Cloud KMS.
outputTable La ubicación de la tabla de BigQuery o el nombre de la carpeta superior de Cloud Storage en la que se escribirá la salida. Si se trata de una ubicación de tabla de BigQuery, el esquema de la tabla debe coincidir con el esquema de la consulta de origen y debe tener el formato some-project-id:somedataset.sometable. Si se trata de una carpeta de nivel superior de Cloud Storage, indica el nombre de la carpeta de nivel superior.
KMSEncryptionKey Opcional: Si proporcionas el parámetro KMSEncryptionKey, asegúrate de que password, username y connectionURL estén encriptados con Cloud KMS. Encripta estos parámetros con el endpoint de encriptación de la API de Cloud KMS. Por ejemplo, projects/your-project/locations/global/keyRings/test/cryptoKeys/quickstart.
writeDisposition Opcional: la estrategia que se debe emplear si existe el archivo o la tabla de destino. Los formatos admitidos son WRITE_APPEND (las filas se añadirán si la tabla ya existe), WRITE_TRUNCATE (la tabla o el archivo se sobrescribirán), WRITE_EMPTY (la tabla de salida debe estar vacía o el archivo de salida no debe existir) y SKIP (no se escribirá en el archivo si ya existe). En el caso de BigQuery, los formatos permitidos son WRITE_APPEND, WRITE_TRUNCATE y WRITE_EMPTY. En Cloud Storage, los formatos permitidos son SKIP, WRITE_TRUNCATE y WRITE_EMPTY. Valor predeterminado: WRITE_EMPTY.
partitioningScheme Opcional: el esquema de partición al escribir el archivo. El valor predeterminado de este parámetro es DAILY. Otros valores del parámetro pueden ser MONTHLY o HOURLY.
partitionColumn Opcional: columna de partición en la que se basa la partición. El tipo de columna debe tener el formato timestamp/date. Si no se proporciona el parámetro partitionColumn, los datos no se particionarán.
fileFormat Opcional: formato del archivo de salida en Cloud Storage. Los archivos se comprimen con el ajuste predeterminado de compresión Snappy. El valor predeterminado de este parámetro es PARQUET. Otro valor del parámetro es AVRO.
updateDataplexMetadata

Opcional: indica si quieres actualizar los metadatos de Dataplex Universal Catalog de las entidades recién creadas. El valor predeterminado de este parámetro es false.

Si está habilitada, la canalización copiará automáticamente el esquema de origen a las entidades de Dataplex Universal Catalog de destino y no se ejecutará el descubrimiento automático de Dataplex Universal Catalog. Usa esta marca en los casos en los que hayas gestionado el esquema en la fuente.

Solo se admite en el destino de Cloud Storage.

Ejecutar la plantilla

Consola

  1. En la Google Cloud consola, ve a la página Proceso de Dataplex Universal Catalog:

    Ir a Proceso

  2. Haz clic en Crear tarea.

  3. En Ingerir JDBC en Dataplex, haga clic en Crear tarea.

  4. Elige un lago de Dataplex Universal Catalog.

  5. Asigna un nombre a la tarea.

  6. Elige una región para ejecutar la tarea.

  7. Rellena los parámetros obligatorios.

  8. Haz clic en Continuar.

gcloud

En tu shell o terminal, ejecuta la siguiente plantilla:

gcloud beta dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_JDBC_Ingestion_Preview \
--parameters \
driverJars=DRIVER_JARS,\
connectionUrl=CONNECTION_URL,\
driverClassName=DRIVER_CLASS_NAME,\
connectionProperties=CONNECTION_PROPERTIES,\
query=QUERY\
outputAsset=OUTPUT_ASSET\

Haz los cambios siguientes:

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
DRIVER_JARS: path to your JDBC drivers
CONNECTION_URL: your JDBC connection URL string
DRIVER_CLASS_NAME: your JDBC driver class name
CONNECTION_PROPERTIES: your JDBC connection property string
QUERY: your JDBC source SQL query
OUTPUT_ASSET: your Dataplex Universal Catalog output asset ID

API REST

Envía una solicitud HTTP POST:

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "driverJars": "DRIVER_JARS",
          "connectionUrl": "CONNECTION_URL",
          "driverClassName": "DRIVER_CLASS_NAME",
          "connectionProperties": "CONNECTION_PROPERTIES",
          "query": "QUERY"
          "outputAsset": "OUTPUT_ASSET"
      },
      "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_JDBC_Ingestion_Preview",
   }
}

Haz los cambios siguientes:

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
DRIVER_JARS: path to your JDBC drivers
CONNECTION_URL: your JDBC connection URL string
DRIVER_CLASS_NAME: your JDBC driver class name
CONNECTION_PROPERTIES: your JDBC connection property string
QUERY: your JDBC source SQL query
OUTPUT_ASSET: your Dataplex Universal Catalog output asset ID

Siguientes pasos