Tous les produits
Search
Centre de documentation

DataWorks:Vertica

Dernière mise à jour :Aug 10, 2026

Vertica est une base de données orientée colonnes reposant sur une architecture de traitement massivement parallèle (MPP). Le connecteur de données Vertica permet la lecture et l'écriture bidirectionnelles. Cette rubrique décrit les fonctionnalités de synchronisation des données offertes par ce connecteur dans DataWorks.

Versions prises en charge

Vertica Reader se connecte à Vertica via le pilote JDBC. Veillez à utiliser une version du pilote compatible avec votre service Vertica. DataWorks utilise la version 7.1.2 du pilote JDBC :

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

Limites

Types de champs pris en charge

Les types de données Vertica courants (entier, flottant, chaîne et date/heure) sont pris en charge. La prise en charge des types de données avancés reste limitée.

Ajout d'un connecteur de données

Avant de créer une tâche de synchronisation, ajoutez le connecteur de données Vertica à DataWorks. Pour plus d'informations, consultez Gestion des sources de données.

La console DataWorks affiche également la description des paramètres lors de l'ajout du connecteur.

Création d'une tâche de synchronisation des données

Vous devez configurer les tâches de synchronisation des données Vertica dans l'éditeur de code. Les sections suivantes détaillent le format du script, les paramètres et fournissent des exemples.

Configuration d'une tâche de synchronisation hors ligne pour une seule table

Annexe : Exemples de scripts et descriptions des paramètres

Configuration d'une tâche de synchronisation par lots à l'aide de l'éditeur de code

Le script doit respecter le format unifié des tâches de synchronisation par lots. Pour connaître les exigences de format, consultez Configuration d'une tâche dans l'éditeur de code.

Exemple de script 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.
    }
  }
}

Paramètres du script Reader

Paramètre Description Obligatoire Valeur par défaut Exemple
datasource Nom du connecteur de données. Il doit correspondre exactement au nom du connecteur ajouté dans l'éditeur de code. Oui Aucune my_vertica_source
table Tables source à lire, spécifiées sous forme de tableau JSON. Vous pouvez lire plusieurs tables simultanément, à condition qu'elles partagent le même schéma. Vertica Reader ne vérifie pas la cohérence des schémas. Placez le paramètre table dans le bloc connection. Oui Aucune ["orders", "order_items"]
column Colonnes à lire depuis les tables source, spécifiées sous forme de tableau JSON. Utilisez ["*"] pour lire toutes les colonnes. Ce paramètre prend en charge l'élagage, le réordonnancement des colonnes et l'ajout de constantes. Ne laissez pas ce champ vide. Oui Aucune ["id", "name", "created_at"]
splitPk Colonne utilisée pour partitionner les données lors des lectures concurrentes. Privilégiez la clé primaire pour assurer une distribution uniforme et éviter les points chauds. Seules les colonnes de type entier sont prises en charge (les types chaîne, flottant et date ne sont pas acceptés). Si vous laissez ce champ vide, la lecture s'effectue via un seul canal, sans partitionnement. Non Aucune "id"
where Condition de filtrage. Vertica Reader construit la requête SQL à partir des paramètres column, table et where. Pour une synchronisation incrémentielle des données quotidiennes, définissez ce paramètre sur gmt_create > $bizdate. En l'absence de configuration, le système lit toutes les données de la table. Non Aucune "gmt_create > $bizdate"
querySql Requête SQL personnalisée pour les scénarios de filtrage avancés où le paramètre where s'avère insuffisant. Si vous configurez querySql, Vertica Reader ignore les paramètres table, column et where. Non Aucune "SELECT id, name FROM orders WHERE status = 'active'"
fetchSize Nombre d'enregistrements extraits de la base de données par lot. Augmenter cette valeur réduit les allers-retours réseau et améliore les performances d'extraction. Toutefois, définir fetchSize au-delà de 2048 risque de provoquer une erreur de mémoire insuffisante (OOM). Non 1024 512

Exemple de script 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"
      }
    ]
  }
}

Paramètres du script Writer

Paramètre Description Obligatoire Valeur par défaut Exemple
datasource Nom du connecteur de données. Il doit correspondre exactement au nom du connecteur ajouté dans l'éditeur de code. Oui Aucune my_vertica_dest
jdbcUrl URL JDBC de la base de données Vertica de destination, spécifiée dans le bloc connection. Une seule valeur est acceptée. L'utilisation de plusieurs bases de données principales pour une même instance (comme dans les scénarios d'importation bidirectionnelle) n'est pas prise en charge. Oui Aucune jdbc:vertica://127.0.0.1:3306/database
username Nom d'utilisateur pour l'authentification auprès du connecteur de données. Oui Aucune dbadmin
password Mot de passe associé au nom d'utilisateur spécifié. Oui Aucune ********
table Tables de destination vers lesquelles écrire les données, spécifiées sous forme de tableau JSON dans le bloc connection. Oui Aucune ["vertica_table"]
column Colonnes de destination vers lesquelles écrire les données, séparées par des virgules. Oui Aucune ["id", "name", "age"]
preSql Instruction SQL à exécuter avant l'écriture des données dans la table de destination. Utilisez @table comme espace réservé pour le nom de la table ; le système le remplacera par le nom réel lors de l'exécution. Non Aucune "delete from @table where db_id = -1"
postSql Instruction SQL à exécuter après l'écriture des données dans la table de destination. Non Aucune "update @table set db_modify_time = now() where db_id = 1"
batchSize Nombre d'enregistrements validés par lot. Des valeurs plus élevées réduisent les allers-retours réseau et améliorent le débit, mais une valeur trop importante peut provoquer une erreur OOM. Non 1024 512