Ingiere contenido con plantillas

Knowledge Catalog (antes Dataplex Universal Catalog) 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 ingiere datos a través de una conexión JDBC.

Antes de comenzar

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

Habilita las APIs de Dataflow

Plantilla: Ingesta datos en Knowledge Catalog con una conexión JDBC

La plantilla de transferencia de datos de JDBC de Knowledge Catalog copia datos de una base de datos relacional a un destino de activos de Knowledge Catalog. El recurso de Knowledge Catalog puede ser un recurso 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 Knowledge Catalog los pone a disposición automáticamente como una tabla en Data Catalog (obsoleto), BigQuery (tabla externa) o una instancia de Dataproc Metastore adjunta.

Parámetros de la plantilla

Parámetro Descripción
driverJars Separa con comas las rutas 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 Es la cadena de propiedades para usar en la conexión de JDBC.
Por ejemplo, unicode=true&characterEncoding=UTF-8.
query Es 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 Knowledge Catalog 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 recurso Knowledge Catalog.
username 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 Ubicación de la tabla de BigQuery o nombre de la carpeta superior de Cloud Storage en la que se escribirá el resultado. 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 superior de Cloud Storage, proporciona el nombre de la carpeta superior.
KMSEncryptionKey Opcional: Si proporcionas el parámetro KMSEncryptionKey, asegúrate de que password, username y connectionURL estén encriptados por Cloud KMS. 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 emplear 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 sobrescribirá la tabla o el archivo), WRITE_EMPTY (la tabla de salida debe estar vacía o no debe existir el archivo de salida) y SKIP (se omitirá la escritura en el archivo si existe). En el caso de BigQuery, los formatos permitidos son WRITE_APPEND, WRITE_TRUNCATE y WRITE_EMPTY. En el caso de Cloud Storage, los formatos permitidos son SKIP, WRITE_TRUNCATE y WRITE_EMPTY. Valor predeterminado: WRITE_EMPTY.
partitioningScheme Esquema de partición (opcional) 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 tener el formato timestamp/date. Si no se proporciona el parámetro partitionColumn, los datos no se particionarán.
fileFormat Opcional: Es el formato del archivo de salida en Cloud Storage. Los archivos se comprimen con el parámetro de configuración predeterminado 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 del Catálogo de conocimiento para las entidades creadas recientemente. El valor predeterminado para este parámetro es false.

Si está habilitado, la canalización copiará automáticamente el esquema de las entidades de Knowledge Catalog de origen a las de destino, y no se ejecutará la detección automática de Knowledge Catalog para ellas. Usa esta marca en los casos en los que tengas un esquema administrado 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 Proceso de Knowledge Catalog:

    Ir a Proceso

  2. Haz clic en Crear tarea.

  3. En Transferir JDBC al catálogo de conocimiento, haz clic en Crear tarea.

  4. Elige un lago de Knowledge Catalog.

  5. Proporciona un nombre de tarea.

  6. Elige una región para la ejecución de la tarea.

  7. Completa 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\

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

¿Qué sigue?