El origen de datos de Hologres proporciona canales bidireccionales de lectura y escritura para Hologres. En este tema se describen las capacidades de sincronización de datos de Hologres que DataWorks admite.
Limitaciones
El origen de datos de Hologres solo admite la ejecución de tareas de sincronización en un serverless resource group.
Lectura y escritura por lotes
Hologres Writer no admite escribir datos en tablas externas de Hologres.
-
Lógica para obtener el endpoint de Hologres y establecer la conectividad del origen de datos:
Para las instancias de Hologres en la región actual, la prioridad de los endpoints es: any Tunnel > Single Tunnel > Public (internet).
Para las instancias de Hologres en otras regiones, la prioridad de los endpoints es: Public (internet) > Single Tunnel.
Lectura en tiempo real de una sola tabla
La versión de Hologres debe ser 2.1 o posterior.
No se admite la sincronización incremental de tablas particionadas de Hologres.
No se admite la sincronización de mensajes de cambio DDL en tablas de Hologres.
-
La sincronización incremental de Hologres es compatible con a continuación tipos de datos:
INTEGER, BIGINT, TEXT, CHAR(n), VARCHAR(n), REAL, JSON, SERIAL, OID, INT4[], INT8[], FLOAT8[], BOOLEAN[], TEXT[].
Para la sincronización en tiempo real de una sola tabla desde Hologres, habilite Hologres Binlog en la tabla de origen de Hologres. Para obtener más información, consulte Subscribe to Hologres Binlog.
Escritura en tiempo real de bases de datos completas
Las tareas de sincronización de datos en tiempo real no admiten la sincronización de tablas sin claves primarias.
Al sincronizar datos en tiempo real desde una base de datos completa de MySQL hacia Hologres, los datos solo se pueden escribir en tablas secundarias de tablas particionadas. No se admite la escritura en la tabla principal de una tabla particionada.
Tipos de datos compatibles
|
Tipo de dato |
Lectura por lotes (Hologres Reader) |
Escritura por lotes (Hologres Writer) |
Escritura en tiempo real |
|
UUID |
No compatible |
No compatible |
No compatible |
|
CHAR |
Compatible |
Compatible |
Compatible |
|
NCHAR |
Compatible |
Compatible |
Compatible |
|
VARCHAR |
Compatible |
Compatible |
Compatible |
|
LONGVARCHAR |
Compatible |
Compatible |
Compatible |
|
NVARCHAR |
Compatible |
Compatible |
Compatible |
|
LONGNVARCHAR |
Compatible |
Compatible |
Compatible |
|
CLOB |
Compatible |
Compatible |
Compatible |
|
NCLOB |
Compatible |
Compatible |
Compatible |
|
SMALLINT |
Compatible |
Compatible |
Compatible |
|
TINYINT |
Compatible |
Compatible |
Compatible |
|
INTEGER |
Compatible |
Compatible |
Compatible |
|
BIGINT |
Compatible |
Compatible |
Compatible |
|
NUMERIC |
Compatible |
Compatible |
Compatible |
|
DECIMAL |
Compatible |
Compatible |
Compatible |
|
FLOAT |
Compatible |
Compatible |
Compatible |
|
REAL |
Compatible |
Compatible |
Compatible |
|
DOUBLE |
Compatible |
Compatible |
Compatible |
|
TIME |
Compatible |
Compatible |
Compatible |
|
DATE |
Compatible |
Compatible |
Compatible |
|
TIMESTAMP |
Compatible |
Compatible |
Compatible |
|
BINARY |
Compatible |
Compatible |
Compatible |
|
VARBINARY |
Compatible |
Compatible |
Compatible |
|
BLOB |
Compatible |
Compatible |
Compatible |
|
LONGVARBINARY |
Compatible |
Compatible |
Compatible |
|
BOOLEAN |
Compatible |
Compatible |
Compatible |
|
BIT |
Compatible |
Compatible |
Compatible |
|
JSON |
Compatible |
Compatible |
Compatible |
|
JSONB |
Compatible |
Compatible |
Compatible |
Funcionamiento
Lectura por lotes
Hologres Reader admite dos modos de lectura:
Modo JDBC (predeterminado)
Lee datos de las tablas de Hologres mediante PSQL. Se inician varias tareas simultáneas según el recuento de fragmentos de la tabla. Cada fragmento corresponde a una tarea Select simultánea:
-
Al crear una tabla en Hologres, configure el recuento de fragmentos de la tabla. Para ello, ejecute
CALL set_table_property('table_name', 'shard_count', 'xx')dentro de la misma transacciónCREATE TABLE.De forma predeterminada, la base de datos utiliza el recuento de fragmentos predeterminado, el cual depende de la configuración de la instancia de Hologres.
La instrucción Select filtra los datos por fragmento mediante la columna integrada hg_shard_id de la tabla.
Modo Arrow (useArrow=true)
Lee datos mediante el protocolo COPY OUT Arrow de Hologres. Este modo admite transferencias comprimidas con LZ4 y ofrece un mejor rendimiento:
Requiere la versión de Hologres >= 4.0.18.
Las tareas simultáneas también se dividen según el recuento de fragmentos.
No admite columnas de función ni columnas constantes. Solo admite columnas físicas de la tabla.
La transferencia comprimida se habilita automáticamente cuando se cumple el requisito de versión.
Escritura por lotes
Hologres Writer obtiene los datos de protocolo generados por el Reader a través del framework de sincronización de datos. El canal y la estrategia de resolución de conflictos que se utilizan para escribir los datos se determinan mediante las configuraciones writeMode y conflictMode.
Modo de escritura (writeMode)
|
Modo de escritura |
Método |
Escenario aplicable |
Requisito de versión |
|
INSERT |
Utiliza Holo Client para la escritura por lotes (INSERT ON CONFLICT). |
Escenarios en tiempo real (incluida la retracción de datos) y escenarios generales de escritura. |
Todas las versiones |
|
FIXED_COPY |
Utiliza Fixed Copy de Holo Client para escrituras de streaming. |
Escenarios en tiempo real (sin retracción de datos). También se puede usar en escenarios de importación por lotes. |
Hologres >= 1.1 |
|
STAGE |
Primero escribe los datos en Internal Stage de Hologres (formato Arrow) y luego los importa desde el stage hacia la tabla de destino. |
Modo recomendado para la sincronización por lotes. Ofrece el mejor rendimiento en importaciones a gran escala. |
Hologres >= 4.1.0 |
|
COPY |
Utiliza JDBC COPY FROM STDIN para escribir datos CSV de texto. |
Escenarios de importación por lotes compatibles con versiones anteriores. |
Todas las versiones |
Recomendaciones de escenarios
Modo de manejo de conflictos (conflictMode)
Configure conflictMode para especificar cómo se procesan los datos recién importados cuando ocurre un conflicto de clave primaria con los datos existentes:
conflictMode solo aplica a las tablas que tienen claves primarias. Para obtener más información sobre el mecanismo de escritura y el rendimiento, consulte Write data to Hologres.
Cuando conflictMode se establece en Replace (full row update), los datos nuevos sobrescriben los antiguos. Se sobrescriben todas las columnas de la fila. Las columnas que no están incluidas en el mapeo de columnas se establecen forzosamente en NULL.
Cuando conflictMode se establece en Update, los datos nuevos sobrescriben los antiguos. Solo se sobrescriben las columnas incluidas en el mapeo de columnas.
Cuando conflictMode se establece en Ignore, los datos nuevos se ignoran.
Agregar un origen de datos
Antes de desarrollar una tarea de sincronización en DataWorks, agregue el origen de datos necesario a DataWorks siguiendo las instrucciones de Data source configuration. Consulte las descripciones de parámetros en la consola de DataWorks para comprender el significado de cada parámetro al agregar un origen de datos.
Desarrollar una tarea de sincronización de datos
Sincronización por lotes de una sola tabla
Orígenes de datos compatibles: todos los tipos de orígenes de datos que admite el módulo Data Integration.
Guía de configuración: Configure a batch synchronization task in the codeless UI y Configure a batch synchronization task by using the code editor. Para consultar los parámetros completos y los ejemplos de script disponibles en el editor de código, consulte Appendix: Complete parameters and script demos a continuación.
Sincronización en tiempo real de una sola tabla
Orígenes de datos compatibles: DataHub, Hologres, Kafka y LogHub
Guía de configuración: Configure a real-time synchronization task.
Sincronización por lotes de bases de datos completas
Orígenes de datos compatibles: AnalyticDB for MySQL 3.0, ClickHouse, Doris, Hologres, Oracle, PolarDB y SQL Server
Guía de configuración: Configure a full-database batch synchronization task
Sincronización en tiempo real de bases de datos completas
Orígenes de datos compatibles: AnalyticDB for OceanBase, MongoDB, MySQL, Oracle, PolarDB, PolarDB-X 2.0 y PostgreSQL
Guía de configuración: Configure a real-time synchronization task to synchronize data of a single table
Sincronización serverless en tiempo real de bases de datos completas
Origen de datos compatible: MySQL
Guía de configuración: Configure a Serverless full-database real-time synchronization task
Preguntas frecuentes sobre las tareas de sincronización en tiempo real: FAQ about real-time synchronization .
Apéndice: ejemplos de script y descripción de parámetros
Configurar una tarea de sincronización por lotes mediante el editor de código
Si desea configurar una tarea de sincronización por lotes mediante el editor de código, defina los parámetros correspondientes en el script según los requisitos unificados de formato de scripts. Para obtener más información, consulte Script mode configuration. A continuación se describen los parámetros que debe configurar para los orígenes de datos al utilizar el editor de código.
Ejemplos de script de Reader
-
Configurar una tabla no particionada
-
En el siguiente ejemplo se muestra cómo configurar la lectura de datos desde una tabla no particionada de Hologres hacia la memoria.
{ "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" } ] } } -
La instrucción DDL de la tabla de Hologres es la siguiente.
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;
-
-
Configurar una tabla particionada
-
Configure la lectura de datos desde una tabla secundaria de una tabla particionada de Hologres hacia la memoria.
NotaPreste atención a la configuración 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" } ] } } -
La instrucción DDL de la tabla de Hologres es la siguiente.
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')
-
Parámetros del script de Reader
Parámetro | Descripción | Obligatorio | Valor predeterminado |
database | El nombre de una base de datos en la instancia de Hologres. | Sí | N/D |
table | El nombre de la tabla de Hologres. Se admite el formato | Condicionalmente obligatorio | N/D |
querySql | Una instrucción SQL de consulta personalizada. Si configura este parámetro, se ignoran los parámetros table y column. Es mutuamente excluyente con | Condicionalmente obligatorio | N/D |
column | Las columnas que se van a leer. | Sí | N/D |
partition | Para tablas particionadas, especifica la columna de partición y su valor con el formato Importante
| No | Vacío, lo que indica una tabla no particionada. |
where | La condición de filtro, que se anexa a la cláusula WHERE de la instrucción SELECT. Este parámetro solo surte efecto en el modo de tabla. | No | Vacío |
useArrow | Especifica si se utiliza el formato columnar Arrow para la sincronización de datos de alto rendimiento. Cuando se habilita, Reader usa el protocolo COPY OUT Arrow para leer los datos y los pasa al Writer descendente en formato columnar, lo que mejora el rendimiento. Requiere Hologres 4.0.18 o posterior. Si la versión no cumple este requisito, el sistema vuelve automáticamente al modo JDBC. El modo Arrow no admite columnas de función ni columnas constantes. Actualmente, este modo admite la sincronización por lotes de bases de datos completas y de tablas individuales cuando tanto el origen como el destino son MaxCompute, Hologres o Hive/OSS/HDFS (Parquet/ORC). Para obtener más información, consulte Use Arrow format for high-performance data synchronization. | No | false |
compress | Especifica si se habilita la compresión LZ4 para la transferencia de datos en modo Arrow. Este parámetro solo surte efecto cuando | No | true (se establece automáticamente cuando la versión cumple el requisito) |
fetchSize | El número de filas que se extraen de la base de datos en cada solicitud cuando se usa el modo JDBC. | No | 1000 |
jdbcReadTimeout | El periodo de tiempo de espera de lectura de JDBC. Unidad: segundos. | No | 60 |
enableServerlessComputing | Especifica si se habilita Serverless Computing de Hologres para acelerar las consultas. Nota: este parámetro controla la capacidad Serverless Computing de la instancia de Hologres, la cual es distinta de un resource group serverless de DataWorks. | No | false |
serverlessComputingQueryPriority | La prioridad de las consultas para Serverless Computing de Hologres. Valores válidos: de 1 a 10. Un valor mayor indica una prioridad más alta. Este parámetro solo surte efecto cuando | No | 3 |
serverlessComputingRequiredCores | El número de núcleos solicitados para Serverless Computing de Hologres. Este parámetro solo surte efecto cuando | No | 5 |
Ejemplo de script de Writer
-
Configurar una tabla no particionada
-
Configure los datos generados desde MySQL para importarlos a una tabla normal de Hologres. En el siguiente ejemplo se muestra la configuración para importar datos en modo 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" } ] } } -
La instrucción DDL de la tabla de Hologres es la siguiente.
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;
-
-
Configurar una tabla particionada
NotaHologres solo admite particiones LIST. Únicamente se permite una sola columna de partición, la cual debe ser de tipo INT4 o TEXT.
Asegúrese de que este parámetro coincida con la configuración de particiones definida en el DDL de la tabla.
-
Configure la sincronización de los datos generados desde MySQL hacia las tablas secundarias de una tabla particionada de 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" } ] } } -
La instrucción DDL de la tabla de Hologres es la siguiente.
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;
Parámetros del script Writer
Parámetros básicos
Parámetro | Descripción | Obligatorio | Valor predeterminado |
database | El nombre de la base de datos en la instancia de Hologres. | Sí | N/A |
table | El nombre de la tabla de Hologres. Se admiten nombres de esquema dentro del nombre de la tabla, como | Sí | N/A |
writeMode | El modo de escritura. Se admiten cuatro modos: | Sí | N/A |
conflictMode | El modo de resolución de conflictos. Valores válidos: | Sí | N/A |
column | Las columnas de datos de la tabla de destino. Las columnas deben incluir el conjunto de claves primarias de la tabla de destino (excepto las claves primarias autoincrementales de tipo serial y las columnas generadas). | Sí | N/A |
partition | En las tablas particionadas, este parámetro especifica la columna de partición y su valor correspondiente con el formato Nota
| No | Empty, lo que indica una tabla sin particiones |
reShuffleByDistributionKey | En Hologres, las importaciones por lotes a tablas con clave primaria provocan bloqueos de tabla de forma predeterminada. Esto limita la capacidad de escritura simultánea desde varias conexiones. Al habilitar la función reShuffle, las distintas tareas de los escenarios de sincronización por lotes escriben datos en shards específicos de Holo según las claves de distribución. De esta manera se habilitan las escrituras por lotes simultáneas y mejora significativamente el rendimiento. En comparación con las escrituras tradicionales en tiempo real mediante JDBC, esta función reduce la carga en el servidor de Holo y aumenta aún más la eficiencia de escritura. Importante Esta función solo está disponible en grupos de recursos serverless. | No | false |
truncate | Indica si se borra la tabla de destino antes de escribir los datos en la tabla de Hologres.
| No | false |
partitionFormat | La regla de formato para los valores de partición dinámica. Para datos de origen de tipo Date, especifique un formato como | No | N/A |
preSql | La lista de instrucciones SQL que se ejecutan antes de escribir los datos. No se admite la ejecución en la tabla primaria de una tabla particionada. | No | N/A |
postSql | La lista de instrucciones SQL que se ejecutan después de escribir los datos. | No | N/A |
Parámetros de conexión y rendimiento
Parámetro | Descripción | Obligatorio | Valor predeterminado |
maxConnectionCount | El número de conexiones simultáneas para escritura. Este valor se ajusta automáticamente según la concurrencia real de la tarea ( | No | 3 |
maxRetryCount | El número de reintentos tras un fallo. | No | 10 |
jdbcReadTimeout | El tiempo de espera de la conexión JDBC. Unidad: segundos. | No | 120 |
maxCommitSize | El número máximo de bytes por confirmación (commit), expresado en bytes. | No | 2097152 (2 MB) |
maxCommitCount | El número máximo de registros por confirmación (commit). | No | 256 |
reShuffleByDistributionKey | En Hologres, las importaciones por lotes a tablas con clave primaria provocan bloqueos de tabla de forma predeterminada. Esto limita la capacidad de escritura simultánea entre varias conexiones. Al habilitar la función reShuffle, las distintas tareas de los escenarios de sincronización por lotes escriben datos en shards específicos de Holo según la clave de distribución. De esta manera se habilitan las escrituras por lotes simultáneas y mejora significativamente el rendimiento. En comparación con las escrituras tradicionales en tiempo real mediante JDBC, habilitar esta función reduce la carga en el servidor de Holo y aumenta aún más la eficiencia de escritura. Importante Esta función solo está disponible en grupos de recursos serverless. | No | false |
removeU0000InTextColumnValue | Indica si se eliminan los caracteres | No | true |
Parámetros de Hologres Serverless Computing
A continuación se describen los parámetros que controlan la capacidad de Serverless Computing de una instancia de Hologres. Estos parámetros aceleran las lecturas de consultas para Reader y las operaciones INSERT FROM Stage para Writer en modo STAGE.
Nota : Hologres Serverless Computing y DataWorks serverless resource groups son conceptos distintos. El primero es la capacidad de cómputo elástico dentro de una instancia de Hologres, mientras que el segundo hace referencia a los recursos de programación que utiliza DataWorks para ejecutar tareas de sincronización.
Notas de uso : Reader admite todos los modos. Writer únicamente es compatible con el modo STAGE.
|
Parámetro |
Descripción |
Obligatorio |
Valor predeterminado |
|
enableServerlessComputing |
Indica si se habilita la aceleración de Hologres Serverless Computing. |
No |
false |
|
serverlessComputingQueryPriority |
La prioridad de la consulta para Serverless Computing. Valores válidos: de 1 a 10. Un valor mayor indica una prioridad más alta. |
No |
3 |
|
serverlessComputingRequiredCores |
El número de núcleos solicitados para Serverless Computing. Establezca este parámetro en 0 para que el motor lo decida automáticamente. |
No |
N/A (no establecido) |
Parámetros específicos del modo FIXED_COPY
|
Parámetro |
Descripción |
Obligatorio |
Valor predeterminado |
|
isBinaryFormat |
Indica si se usa el formato binario para la transferencia de datos. Si se establece en true, se utiliza el formato binario, que ofrece una mayor eficiencia de transferencia. Si se establece en false, se emplea el formato de texto (CSV). |
No |
true |
|
checkRecordBeforePut |
Indica si se validan los registros antes de escribirlos, lo que incluye comprobaciones de tipo y de longitud. Si se habilita este parámetro, los datos incorrectos se detectan previamente en el lado del cliente. |
No |
true |
|
maxCellBufferSize |
El tamaño máximo del búfer para una sola fila de datos, expresado en bytes. Asegúrese de que el búfer pueda contener una fila completa; de lo contrario, la operación de escritura fallará. |
No |
10485760 (10 MB) |
Parámetros específicos del modo STAGE
|
Parámetro |
Descripción |
Obligatorio |
Valor predeterminado |
|
stageTTL |
El tiempo de vida (TTL) del stage interno, en segundos. Transcurrido este periodo, el stage se limpia automáticamente. |
No |
86400 (1 día) |
|
stageFileSizeLimit |
El tamaño máximo de un archivo de stage individual, en bytes. Al superar este límite, se crea automáticamente un nuevo archivo. |
No |
67108864 (64 MB) |
|
stageMaxBatchSize |
El número máximo de filas en un lote de Arrow para la escritura de registros. Cada vez que se acumula la cantidad de filas indicada, se escribe un Arrow RecordBatch. |
No |
8192 |
|
stageCompress |
Indica si se habilita la compresión LZ4 de Arrow. Si se habilita, se reducen considerablemente el espacio de almacenamiento del stage y el volumen de transferencia de red. Esta función requiere Hologres >= 4.2.8. Si no se cumple este requisito de versión, la compresión se deshabilita automáticamente. |
No |
true |
Parámetros avanzados
|
Parámetro |
Descripción |
Obligatorio |
Valor predeterminado |
|
useArrow |
Indica si se usa la ruta de escritura columnar de Arrow. Si se establece en true y la versión de Hologres es >= 4.1.0, se habilita automáticamente el modo de escritura STAGE. Hologres Writer recibe datos con formato Arrow (ArrowTabularRecord) generados por cualquier lector ascendente. También acepta registros estándar basados en filas, los cuales se convierten automáticamente al formato Arrow para escribirlos en el stage. Para obtener más información, consulte Arrow columnar write. |
No |
false |
|
default.enable |
Indica si se completan automáticamente los valores predeterminados de las columnas definidas como NOT NULL que no tienen un valor especificado. |
No |
true |
|
enableWriteBitTypeWithString |
Indica si se permite escribir datos BIT como cadenas de texto. |
No |
false |
|
holoClient |
Elementos de configuración avanzada para Holo Client en formato Map. Puede establecer cualquier parámetro del objeto HoloConfig subyacente. Ejemplo: |
No |
Ninguna |