Tous les produits
Search
Centre de documentation

DataWorks:Source de données Hologres

Dernière mise à jour :Aug 10, 2026

La source de données Hologres offre des canaux de lecture et d'écriture bidirectionnels pour Hologres. Cette rubrique décrit les capacités de synchronisation des données Hologres prises en charge par DataWorks.

Limites

La source de données Hologres prend uniquement en charge l'exécution des tâches de synchronisation sur un groupe de ressources serverless.

Lecture et écriture par lots

  • Hologres Writer ne prend pas en charge l'écriture de données dans les tables externes Hologres.

  • Logique d'obtention de l'endpoint Hologres pour la connectivité de la source de données :

    • Pour les instances Hologres de la région actuelle, la priorité des endpoints est la suivante : any Tunnel > Single Tunnel > Public (internet).

    • Pour les instances Hologres d'autres régions, la priorité des endpoints est la suivante : Public (internet) > Single Tunnel.

Lecture en temps réel d'une seule table

  • La version de Hologres doit être 2,1 ou ultérieure.

  • La synchronisation incrémentielle des tables partitionnées Hologres n'est pas prise en charge.

  • La synchronisation des messages de modification DDL sur les tables Hologres n'est pas prise en charge.

  • La synchronisation incrémentielle Hologres prend en charge les types de données suivants :

    INTEGER, BIGINT, TEXT, CHAR(n), VARCHAR(n), REAL, JSON, SERIAL, OID, INT4[], INT8[], FLOAT8[], BOOLEAN[], TEXT[].

  • Pour la synchronisation en temps réel d'une seule table depuis Hologres, vous devez activer Hologres Binlog sur la table source Hologres. Pour plus d'informations, consultez S'abonner à Hologres Binlog.

Écriture en temps réel sur toute la base de données

  • Les tâches de synchronisation de données en temps réel ne prennent pas en charge la synchronisation des tables sans clés primaires.

  • Lors de la synchronisation des données d'une base de données MySQL complète vers Hologres en temps réel, les données ne peuvent être écrites que dans les tables enfants des tables partitionnées. L'écriture dans la table parent d'une table partitionnée n'est pas prise en charge.

Types de données pris en charge

Type de données

Lecture par lots (Hologres Reader)

Écriture par lots (Hologres Writer)

Écriture en temps réel

UUID

Non pris en charge

Non pris en charge

Non pris en charge

CHAR

Pris en charge

Pris en charge

Pris en charge

NCHAR

Pris en charge

Pris en charge

Pris en charge

VARCHAR

Pris en charge

Pris en charge

Pris en charge

LONGVARCHAR

Pris en charge

Pris en charge

Pris en charge

NVARCHAR

Pris en charge

Pris en charge

Pris en charge

LONGNVARCHAR

Pris en charge

Pris en charge

Pris en charge

CLOB

Pris en charge

Pris en charge

Pris en charge

NCLOB

Pris en charge

Pris en charge

Pris en charge

SMALLINT

Pris en charge

Pris en charge

Pris en charge

TINYINT

Pris en charge

Pris en charge

Pris en charge

INTEGER

Pris en charge

Pris en charge

Pris en charge

BIGINT

Pris en charge

Pris en charge

Pris en charge

NUMERIC

Pris en charge

Pris en charge

Pris en charge

DECIMAL

Pris en charge

Pris en charge

Pris en charge

FLOAT

Pris en charge

Pris en charge

Pris en charge

REAL

Pris en charge

Pris en charge

Pris en charge

DOUBLE

Pris en charge

Pris en charge

Pris en charge

TIME

Pris en charge

Pris en charge

Pris en charge

DATE

Pris en charge

Pris en charge

Pris en charge

TIMESTAMP

Pris en charge

Pris en charge

Pris en charge

BINARY

Pris en charge

Pris en charge

Pris en charge

VARBINARY

Pris en charge

Pris en charge

Pris en charge

BLOB

Pris en charge

Pris en charge

Pris en charge

LONGVARBINARY

Pris en charge

Pris en charge

Pris en charge

BOOLEAN

Pris en charge

Pris en charge

Pris en charge

BIT

Pris en charge

Pris en charge

Pris en charge

JSON

Pris en charge

Pris en charge

Pris en charge

JSONB

Pris en charge

Pris en charge

Pris en charge

Fonctionnement

Lecture par lots

Hologres Reader prend en charge deux modes de lecture :

Mode JDBC (par défaut)

Lit les données des tables Hologres via PSQL. Plusieurs tâches concurrentes sont lancées en fonction du nombre de shards de la table, chaque shard correspondant à une tâche Select concurrente :

  • Lors de la création d'une table dans Hologres, vous pouvez configurer le nombre de shards de la table en exécutant CALL set_table_property('table_name', 'shard_count', 'xx') au sein de la même transaction CREATE TABLE.

    Par défaut, la base de données utilise le nombre de shards par défaut, qui dépend de la configuration de l'instance Hologres.

  • L'instruction Select filtre les données par shard à l'aide de la colonne intégrée hg_shard_id de la table.

Mode Arrow (useArrow=true)

Lit les données via le protocole Hologres COPY OUT Arrow. Ce mode prend en charge le transfert compressé LZ4 et offre des performances supérieures :

  • Requiert Hologres version >= 4.0.18.

  • Les tâches concurrentes sont également divisées en fonction du nombre de shards.

  • Les colonnes de fonction et les colonnes constantes ne sont pas prises en charge. Seules les colonnes physiques de la table sont prises en charge.

  • Le transfert compressé est automatiquement activé lorsque la condition de version est remplie.

Écriture par lots

Hologres Writer obtient les données de protocole générées par le Reader via le framework de synchronisation des données. Le canal et la stratégie de résolution des conflits utilisés pour écrire les données sont déterminés par les configurations writeMode et conflictMode.

Mode d'écriture (writeMode)

Mode d'écriture

Méthode

Scénario applicable

Exigence de version

INSERT

Utilise Holo Client pour l'écriture par lots (INSERT ON CONFLICT).

Scénarios en temps réel (y compris la rétractation des données) et scénarios d'écriture généraux.

Toutes les versions

FIXED_COPY

Utilise Holo Client Fixed Copy pour les écritures en flux continu.

Scénarios en temps réel (à l'exclusion de la rétractation des données). Peut également être utilisé pour les scénarios d'importation par lots.

Hologres >= 1,1

STAGE

Écrit d'abord les données dans Hologres Internal Stage (format Arrow), puis importe les données du stage vers la table de destination.

Mode recommandé pour la synchronisation par lots. Meilleures performances pour les importations à grande échelle.

Hologres >= 4.1.0

COPY

Utilise JDBC COPY FROM STDIN pour écrire des données CSV texte.

Scénarios d'importation par lots compatibles avec les versions antérieures.

Toutes les versions

Recommandations de scénario

Mode de gestion des conflits (conflictMode)

Vous pouvez configurer conflictMode pour spécifier comment les données nouvellement importées sont gérées lorsqu'un conflit de clé primaire se produit avec les données existantes :

Important

conflictMode s'applique uniquement aux tables disposant de clés primaires. Pour plus d'informations sur le mécanisme d'écriture et les performances, consultez Écrire des données dans Hologres.

  • Lorsque conflictMode est défini sur Replace (mise à jour complète de la ligne), les nouvelles données écrasent les anciennes données. Toutes les colonnes de la ligne sont écrasées. Les colonnes qui ne sont pas incluses dans le mappage des colonnes sont forcées à NULL.

  • Lorsque conflictMode est défini sur Update, les nouvelles données écrasent les anciennes données. Seules les colonnes incluses dans le mappage des colonnes sont écrasées.

  • Lorsque conflictMode est défini sur Ignore, les nouvelles données sont ignorées.

Ajouter une source de données

Avant de développer une tâche de synchronisation dans DataWorks, vous devez ajouter la source de données requise à DataWorks en suivant les instructions de Configuration de la source de données. Vous pouvez consulter les descriptions des paramètres dans la console DataWorks pour comprendre la signification des paramètres lors de l'ajout d'une source de données.

Développer une tâche de synchronisation des données

Synchronisation par lots d'une seule table

Synchronisation en temps réel d'une seule table

Synchronisation par lots sur toute la base de données

Synchronisation en temps réel sur toute la base de données

Temps réel sur toute la base de données en mode serverless

FAQ sur les tâches de synchronisation en temps réel : FAQ sur la synchronisation en temps réel .

Annexe : Démonstrations de scripts et description des paramètres

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

Si vous souhaitez configurer une tâche de synchronisation par lots à l'aide de l'éditeur de code, vous devez configurer les paramètres associés dans le script selon les exigences de format de script unifié. Pour plus d'informations, consultez Configuration en mode script. Les informations suivantes décrivent les paramètres que vous devez configurer pour les sources de données lors de la configuration d'une tâche de synchronisation par lots à l'aide de l'éditeur de code.

Démonstrations de scripts Reader

  • Configurer une table non partitionnée

    • L'exemple suivant montre comment configurer la lecture des données d'une table Hologres non partitionnée vers la mémoire.

      {
          "transform": false,
          "type": "job",
          "version": "2.0",
          "steps": [
              {
                  "stepType": "holo",
                  "parameter": {
                      "datasource": "holo_db",
                      "envType": 1,
                      "column": [ 
                          "tag",
                          "id",
                          "title",
                          "body"
                      ],
                      "where": "",
                      "table": "holo_reader_basic_src"
                  },
                  "name": "Reader",
                  "category": "reader"
              },
              {
                  "stepType": "stream",
                  "parameter": {
                      "print": false,
                      "fieldDelimiter": ","
                  },
                  "name": "Writer",
                  "category": "writer"
              }
          ],
          "setting": {
              "executeMode": null,
              "failoverEnable": null,
              "errorLimit": {
                  "record": "0"
              },
              "speed": {
                  "concurrent": 2,
                  "throttle": false
              }
          },
          "order": {
              "hops": [
                  {
                      "from": "Reader",
                      "to": "Writer"
                  }
              ]
          }
      }
    • L'instruction DDL de la table Hologres est la suivante.

      begin;
      drop table if exists holo_reader_basic_src;
      create table holo_reader_basic_src(
        tag text not null, 
        id int not null, 
        title text not null, 
        body text, 
        primary key (tag, id));
        call set_table_property('holo_reader_basic_src', 'orientation', 'column');
        call set_table_property('holo_reader_basic_src', 'shard_count', '3');
      commit;
  • Configurer une table partitionnée

    • Configurez la lecture des données d'une table enfant d'une table partitionnée Hologres vers la mémoire.

      Remarque

      Faites attention à la configuration de partition.

      {
          "transform": false,
          "type": "job",
          "version": "2.0",
          "steps": [
              {
                  "stepType": "holo",
                  "parameter": {
                      "selectedDatabase": "public",
                      "partition": "tag=foo",
                      "datasource": "holo_db",
                      "envType": 1,
                      "column": [
                          "tag",
                          "id",
                          "title",
                          "body"
                      ],
                      "tableComment": "",
                      "where": "",
                      "table": "public.holo_reader_basic_part_src"
                  },
                  "name": "Reader",
                  "category": "reader"
              },
              {
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
          }
        ],
        "setting":{
          "errorLimit":{
            "record":"0"
          },
          "speed":{
            "throttle":true,
            "concurrent":1,
            "mbps":"12"
              }
           },
        "order":{
          "hops":[
            {
              "from":"Reader",
              "to":"Writer"
            }
          ]
        }
      }
    • L'instruction DDL de la table Hologres est la suivante.

      begin;
      drop table if exists holo_reader_basic_part_src;
      create table holo_reader_basic_part_src(
        tag text not null, 
        id int not null, 
        title text not null, 
        body text, 
        primary key (tag, id))
        partition by list( tag );
        call set_table_property('holo_reader_basic_part_src', 'orientation', 'column');
        call set_table_property('holo_reader_basic_part_src', 'shard_count', '3');
      commit;
      
      create table holo_reader_basic_part_src_1583161774228 partition of holo_reader_basic_part_src for values in ('foo');
      
      # Ensure that the child tables of the partitioned table have been created and data has been imported.
      postgres=# \d+ holo_reader_basic_part_src
                               Table "public.holo_reader_basic_part_src"
       Column |  Type   | Collation | Nullable | Default | Storage  | Stats target | Description 
      --------+---------+-----------+----------+---------+----------+--------------+-------------
       tag    | text    |           | not null |         | extended |              | 
       id     | integer |           | not null |         | plain    |              | 
       title  | text    |           | not null |         | extended |              | 
       body   | text    |           |          |         | extended |              | 
      Partition key: LIST (tag)
      Indexes:
          "holo_reader_basic_part_src_pkey" PRIMARY KEY, btree (tag, id)
      Partitions: holo_reader_basic_part_src_1583161774228 FOR VALUES IN ('foo')

Paramètres du script Reader

Paramètre

Description

Obligatoire

Valeur par défaut

database

Le nom d'une base de données dans l'instance Hologres.

Oui

N/A

table

Le nom de la table Hologres. Le format schema_name.table_name est pris en charge. Si la table est une table partitionnée, spécifiez le nom de la table parent. Ce paramètre est mutuellement exclusif avec querySql. Vous devez en configurer au moins un.

Conditionnellement obligatoire

N/A

querySql

Une instruction SQL de requête personnalisée. Si ce paramètre est configuré, les paramètres table et column sont ignorés. Ce paramètre est mutuellement exclusif avec table. Vous devez en configurer au moins un.

Conditionnellement obligatoire

N/A

column

Les colonnes à lire. ["*"] indique toutes les colonnes. Les colonnes d'expression de fonction sont également prises en charge (mode JDBC uniquement).

Oui

N/A

partition

Pour les tables partitionnées, spécifie la colonne de partition et sa valeur au format column=value.

Important
  • Hologres prend uniquement en charge les partitions LIST. Une seule colonne de partition est prise en charge, et la colonne doit être de type INT4 ou TEXT.

  • Assurez-vous que ce paramètre correspond à la configuration de partition dans la DDL de la table.

  • Assurez-vous que les tables enfants correspondantes ont été créées et que les données ont été importées.

Non

Vide, indiquant une table non partitionnée.

where

La condition de filtre, qui est ajoutée à la clause WHERE de l'instruction SELECT. Ce paramètre prend effet uniquement en mode table.

Non

Vide

useArrow

Spécifie s'il faut utiliser le format colonnaire Arrow pour une synchronisation des données haute performance. Lorsqu'il est activé, Reader utilise le protocole COPY OUT Arrow pour lire les données et les transmet au Writer aval au format colonnaire pour de meilleures performances. Hologres 4.0.18 ou version ultérieure est requis. Si la version ne répond pas à l'exigence, le système revient automatiquement au mode JDBC. Le mode Arrow ne prend pas en charge les colonnes de fonction ou les colonnes constantes. Actuellement, ce mode prend en charge la synchronisation par lots sur toute la base de données et la synchronisation par lots d'une seule table lorsque la source et la destination sont MaxCompute, Hologres ou Hive/OSS/HDFS (Parquet/ORC). Pour plus d'informations, consultez Utiliser le format Arrow pour une synchronisation des données haute performance.

Non

false

compress

Spécifie s'il faut activer la compression LZ4 pour le transfert de données en mode Arrow. Ce paramètre prend effet uniquement lorsque useArrow=true.

Non

true (défini automatiquement lorsque la version répond à l'exigence)

fetchSize

Le nombre de lignes récupérées depuis la base de données à chaque demande en mode JDBC.

Non

1000

jdbcReadTimeout

La période de délai d'expiration de lecture JDBC. Unité : secondes.

Non

60

enableServerlessComputing

Spécifie s'il faut activer Serverless Computing Hologres pour accélérer les requêtes. Remarque : Ce paramètre contrôle la capacité Serverless Computing de l'instance Hologres, qui est différente d'un groupe de ressources serverless DataWorks.

Non

false

serverlessComputingQueryPriority

La priorité de requête pour Serverless Computing Hologres. Valeurs valides : 1 à 10. Une valeur plus élevée indique une priorité plus grande. Ce paramètre prend effet uniquement lorsque enableServerlessComputing=true.

Non

3

serverlessComputingRequiredCores

Le nombre de cœurs demandés pour Serverless Computing Hologres. Ce paramètre prend effet uniquement lorsque enableServerlessComputing=true.

Non

5

Démonstration de script Writer

  • Configurer une table non partitionnée

    • Configurez l'importation des données générées depuis MySQL dans une table Hologres régulière. L'exemple suivant montre la configuration pour l'importation de données en mode INSERT.

      {
          "type": "job",
          "version": "2.0",
          "steps": [
              {
                  "stepType": "mysql",
                  "parameter": {
                      "envType": 0,
                      "useSpecialSecret": false,
                      "column": [
                          "<column1>",
                          "<column2>",
                          ......,
                          "<columnN>"
                      ],
                      "tableComment": "",
                      "connection": [
                          {
                              "datasource": "<mysql_source_name>",//MySQL data source name
                              "table": [
                                  "<mysql_table_name>"
                              ]
                          }
                      ],
                      "where": "",
                      "splitPk": "",
                      "encoding": "UTF-8"
                  },
                  "name": "Reader",
                  "category": "reader"
              },
              {
                  "stepType": "holo",
                  "parameter": {
                      "selectedDatabase":"public",
                      "schema": "public",
                      "writeMode": "FIXED_COPY",
                      "maxConnectionCount": 9,
                      "truncate":true,//Cleanup rule
                      "datasource": "<holo_sink_name>",//Hologres data source name
                      "conflictMode": "ignore",
                      "envType": 0,
                      "column": [
                          "<column1>",
                          "<column2>",
                          ......,
                          "<columnN>"
                      ],
                      "tableComment": "",
                      "table": "<holo_table_name>",
                      "reShuffleByDistributionKey":false
                  },
                  "name": "Writer",
                  "category": "writer"
              }
          ],
          "setting": {
              "executeMode": null,
              "errorLimit": {
                  "record": "0"
              },
              "locale": "zh_CN",
              "speed": {
                  "concurrent": 2,//Job concurrency
                  "throttle": false//Throttling
              }
          },
          "order": {
              "hops": [
                  {
                      "from": "Reader",
                      "to": "Writer"
                  }
              ]
          }
      }
    • L'instruction DDL de la table Hologres est la suivante.

      begin;
      drop table if exists mysql_to_holo_test;
      create table mysql_to_holo_test(
        tag text not null,
        id int not null,
        body text not null,
        brrth date,
        primary key (tag, id));
        call set_table_property('mysql_to_holo_test', 'orientation', 'column');
        call set_table_property('mysql_to_holo_test', 'distribution_key', 'id');
        call set_table_property('mysql_to_holo_test', 'clustering_key', 'birth');
      commit;
  • Configurer une table partitionnée

    Remarque
    • Hologres prend uniquement en charge les partitions LIST. Une seule colonne de partition est prise en charge, et la colonne doit être de type INT4 ou TEXT.

    • Assurez-vous que ce paramètre correspond à la configuration de partition dans la DDL de la table.

    • Configurez la synchronisation des données générées depuis MySQL vers les tables enfants d'une table partitionnée Hologres.

      {
        "type": "job",
        "version": "2.0",
        "steps": [
          {
            "stepType": "mysql",
            "parameter": {
              "envType": 0,
              "useSpecialSecret": false,
              "column": [
                "<column1>",
                "<column2>",
                  ......,
                "<columnN>"
              ],
              "tableComment": "",
              "connection": [
                {
                  "datasource": "<mysql_source_name>",
                  "table": [
                    "<mysql_table_name>"
                  ]
                }
              ],
              "where": "",
              "splitPk": "<mysql_pk>",//MySQL primary key field
              "encoding": "UTF-8"
            },
            "name": "Reader",
            "category": "reader"
          },
          {
            "stepType": "holo",
            "parameter": {
              "selectedDatabase": "public",
              "writeMode": "insert",
              "maxConnectionCount": 9,
              "partition": "ds=20201215",//Hologres partition key
              "truncate": "false",
              "datasource": "<holo_sink_name>",//Hologres data source name
              "conflictMode": "ignore",
              "envType": 0,
              "column": [
                "<column1>",
                "<column2>",
                  ......,
                "<columnN>"
              ],
              "tableComment": "",
              "table": "<holo_table_name>",
              "reShuffleByDistributionKey":false
            },
            "name": "Writer",
            "category": "writer"
          }
        ],
        "setting": {
          "executeMode": null,
          "failoverEnable": null,
          "errorLimit": {
            "record": "0"
          },
          "speed": {
            "concurrent": 2,//Job concurrency
            "throttle": false//Throttling
          }
        },
        "order": {
          "hops": [
            {
              "from": "Reader",
              "to": "Writer"
            }
          ]
        }
      }
    • L'instruction DDL de la table Hologres est la suivante.

      BEGIN;
      CREATE TABLE public.hologres_parent_table(
        a text ,
        b int,
        c timestamp,
        d text,
        ds text,
        primary key(ds,b)
        )
        PARTITION BY LIST(ds);
      CALL set_table_property('public.hologres_parent_table', 'orientation', 'column');
      CREATE TABLE public.holo_child_1 PARTITION OF public.hologres_parent_table FOR VALUES IN('20201215');
      CREATE TABLE public.holo_child_2 PARTITION OF public.hologres_parent_table FOR VALUES IN('20201216');
      CREATE TABLE public.holo_child_3 PARTITION OF public.hologres_parent_table FOR VALUES IN('20201217');
      COMMIT;

Paramètres du script Writer

Paramètres de base

Paramètre

Description

Obligatoire

Valeur par défaut

database

Le nom de la base de données dans l'instance Hologres.

Oui

N/A

table

Le nom de la table Hologres. Les noms de schéma dans le nom de la table sont pris en charge, tels que schema_name.table_name.

Oui

N/A

writeMode

Le mode d'écriture. Quatre modes sont pris en charge : INSERT, COPY, FIXED_COPY (nécessite Hologres >= 1,1) et STAGE (nécessite Hologres >= 4.1.0). Pour plus d'informations, consultez la description du mode d'écriture dans Implémentation. Nous vous recommandons d'utiliser STAGE ou FIXED_COPY pour la synchronisation par lots et INSERT pour les scénarios en temps réel (y compris la rétractation des données).

Oui

N/A

conflictMode

Le mode de résolution des conflits. Valeurs valides : Replace (mise à jour complète de la ligne), Update (mise à jour partielle des colonnes) et Ignore (ignorer les nouvelles données). Pour plus d'informations, consultez Implémentation. Ce paramètre prend effet uniquement sur les tables dotées de clés primaires.

Oui

N/A

column

Les colonnes de données de la table de destination. Les colonnes doivent inclure l'ensemble des clés primaires de la table de destination (à l'exception des clés primaires à incrémentation automatique serial et des colonnes générées). ["*"] indique toutes les colonnes.

Oui

N/A

partition

Pour les tables partitionnées, ce paramètre spécifie la colonne de partition et sa valeur correspondante au format column=value. Après la configuration de ce paramètre, Writer crée automatiquement une table enfant (si elle n'existe pas) et écrit les données dans la table enfant correspondante.

Remarque
  • Hologres prend uniquement en charge les partitions LIST. Une seule colonne de partition est prise en charge, et la colonne doit être de type INT4, BIGINT, DATE ou TEXT.

  • Assurez-vous que ce paramètre correspond à la configuration de partition dans la DDL de la table.

  • Les modes STAGE et FIXED_COPY ne prennent pas en charge l'écriture directe de données dans une table parent partitionnée. Vous devez spécifier le paramètre partition.

Non

Vide, ce qui indique une table non partitionnée

reShuffleByDistributionKey

Dans Hologres, les importations par lots vers des tables à clé primaire déclenchent des verrous de table par défaut, ce qui limite la capacité d'écriture simultanée de plusieurs connexions. L'activation de la fonctionnalité reShuffle permet à différentes tâches dans les scénarios de synchronisation par lots d'écrire des données dans des shards Holo spécifiés en fonction des clés de distribution, permettant ainsi des écritures par lots simultanées et améliorant considérablement les performances d'écriture. Par rapport aux écritures en temps réel traditionnelles en mode JDBC, cette fonctionnalité réduit la charge sur le serveur Holo et améliore encore l'efficacité d'écriture.

Important

Cette fonctionnalité est disponible uniquement sur les groupes de ressources serverless.

Non

false

truncate

Spécifie s'il faut vider la table de destination avant d'écrire les données dans la table Hologres.

  • true : Vider la table de destination.

    Remarque
    • Actuellement, seules les tables non partitionnées et les tables partitionnées statiques peuvent être tronquées. Les tables partitionnées dynamiques ne peuvent pas être tronquées. Si vous utilisez une table partitionnée dynamique et définissez ce paramètre sur true, la tâche de synchronisation se termine avec une erreur.

    • Si vous utilisez une table partitionnée statique et définissez ce paramètre sur true, seules les données de la table enfant de partition sont tronquées. Les données de la table parent ne sont pas tronquées.

  • false : Ne pas vider la table de destination.

Non

false

partitionFormat

La règle de formatage pour les valeurs de partition dynamiques. Pour les données source de type Date, spécifiez un format tel que yyyyMMdd. Pour les données source de type chaîne, spécifiez une règle de sous-chaîne telle que 2:5, ce qui indique substring(2, 2+5).

Non

N/A

preSql

La liste des instructions SQL à exécuter avant l'écriture des données. L'exécution sur la table parent d'une table partitionnée n'est pas prise en charge.

Non

N/A

postSql

La liste des instructions SQL à exécuter après l'écriture des données.

Non

N/A

Paramètres de connexion et de performance

Paramètre

Description

Obligatoire

Valeur par défaut

maxConnectionCount

Le nombre de connexions simultanées pour l'écriture. Cette valeur est automatiquement ajustée en fonction de la concurrence réelle de la tâche (maxConnectionCount / actualConcurrent). Nous vous recommandons de définir ce paramètre sur 1 à 3 fois la concurrence de la tâche.

Non

3

maxRetryCount

Le nombre de tentatives en cas d'échec.

Non

10

jdbcReadTimeout

La période de délai d'expiration de la connexion JDBC. Unité : secondes.

Non

120

maxCommitSize

Le nombre maximal d'octets par validation, en octets.

Non

2097152 (2 Mo)

maxCommitCount

Le nombre maximal d'enregistrements par validation.

Non

256

reShuffleByDistributionKey

Dans Hologres, les importations par lots vers des tables à clé primaire déclenchent des verrous de table par défaut, ce qui limite la capacité d'écriture simultanée entre plusieurs connexions. L'activation de la fonctionnalité reShuffle permet à différentes tâches d'écrire des données dans des shards Holo spécifiques en fonction de la clé de distribution dans les scénarios de synchronisation par lots. Cela permet des écritures par lots simultanées et améliore considérablement les performances d'écriture. Par rapport aux écritures en temps réel traditionnelles en mode JDBC, l'activation de cette fonctionnalité réduit la charge sur le serveur Holo et améliore encore l'efficacité d'écriture.

Important

Cette fonctionnalité est disponible uniquement sur les groupes de ressources serverless.

Non

false

removeU0000InTextColumnValue

Spécifie s'il faut supprimer les caractères des valeurs de colonne de texte. PostgreSQL ne prend pas en charge le stockage de ce caractère dans le type de données TEXT.

Non

true

Paramètres Serverless Computing Hologres

Les paramètres suivants contrôlent la capacité Serverless Computing d'une instance Hologres. Ils peuvent accélérer les lectures de requête pour Reader et les opérations INSERT FROM Stage pour Writer en mode STAGE.

Remarque : Serverless Computing Hologres et les groupes de ressources serverless DataWorks sont des concepts différents. Le premier est la capacité de calcul élastique au sein d'une instance Hologres, tandis que le second fait référence aux ressources de planification utilisées par DataWorks pour exécuter des tâches de synchronisation.
Notes d'utilisation : Tous les modes sont pris en charge pour Reader. Seul le mode STAGE est pris en charge pour Writer.

Paramètre

Description

Obligatoire

Valeur par défaut

enableServerlessComputing

Spécifie s'il faut activer l'accélération Serverless Computing Hologres.

Non

false

serverlessComputingQueryPriority

La priorité de requête pour Serverless Computing. Valeurs valides : 1 à 10. Une valeur plus élevée indique une priorité plus grande.

Non

3

serverlessComputingRequiredCores

Le nombre de cœurs demandés pour Serverless Computing. Définissez ce paramètre sur 0 pour laisser le moteur décider automatiquement.

Non

N/A (non défini)

Paramètres spécifiques au mode FIXED_COPY

Paramètre

Description

Obligatoire

Valeur par défaut

isBinaryFormat

Spécifie s'il faut utiliser le format binaire pour le transfert de données. Si ce paramètre est défini sur true, le format binaire est utilisé, ce qui offre une efficacité de transfert plus élevée. Si ce paramètre est défini sur false, le format texte (CSV) est utilisé.

Non

true

checkRecordBeforePut

Spécifie s'il faut valider les enregistrements avant l'écriture, y compris les vérifications de type et de longueur. Si ce paramètre est activé, les données incorrectes peuvent être détectées à l'avance côté client.

Non

true

maxCellBufferSize

La taille maximale du tampon pour une seule ligne de données, en octets. Assurez-vous que le tampon peut contenir une ligne complète. Sinon, l'opération d'écriture échoue.

Non

10485760 (10 Mo)

Paramètres spécifiques au mode STAGE

Paramètre

Description

Obligatoire

Valeur par défaut

stageTTL

La durée de vie (TTL) du stage interne, en secondes. Un stage est automatiquement nettoyé après cette période.

Non

86400 (1 jour)

stageFileSizeLimit

La taille maximale d'un fichier de stage unique, en octets. Un nouveau fichier est automatiquement créé lorsque cette limite est dépassée.

Non

67108864 (64 Mo)

stageMaxBatchSize

Le nombre maximal de lignes dans un lot Arrow pour l'écriture d'enregistrements. Un RecordBatch Arrow est écrit chaque fois que le nombre spécifié de lignes est accumulé.

Non

8192

stageCompress

Spécifie s'il faut activer la compression Arrow LZ4. Si ce paramètre est activé, l'espace de stockage du stage et le volume de transfert réseau sont considérablement réduits. Cette fonctionnalité nécessite Hologres >= 4.2.8. Si l'exigence de version n'est pas satisfaite, la compression est automatiquement désactivée.

Non

true

Paramètres avancés

Paramètre

Description

Obligatoire

Valeur par défaut

useArrow

Spécifie s'il faut utiliser le chemin d'écriture colonnaire Arrow. Si ce paramètre est défini sur true et que la version Hologres est >= 4.1.0, le mode d'écriture STAGE est automatiquement activé. Hologres Writer peut recevoir des données au format Arrow (ArrowTabularRecord) produites par n'importe quel lecteur en amont, et peut également recevoir des enregistrements standard basés sur des lignes, qui sont automatiquement convertis au format Arrow pour l'écriture dans le stage. Pour plus d'informations, consultez Écriture colonnaire Arrow.

Non

false

default.enable

Spécifie s'il faut remplir automatiquement les valeurs par défaut pour les colonnes définies comme NOT NULL mais sans valeurs spécifiées.

Non

true

enableWriteBitTypeWithString

Spécifie s'il faut autoriser l'écriture des données BIT sous forme de chaînes.

Non

false

holoClient

Éléments de configuration avancés pour Holo Client au format Map. Vous pouvez définir n'importe quel paramètre de HoloConfig sous-jacent. Exemple : {"writeBatchSize": 512}.

Non

Aucun