Todos los productos
Search
Centro de documentos

DataWorks:Vertica

Última actualización: Sep 04, 2026

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

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

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

datasource

Nombre del origen de datos. Debe coincidir con el nombre del origen de datos agregado en el editor de código.

Sí

Ninguna

my_vertica_source

table

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 table debe colocarse dentro del bloque connection.

Sí

Ninguna

["orders", "order_items"]

column

Columnas que se leerán de las tablas de origen, especificadas como un arreglo JSON. Utilice ["*"] para leer todas las columnas. Admite poda de columnas, reordenamiento de columnas y constantes. No puede dejarse en blanco.

Sí

Ninguna

["id", "name", "created_at"]

splitPk

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

"id"

where

Condición de filtro. Vertica Reader utiliza los parámetros column, table y where para construir la consulta SQL. Para la sincronización incremental de datos diarios, establezca este valor en gmt_create > $bizdate. Si no se configura, se leen todos los datos de la tabla.

No

Ninguna

"gmt_create > $bizdate"

querySql

Consulta SQL personalizada para escenarios de filtrado avanzado donde where por sí solo resulta insuficiente. Cuando se configura querySql, Vertica Reader ignora los parámetros table, column y where.

No

Ninguna

"SELECT id, name FROM orders WHERE status = 'active'"

fetchSize

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 fetchSize por encima de 2048 puede provocar un error de memoria insuficiente (OOM).

No

1024

512

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

datasource

Nombre del origen de datos. Debe coincidir con el nombre del origen de datos agregado en el editor de código.

Sí

Ninguna

my_vertica_dest

jdbcUrl

URL JDBC de la base de datos Vertica de destino, especificada dentro del bloque connection. Solo se admite un valor; no se admiten múltiples bases de datos principales para la misma instancia de base de datos (como en escenarios de importación bidireccional de datos).

Sí

Ninguna

jdbc:vertica://127.0.0.1:3306/database

username

Nombre de usuario para autenticarse en el origen de datos.

Sí

Ninguna

dbadmin

password

Contraseña correspondiente al nombre de usuario especificado.

Sí

Ninguna

********

table

Tablas de destino donde se escribirán los datos, especificadas como un arreglo JSON dentro del bloque connection.

Sí

Ninguna

["vertica_table"]

column

Columnas de destino donde se escribirán los datos, separadas por comas.

Sí

Ninguna

["id", "name", "age"]

preSql

Sentencia SQL que se ejecuta antes de escribir los datos en la tabla de destino. Utilice @table como marcador de posición para el nombre de la tabla; este se reemplaza con el nombre real de la tabla durante la ejecución.

No

Ninguna

"delete from @table where db_id = -1"

postSql

Sentencia SQL que se ejecuta después de escribir los datos en la tabla de destino.

No

Ninguna

"update @table set db_modify_time = now() where db_id = 1"

batchSize

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

512