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 transactionCREATE 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 :
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
Sources de données prises en charge : Tous les types de sources de données pris en charge par le module Data Integration.
Guide de configuration : Configurer une tâche de synchronisation par lots dans l'interface sans code et Configurer une tâche de synchronisation par lots à l'aide de l'éditeur de code. Pour les paramètres complets et les démonstrations de scripts disponibles dans l'éditeur de code, consultez Annexe : Paramètres complets et démonstrations de scripts ci-dessous.
Synchronisation en temps réel d'une seule table
Sources de données prises en charge : DataHub, Hologres, Kafka et LogHub
Guide de configuration : Configurer une tâche de synchronisation en temps réel.
Synchronisation par lots sur toute la base de données
Sources de données prises en charge : AnalyticDB for MySQL 3.0, ClickHouse, Doris, Hologres, Oracle, PolarDB et SQL Server
Guide de configuration : Configurer une tâche de synchronisation par lots sur toute la base de données
Synchronisation en temps réel sur toute la base de données
Sources de données prises en charge : AnalyticDB for OceanBase, MongoDB, MySQL, Oracle, PolarDB, PolarDB-X 2.0 et PostgreSQL
Guide de configuration : Configurer une tâche de synchronisation en temps réel pour synchroniser les données d'une seule table
Temps réel sur toute la base de données en mode serverless
Source de données prise en charge : MySQL
Guide de configuration : Configurer une tâche de synchronisation en 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.
RemarqueFaites 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 | 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 | Conditionnellement obligatoire | N/A |
column | Les colonnes à lire. | Oui | N/A |
partition | Pour les tables partitionnées, spécifie la colonne de partition et sa valeur au format Important
| 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 | 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 | Non | 3 |
serverlessComputingRequiredCores | Le nombre de cœurs demandés pour Serverless Computing Hologres. Ce paramètre prend effet uniquement lorsque | 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
RemarqueHologres 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 | Oui | N/A |
writeMode | Le mode d'écriture. Quatre modes sont pris en charge : | Oui | N/A |
conflictMode | Le mode de résolution des conflits. Valeurs valides : | 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). | Oui | N/A |
partition | Pour les tables partitionnées, ce paramètre spécifie la colonne de partition et sa valeur correspondante au format Remarque
| 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.
| 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 | 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 ( | 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 | 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 : |
Non |
Aucun |