Vertica es una base de datos orientada a columnas que utiliza una arquitectura de procesamiento masivamente paralelo (MPP). El origen de datos de Vertica proporciona canales bidireccionales para leer y escribir en Vertica. Este tema describe las capacidades de sincronización de datos del origen de datos de Vertica en DataWorks.
Versiones compatibles
Vertica Reader se conecta a Vertica mediante el controlador JDBC de Vertica. Asegúrese de que la versión del controlador sea compatible con su servicio de Vertica. DataWorks utiliza la versión 7.1.2 del controlador JDBC:
<dependency>
<groupId>com.vertica</groupId>
<artifactId>vertica-jdbc</artifactId>
<version>7.1.2</version>
</dependency>
Límites
Los orígenes de datos de Vertica funcionan únicamente con Serverless resource groups (recommended) y exclusive resource groups for Data Integration.
Vertica Writer no admite el parámetro
writeMode.Las tareas solo se pueden configurar en el editor de código.
Tipos de campo compatibles
Se admiten los tipos de datos comunes de Vertica: entero, flotante, cadena y hora. La compatibilidad con tipos de datos avanzados es limitada.
Agregar un origen de datos
Antes de desarrollar una tarea de sincronización, agregue el origen de datos de Vertica a DataWorks. Para obtener instrucciones, consulte Gestión de orígenes de datos.
Las descripciones de los parámetros también están disponibles en la consola de DataWorks cuando agrega el origen de datos.
Desarrollar una tarea de sincronización de datos
Las tareas de sincronización de datos de Vertica deben configurarse en el editor de código. Las siguientes secciones abordan el formato del script, los parámetros y ejemplos.
Configurar una tarea de sincronización sin conexión para una sola tabla
Para consultar el procedimiento de configuración, véase Configure a task in the code editor.
Para ver todos los parámetros y ejemplos de scripts, consulte la sección Appendix: Script examples and parameter descriptions.
Apéndice: Ejemplos de scripts y descripciones de parámetros
Configurar una tarea de sincronización por lotes mediante el editor de código
El script debe seguir el formato unificado para tareas de sincronización por lotes. Para conocer los requisitos de formato, consulte Configure a task in the code editor.
Ejemplo de script de Reader
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "vertica",
"parameter": {
"datasource": "", // The data source name.
"column": [ // The columns to read.
"id",
"name"
],
"where": "",
"splitPk": "id",
"connection": [
{
"table": [ // The source table name.
"table"
]
}
]
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {
"print": false,
"fieldDelimiter": ","
},
"name": "Writer",
"category": "writer"
}
],
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0" // Maximum number of error records allowed.
},
"speed": {
"throttle": true, // Set to true to enable rate limiting; set to false to disable.
"concurrent": 1, // Number of concurrent jobs.
"mbps": "12" // Maximum transmission rate. 1 mbps = 1 MB/s.
}
}
}
Parámetros del script de Reader
|
Parámetro |
Descripción |
Obligatorio |
Valor predeterminado |
Ejemplo |
|
|
Nombre del origen de datos. Debe coincidir con el nombre del origen de datos agregado en el editor de código. |
Sí |
Ninguna |
|
|
|
Tablas de origen desde las cuales leer, especificadas como un arreglo JSON. Se pueden leer varias tablas simultáneamente, pero todas deben tener el mismo esquema. Vertica Reader no verifica la consistencia del esquema. El parámetro |
Sí |
Ninguna |
|
|
|
Columnas que se leerán de las tablas de origen, especificadas como un arreglo JSON. Utilice |
Sí |
Ninguna |
|
|
|
Columna utilizada para particionar los datos en lecturas simultáneas. Utilice la clave principal para lograr una distribución uniforme y evitar puntos críticos. Solo se admiten columnas de tipo entero; no se admiten columnas de tipo cadena, flotante ni fecha. Si se deja en blanco, los datos se leen a través de un solo canal sin particionamiento. |
No |
Ninguna |
|
|
|
Condición de filtro. Vertica Reader utiliza los parámetros |
No |
Ninguna |
|
|
|
Consulta SQL personalizada para escenarios de filtrado avanzado donde |
No |
Ninguna |
|
|
|
Número de registros obtenidos de la base de datos en cada lote. Aumentar este valor reduce los ciclos de comunicación de red y mejora el rendimiento de extracción. Establecer |
No |
1024 |
|
Ejemplo de script de Writer
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "vertica",
"parameter": {
"datasource": "data_source_name",
"column": [ // The destination columns.
"id",
"name"
],
"connection": [
{
"table": [ // The destination table name.
"vertica_table"
]
}
],
"preSql": [ // SQL to run before the write task starts.
"delete from @table where db_id = -1"
],
"postSql": [ // SQL to run after the write task completes.
"update @table set db_modify_time = now() where db_id = 1"
]
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": "0" // Maximum number of error records allowed.
},
"speed": {
"throttle": true, // Set to true to enable rate limiting; set to false to disable.
"concurrent": 1, // Number of concurrent jobs.
"mbps": "12" // Maximum transmission rate. 1 mbps = 1 MB/s.
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Parámetros del script de Writer
|
Parámetro |
Descripción |
Obligatorio |
Valor predeterminado |
Ejemplo |
|
|
Nombre del origen de datos. Debe coincidir con el nombre del origen de datos agregado en el editor de código. |
Sí |
Ninguna |
|
|
|
URL JDBC de la base de datos Vertica de destino, especificada dentro del bloque |
Sí |
Ninguna |
|
|
|
Nombre de usuario para autenticarse en el origen de datos. |
Sí |
Ninguna |
|
|
|
Contraseña correspondiente al nombre de usuario especificado. |
Sí |
Ninguna |
|
|
|
Tablas de destino donde se escribirán los datos, especificadas como un arreglo JSON dentro del bloque |
Sí |
Ninguna |
|
|
|
Columnas de destino donde se escribirán los datos, separadas por comas. |
Sí |
Ninguna |
|
|
|
Sentencia SQL que se ejecuta antes de escribir los datos en la tabla de destino. Utilice |
No |
Ninguna |
|
|
|
Sentencia SQL que se ejecuta después de escribir los datos en la tabla de destino. |
No |
Ninguna |
|
|
|
Número de registros confirmados en cada lote. Valores más altos reducen los ciclos de comunicación de red y mejoran el throughput, pero establecer un valor demasiado alto puede provocar un error OOM. |
No |
1024 |
|