Todos os produtos
Search
Central de documentação

DataWorks:Vertica

Última atualização: Jun 27, 2026

O Vertica é um banco de dados orientado a colunas que usa arquitetura de processamento massivamente paralelo (MPP). A source de dados Vertica fornece canais bidirecionais para leitura e escrita. Este tópico descreve os recursos de sincronização de dados da source de dados Vertica no DataWorks.

Versões compatíveis

O Vertica Reader conecta-se ao Vertica pelo driver JDBC do Vertica. Verifique se a versão do driver é compatível com o serviço Vertica. O DataWorks usa a versão 7.1.2 do driver JDBC:

<dependency>
  <groupId>com.vertica</groupId>
  <artifactId>vertica-jdbc</artifactId>
  <version>7.1.2</version>
</dependency>

Limites

Tipos de campo compatíveis

O sistema aceita tipos de dados comuns do Vertica: inteiro, ponto flutuante, string e tempo. O suporte a tipos de dados avançados é limitado.

Adicionar uma source de dados

Antes de desenvolver uma tarefa de sincronização, adicione a source de dados Vertica ao DataWorks. Para obter instruções, consulte Gerenciamento de sources de dados.

O console do DataWorks também exibe as descrições dos parâmetros durante a adição da source de dados.

Desenvolver uma tarefa de sincronização de dados

Configure as tarefas de sincronização de dados do Vertica no editor de código. As seções a seguir abordam o formato do script, os parâmetros e exemplos.

Configure uma tarefa de sincronização offline para uma única tabela

Apêndice: Exemplos de script e descrições de parâmetros

Configure uma tarefa de sincronização em lote usando o editor de código

O script deve seguir o formato unificado para tarefas de sincronização em lote. Para requisitos de formato, consulte Configure uma tarefa no editor de código.

Exemplo de script do 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 do script do Reader

Parâmetro

Descrição

Obrigatório

Valor padrão

Exemplo

datasource

Nome da source de dados. Deve corresponder ao nome da source de dados adicionada no editor de código.

Sim

Nenhum

my_vertica_source

table

Tabelas de origem para leitura, especificadas como um array JSON. É possível ler várias tabelas simultaneamente, mas todas devem ter o mesmo schema. O Vertica Reader não verifica a consistência do schema. Insira o parâmetro table dentro do bloco connection.

Sim

Nenhum

["orders", "order_items"]

column

Colunas a serem lidas das tabelas de origem, especificadas como um array JSON. Use ["*"] para ler todas as colunas. Oferece suporte a projeção de colunas, reordenação e constantes. Não pode ficar em branco.

Sim

Nenhum

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

splitPk

Coluna usada para particionar dados em leituras concorrentes. Utilize a chave primária para garantir distribuição uniforme e evitar pontos de congestão. Apenas colunas inteiras são aceitas; colunas do tipo string, ponto flutuante e data não são suportadas. Se deixado em branco, a leitura ocorre por um único canal, sem particionamento.

Não

Nenhum

"id"

where

Condição de filtro. O Vertica Reader usa os parâmetros column, table e where para construir a consulta SQL. Para sincronização incremental de dados diários, defina como gmt_create > $bizdate. Se não configurado, o sistema lê todos os dados da tabela.

Não

Nenhum

"gmt_create > $bizdate"

querySql

Consulta SQL personalizada para cenários avançados de filtragem em que apenas where é insuficiente. Quando querySql está configurado, o Vertica Reader ignora os parâmetros table, column e where.

Não

Nenhum

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

fetchSize

Quantidade de registros buscados do banco de dados em cada lote. Aumentar esse valor reduz as idas e vindas na rede e melhora o desempenho da extração. Definir fetchSize acima de 2048 pode causar erro de falta de memória (OOM).

Não

1024

512

Exemplo de script do 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 do script do Writer

Parâmetro

Descrição

Obrigatório

Valor padrão

Exemplo

datasource

Nome da source de dados. Deve corresponder ao nome da source de dados adicionada no editor de código.

Sim

Nenhum

my_vertica_dest

jdbcUrl

URL JDBC do banco de dados Vertica de destino, especificada dentro do bloco connection. Apenas um valor é aceito; múltiplos bancos de dados primários para a mesma instância não são suportados (como em cenários de importação bidirecional de dados).

Sim

Nenhum

jdbc:vertica://127.0.0.1:3306/database

username

Nome de usuário para autenticação na source de dados.

Sim

Nenhum

dbadmin

password

Senha correspondente ao nome de usuário especificado.

Sim

Nenhum

********

table

Tabelas de destino para gravação, especificadas como um array JSON dentro do bloco connection.

Sim

Nenhum

["vertica_table"]

column

Colunas de destino para gravação de dados, separadas por vírgulas.

Sim

Nenhum

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

preSql

Instrução SQL executada antes da gravação dos dados na tabela de destino. Use @table como espaço reservado para o nome da tabela; o sistema o substitui pelo nome real durante a execução.

Não

Nenhum

"delete from @table where db_id = -1"

postSql

Instrução SQL executada após a gravação dos dados na tabela de destino.

Não

Nenhum

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

batchSize

Número de registros confirmados em cada lote. Valores maiores reduzem as idas e vindas na rede e aumentam o throughput, mas definir um valor muito alto pode causar erro OOM.

Não

1024

512