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 se basan en Dataflow. Antes de usar plantillas, habilita las APIs de Dataflow.
Plantilla: Transfiere datos a Dataplex con una conexión JDBC
La plantilla de transferencia de JDBC de Dataplex copia datos de una base de datos relacional en un destino de recursos de Dataplex. El activo de Dataplex puede ser un activo de Cloud Storage o de BigQuery.
Esta canalización utiliza JDBC para conectarse a la base de datos relacional. Para obtener una capa adicional de protección, también puedes pasar una clave de Cloud KMS junto con un nombre de usuario, contraseña y parámetros de 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 activo de Cloud Storage se particionan al estilo de Hive, y Discovery de Dataplex los pone automáticamente a disposición como una tabla en Data Catalog, BigQuery (tabla externa) o una instancia adjunta de Dataproc Metastore.
Parámetros de la plantilla
Parámetro | Descripción |
---|---|
driverJars |
Separa las rutas de acceso de Cloud Storage para los controladores de JDBC con comas.
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 para usar en 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 |
Es el ID del activo de salida de Dataplex en el que se almacenan los resultados. Para el ID, usa el formato projects/your-project/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name></code> . Puedes encontrar el outputAsset en la consola de Google Cloud, en la pestaña Detalles del activo 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 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á el resultado. Si es 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 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 . Encripta estos parámetros con el extremo de encriptación de la API de Cloud KMS. Por ejemplo, projects/your-project/locations/global/keyRings/test/cryptoKeys/quickstart . |
writeDisposition |
Opcional: Es la estrategia que se debe utilizar si existe el archivo o la tabla de destino. Los formatos compatibles son WRITE_APPEND (se agregarán filas si existe la tabla), WRITE_TRUNCATE (se reemplazará la tabla o el archivo), WRITE_EMPTY (la tabla de salida debe estar vacía o el archivo de salida no debe existir) 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 y 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 pueden ser MONTHLY o HOURLY . |
partitionColumn |
Opcional: Es la columna de partición en la que se basa la partición. El tipo de columna debe ser del formato timestamp/date . Si no se proporciona el parámetro partitionColumn , los datos no se particionarán. |
fileFormat |
Opcional: El formato de archivo de salida en Cloud Storage. 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 deseas actualizar los metadatos de Dataplex para las entidades creadas recientemente. El valor predeterminado para este parámetro es 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. Usa esta marca en los casos en los que administraste el esquema en la fuente. Solo se admite para el destino de Cloud Storage. |
Ejecuta la plantilla
Console
En la consola de Google Cloud, ve a la página de Dataplex:
Navega a la vista Process.
Haz clic en Crear tarea.
En Transferir JDBC a Dataplex, haz clic en Crear tarea.
Elige un lake de Dataplex.
Proporciona un nombre para la tarea.
Elige una región para la ejecución de tareas.
Completa los parámetros obligatorios.
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\
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
API de 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", } }
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
¿Qué sigue?
- Obtén información para administrar tu lago.
- Obtén información para administrar tus zonas.