Transferencia con plantillas

Dataplex proporciona plantillas (con tecnología de Dataflow) para realizar tareas comunes de procesamiento de datos, como la transferencia, el procesamiento y la administración del ciclo de vida de los datos. En esta guía, se describe cómo configurar y ejecutar una plantilla que transfiera datos a través de una conexión JDBC.

Antes de comenzar

Las plantillas de tareas de Dataplex usan la tecnología de Dataflow. Antes de usar las plantillas, habilita las APIs de Dataflow.

Habilita las APIs de Dataflow

Plantilla: Transfiere datos a Dataplex con una conexión de JDBC

La plantilla de transferencia de JDBC de Dataplex copia datos de una base de datos relacional en un destino de recursos de Dataplex. Dataplex puede ser un recurso de Cloud Storage o uno de BigQuery.

Esta canalización utiliza JDBC para conectarse a la base de datos relacional. Para obtener una tarifa adicional también puedes pasar una clave de Cloud KMS junto con una Parámetros de nombre de usuario, contraseña y cadena de conexión codificados en Base64 encriptados con la clave de Cloud KMS.

La plantilla controla de forma transparente los diferentes tipos de activos. Los datos almacenados en el El recurso de Cloud Storage es particionado de estilo Hive y Dataplex El modelo Discovery lo pone a disposición automáticamente como en Data Catalog, BigQuery (tabla externa), o una instancia adjunta de Dataproc Metastore.

Parámetros de la plantilla

Parámetro Descripción
driverJars Usa comas para separar las rutas de acceso de Cloud Storage para los controladores de JDBC.
Por ejemplo: gs://your-bucket/driver_jar1.jar, gs://your-bucket/driver_jar2.jar.
connectionURL Es la cadena de conexión de URL para conectarse a la fuente de JDBC.
Por ejemplo: jdbc:mysql://some-host:3306/sampledb.
Puedes pasar la URL de conexión como texto sin formato o como una cadena codificada en Base64 encriptada por Cloud KMS.
driverClassName El nombre de la clase del controlador de JDBC.
Por ejemplo: com.mysql.jdbc.Driver.
connectionProperties La cadena de propiedades que se usará para la conexión de JDBC.
Por ejemplo: unicode=true&characterEncoding=UTF-8.
query La consulta que se ejecutará en la fuente para extraer los datos.
Por ejemplo: select * from sampledb.sample_table.
outputAsset El ID del recurso de salida de Dataplex en el que se se almacenan. Para el ID, usa el formato projects/your-project/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name></code>. Puedes encontrar la outputAsset en la consola de Google Cloud, en la Pestaña Detalles del recurso de Dataplex.
username El nombre de usuario que se usará para la conexión de JDBC. Puedes pasar el nombre de usuario como texto sin formato o como una cadena codificada en Base64 encriptada por Cloud KMS.
password La contraseña que se usará para la conexión de JDBC. Puedes pasar el como texto sin formato o como una cadena codificada en Base64 encriptada por Cloud KMS.
outputTable Ubicación de la tabla de BigQuery o Cloud Storage de la parte superior el nombre de la carpeta en la que se escribirá el resultado. Si es una instancia de BigQuery la ubicación de la tabla, su esquema debe coincidir con el de la consulta de origen y debe tener el formato some-project-id:somedataset.sometable. Si es una carpeta superior de Cloud Storage, proporciona el nombre de la carpeta superior.
KMSEncryptionKey (Opcional) Si proporcionas el parámetro KMSEncryptionKey, asegúrate de que Cloud KMS encripte password, username y connectionURL. Encriptar estos parámetros con el extremo de encriptación de la API de Cloud KMS. Para por ejemplo, projects/your-project/locations/global/keyRings/test/cryptoKeys/quickstart.
writeDisposition La estrategia que se debe emplear si existe el archivo o la tabla de destino (opcional). Compatible formatos son WRITE_APPEND (las filas se agregarán si la tabla existe), WRITE_TRUNCATE (se reemplazará la tabla o el archivo) WRITE_EMPTY (la tabla de salida debe estar vacía; el archivo de salida no debe existen) y SKIP (omitir la escritura en el archivo si existe). Para BigQuery, los formatos permitidos son: WRITE_APPEND, WRITE_TRUNCATE y WRITE_EMPTY. Para Cloud Storage, los formatos permitidos son: SKIP, WRITE_TRUNCATE, WRITE_EMPTY Valor predeterminado: WRITE_EMPTY.
partitioningScheme (Opcional). El esquema de partición cuando se escribe el archivo. El valor predeterminado para este parámetro es DAILY. Otros valores para el parámetro puede ser MONTHLY o HOURLY.
partitionColumn (Opcional) Es la columna de partición en la que se basa la partición. El 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 El formato del archivo de salida en Cloud Storage (opcional). Los archivos se comprimen con la configuración predeterminada de compresión Snappy. El valor predeterminado para este parámetro es PARQUET. Otro valor para el parámetro es AVRO.
updateDataplexMetadata

(Opcional) Indica si se deben actualizar los metadatos de Dataplex para las entidades creadas recientemente. El valor predeterminado para este parámetro es false

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

Solo se admite para el destino de Cloud Storage.

Ejecuta la plantilla

Console

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

    Ir a Dataplex

  2. Navega a la vista Process.

  3. Haz clic en Crear tarea.

  4. En Transferir JDBC a Dataplex, haz clic en Crear tarea.

  5. Elige un lake de Dataplex.

  6. Proporciona un nombre de tarea.

  7. Elige una región para la ejecución de tareas.

  8. Completa los parámetros obligatorios.

  9. Haga clic en Continuar.

gcloud

Reemplaza lo siguiente:

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 output asset ID

En tu shell o terminal, ejecuta la 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\

API de REST

Reemplaza lo siguiente:

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 output asset ID

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",
   }
}

¿Qué sigue?