Todos los productos
Search
Centro de documentos

DataWorks:Origen de datos de Hologres

Última actualización: Sep 25, 2026

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ón CREATE 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:

Importante

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

Sincronización en tiempo real de una sola tabla

Sincronización por lotes de bases de datos completas

Sincronización en tiempo real de bases de datos completas

Sincronización serverless en tiempo real de bases de datos completas

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.

      Nota

      Preste 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 schema_name.table_name. Si la tabla está particionada, especifique el nombre de la tabla principal. Este parámetro es mutuamente excluyente con querySql. Debe configurar como mínimo uno de ellos.

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 table. Debe configurar como mínimo uno de ellos.

Condicionalmente obligatorio

N/D

column

Las columnas que se van a leer. ["*"] indica todas las columnas. También se admiten columnas de expresión de función (solo en modo JDBC).

Sí

N/D

partition

Para tablas particionadas, especifica la columna de partición y su valor con el formato column=value.

Importante
  • Hologres 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.

  • Asegúrese de que las tablas secundarias correspondientes ya estén creadas y de que los datos se hayan importado.

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 useArrow=true.

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 enableServerlessComputing=true.

No

3

serverlessComputingRequiredCores

El número de núcleos solicitados para Serverless Computing de Hologres. Este parámetro solo surte efecto cuando enableServerlessComputing=true.

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

    Nota
    • Hologres 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 schema_name.table_name.

Sí

N/A

writeMode

El modo de escritura. Se admiten cuatro modos: INSERT, COPY, FIXED_COPY (requiere Hologres >= 1.1) y STAGE (requiere Hologres >= 4.1.0). Para obtener más información, consulte la descripción del modo de escritura en Implementation. Se recomienda usar STAGE o FIXED_COPY para la sincronización por lotes e INSERT para escenarios en tiempo real (incluida la retracción de datos).

Sí

N/A

conflictMode

El modo de resolución de conflictos. Valores válidos: Replace (actualización de fila completa), Update (actualización parcial de columnas) y Ignore (ignorar los datos nuevos). Para obtener más información, consulte Implementation. Este parámetro solo surte efecto en tablas con claves primarias.

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). ["*"] indica todas las columnas.

Sí

N/A

partition

En las tablas particionadas, este parámetro especifica la columna de partición y su valor correspondiente con el formato column=value. Una vez configurado, Writer crea automáticamente una tabla secundaria (si no existe) y escribe los datos en dicha tabla.

Nota
  • Hologres solo admite particiones LIST. Únicamente se permite una sola columna de partición, la cual debe ser de tipo INT4, BIGINT, DATE o TEXT.

  • Asegúrese de que este parámetro coincida con la configuración de particiones definida en el DDL de la tabla.

  • Los modos STAGE y FIXED_COPY no permiten escribir datos directamente en una tabla primaria particionada. Debe especificar el parámetro partition.

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.

  • true: borra la tabla de destino.

    Nota
    • Actualmente, solo se pueden truncar las tablas sin particiones y las tablas con particiones estáticas. Las tablas con particiones dinámicas no admiten esta operación. Si utiliza una tabla con particiones dinámicas y establece este parámetro en true, la tarea de sincronización finaliza con un error.

    • Si utiliza una tabla con particiones estáticas y establece este parámetro en true, solo se truncan los datos de la tabla secundaria de la partición. Los datos de la tabla primaria permanecen intactos.

  • false: no borra la tabla de destino.

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 yyyyMMdd. Para datos de origen de tipo cadena, especifique una regla de subcadena como 2:5, que equivale a substring(2, 2+5).

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 (maxConnectionCount / actualConcurrent). Se recomienda establecer este parámetro entre 1 y 3 veces la concurrencia 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 de los valores de las columnas de texto. PostgreSQL no admite almacenar este carácter en el tipo de dato TEXT.

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: {"writeBatchSize": 512}.

No

Ninguna