Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados do Hologres

Última atualização: Sep 25, 2026

A fonte (source) de dados do Hologres fornece canais bidirecionais de leitura e gravação para o Hologres. Este tópico descreve os recursos de sincronização de dados do Hologres compatíveis com o DataWorks.

Limitações

A fonte de dados do Hologres oferece suporte para que você execute tarefas de sincronização apenas em um serverless resource group.

Leitura e gravação em lote

  • O Hologres Writer não oferece suporte à gravação de dados em tabelas externas do Hologres.

  • Lógica de obtenção do endpoint do Hologres para conectividade da fonte de dados:

    • Para instâncias do Hologres na região atual, a prioridade do endpoint é: any Tunnel > Single Tunnel > Public (internet).

    • Para instâncias do Hologres em outras regiões, a prioridade do endpoint é: Public (internet) > Single Tunnel.

Leitura em tempo real de tabela única

  • A versão do Hologres deve ser a 2.1 ou superior.

  • O Hologres não oferece suporte à sincronização incremental de tabelas particionadas.

  • O Hologres não oferece suporte à sincronização de mensagens de alteração de DDL em suas tabelas.

  • A sincronização incremental do Hologres aceita os seguintes tipos de dados:

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

  • Para a sincronização em tempo real de tabela única a partir do Hologres, ative o Binlog do Hologres na tabela de origem. Para obter mais informações, consulte Subscribe to Hologres Binlog.

Gravação em tempo real de banco de dados completo

  • As tarefas de sincronização de dados em tempo real não oferecem suporte à sincronização de tabelas sem chaves primárias.

  • Ao sincronizar dados de um banco de dados completo do MySQL para o Hologres em tempo real, grave os dados apenas em tabelas filhas de tabelas particionadas. O sistema não oferece suporte à gravação na tabela pai de uma tabela particionada.

Tipos de dados compatíveis

Tipo de dado

Leitura em lote (Hologres Reader)

Gravação em lote (Hologres Writer)

Gravação em tempo real

UUID

Sem suporte

Sem suporte

Sem suporte

CHAR

Compatível

Compatível

Compatível

NCHAR

Compatível

Compatível

Compatível

VARCHAR

Compatível

Compatível

Compatível

LONGVARCHAR

Compatível

Compatível

Compatível

NVARCHAR

Compatível

Compatível

Compatível

LONGNVARCHAR

Compatível

Compatível

Compatível

CLOB

Compatível

Compatível

Compatível

NCLOB

Compatível

Compatível

Compatível

SMALLINT

Compatível

Compatível

Compatível

TINYINT

Compatível

Compatível

Compatível

INTEGER

Compatível

Compatível

Compatível

BIGINT

Compatível

Compatível

Compatível

NUMERIC

Compatível

Compatível

Compatível

DECIMAL

Compatível

Compatível

Compatível

FLOAT

Compatível

Compatível

Compatível

REAL

Compatível

Compatível

Compatível

DOUBLE

Compatível

Compatível

Compatível

TIME

Compatível

Compatível

Compatível

DATE

Compatível

Compatível

Compatível

TIMESTAMP

Compatível

Compatível

Compatível

BINARY

Compatível

Compatível

Compatível

VARBINARY

Compatível

Compatível

Compatível

BLOB

Compatível

Compatível

Compatível

LONGVARBINARY

Compatível

Compatível

Compatível

BOOLEAN

Compatível

Compatível

Compatível

BIT

Compatível

Compatível

Compatível

JSON

Compatível

Compatível

Compatível

JSONB

Compatível

Compatível

Compatível

Como funciona

Leitura em lote

O Hologres Reader aceita dois modos de leitura:

Modo JDBC (padrão)

Lê dados de tabelas do Hologres por meio do PSQL. O sistema inicia várias tarefas simultâneas com base na contagem de shards da tabela. Cada shard corresponde a uma tarefa Select simultânea:

  • É necessário que você crie uma tabela no Hologres e configure a contagem de shards da tabela executando CALL set_table_property('table_name', 'shard_count', 'xx') dentro da mesma transação CREATE TABLE.

    Por padrão, o banco de dados usa a contagem de shards padrão, que depende da configuração da instância do Hologres.

  • A instrução Select filtra dados por shard usando a coluna interna hg_shard_id da tabela.

Modo Arrow (useArrow=true)

Lê dados por meio do protocolo Hologres COPY OUT Arrow. Este modo aceita transferência compactada LZ4 e oferece maior desempenho:

  • atualize para a versão do Hologres >= 4.0.18.

  • O sistema também divide as tarefas simultâneas com base na contagem de shards.

  • O modo não aceita colunas de função nem colunas constantes. Apenas colunas físicas na tabela são compatíveis.

  • A transferência compactada é ativada automaticamente quando a versão atende ao requisito.

Gravação em lote

O Hologres Writer obtém os dados de protocolo gerados pelo Reader por meio da estrutura de sincronização de dados. As configurações writeMode e conflictMode determinam o canal e a estratégia de resolução de conflitos usados para gravar os dados.

Modo de gravação (writeMode)

Modo de gravação

Método

Cenário aplicável

Requisito de versão

INSERT

Usa o Holo Client para gravação em lote (INSERT ON CONFLICT).

Cenários em tempo real (incluindo retração de dados) e cenários gerais de gravação.

Todas as versões

FIXED_COPY

Usa o Holo Client Fixed Copy para gravações de streaming.

Cenários em tempo real (excluindo retração de dados). Também aceita cenários de importação em lote.

Hologres >= 1.1

STAGE

Primeiro grava dados no Hologres Internal Stage (formato Arrow) e, em seguida, importa dados do stage para a tabela de destino.

Modo recomendado para sincronização em lote. Melhor desempenho para importações em grande escala.

Hologres >= 4.1.0

COPY

Usa JDBC COPY FROM STDIN para gravar dados CSV de texto.

Cenários de importação em lote compatíveis com versões anteriores.

Todas as versões

Recomendações de cenário

Modo de tratamento de conflitos (conflictMode)

Configure o conflictMode para especificar como o sistema trata os dados recém-importados ao ocorrer um conflito de chave primária com os dados existentes:

Importante

O conflictMode se aplica apenas a tabelas com chaves primárias. Para obter mais informações sobre o mecanismo de gravação e o desempenho, consulte Write data to Hologres.

  • Quando você define o conflictMode como Replace (full row update), os novos dados substituem os antigos. O sistema substitui todas as colunas na linha e força as colunas não incluídas no mapeamento de colunas como NULL.

  • Quando você define o conflictMode como Update, os novos dados substituem os antigos. O sistema substitui apenas as colunas incluídas no mapeamento.

  • Quando você define o conflictMode como Ignore, o sistema ignora os novos dados.

Adicionar uma fonte de dados

Antes de desenvolver uma tarefa de sincronização no DataWorks, selecione e adicione a fonte de dados necessária seguindo as instruções em Data source configuration. Visualize as descrições dos parâmetros no console do DataWorks para entender o significado de cada parâmetro ao adicionar uma fonte de dados.

Desenvolver uma tarefa de sincronização de dados

Sincronização em lote de tabela única

Sincronização em tempo real de tabela única

Sincronização em lote de banco de dados completo

Sincronização em tempo real de banco de dados completo

Tempo real de banco de dados completo Serverless

Perguntas frequentes sobre tarefas de sincronização em tempo real: FAQ about real-time synchronization .

Apêndice: Exemplos de script e descrição de parâmetros

Configurar uma tarefa de sincronização em lote usando o editor de código

Para configurar uma tarefa de sincronização em lote no editor de código, configure e defina os parâmetros relacionados no script de acordo com os requisitos unificados de formato. Para obter mais informações, consulte Script mode configuration. As seções a seguir descrevem os parâmetros obrigatórios para fontes de dados ao configurar uma tarefa de sincronização em lote no editor de código.

Exemplos de script do Reader

  • Configurar uma tabela não particionada

    • O exemplo a seguir mostra como configurar a leitura de dados de uma tabela não particionada do Hologres para a memória.

      {
          "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"
                  }
              ]
          }
      }
    • A instrução DDL da tabela do Hologres é a seguinte:

      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 uma tabela particionada

    • Configure a leitura de dados de uma tabela filha de uma tabela particionada do Hologres para a memória.

      Nota

      Preste atenção na configuração 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"
            }
          ]
        }
      }
    • A instrução DDL da tabela do Hologres é a seguinte:

      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 de script do Reader

Parâmetro

Descrição

Obrigatório

Valor padrão

database

O nome de um banco de dados na instância do Hologres.

Sim

N/D

table

O nome da tabela do Hologres. O formato schema_name.table_name é compatível. Se a tabela for particionada, especifique o nome da tabela pai. Este parâmetro é mutuamente exclusivo com querySql. Configure pelo menos um deles.

Condicionalmente obrigatório

N/D

querySql

Uma instrução SQL de consulta personalizada. Se este parâmetro for configurado, o sistema ignora os parâmetros table e column. Este parâmetro é mutuamente exclusivo com table. Configure pelo menos um deles.

Condicionalmente obrigatório

N/D

column

As colunas a serem lidas. ["*"] indica todas as colunas. O sistema também aceita colunas de expressão de função (apenas no modo JDBC).

Sim

N/D

partition

Para tabelas particionadas, especifica a coluna de partição e seu valor no formato column=value.

Importante
  • O Hologres aceita apenas partições LIST. Apenas uma única coluna de partição é compatível, e ela deve ser do tipo INT4 ou TEXT.

  • Certifique-se de que este parâmetro corresponda à configuração de partição no DDL da tabela.

  • Certifique-se de que as tabelas filhas correspondentes tenham sido criadas e que os dados tenham sido importados.

Não

Vazio, indicando uma tabela não particionada.

where

A condição de filtro, anexada à cláusula WHERE da instrução SELECT. Este parâmetro tem efeito apenas no modo de tabela.

Não

Vazio

useArrow

Define se o formato colunar Arrow será usado para sincronização de dados de alto desempenho. Quando ativado, o Reader usa o protocolo COPY OUT Arrow para ler dados e os passa para o Writer downstream em formato colunar, garantindo melhor desempenho. Requer o Hologres 4.0.18 ou superior. Se a versão não atender ao requisito, o sistema voltará automaticamente para o modo JDBC. O modo Arrow não aceita colunas de função nem colunas constantes. Atualmente, este modo aceita sincronização em lote de banco de dados completo e de tabela única quando a origem e o destino são MaxCompute, Hologres ou Hive/OSS/HDFS (Parquet/ORC). Para obter mais informações, consulte Use Arrow format for high-performance data synchronization.

Não

false

compress

Define se a compactação LZ4 será ativada para transferência de dados no modo Arrow. Este parâmetro tem efeito apenas quando useArrow=true.

Não

true (definido automaticamente quando a versão atende ao requisito)

fetchSize

O número de linhas recuperadas do banco de dados em cada solicitação no modo JDBC.

Não

1000

jdbcReadTimeout

O tempo limite de leitura do JDBC. Unidade: segundos.

Não

60

enableServerlessComputing

Define se o Serverless Computing do Hologres será ativado para acelerar consultas. Nota: este parâmetro controla o recurso Serverless Computing da instância do Hologres, que difere de um grupo de recursos serverless do DataWorks.

Não

false

serverlessComputingQueryPriority

A prioridade da consulta para o Hologres Serverless Computing. Valores válidos: 1 a 10. Um valor maior indica uma prioridade mais alta. Este parâmetro tem efeito apenas quando enableServerlessComputing=true.

Não

3

serverlessComputingRequiredCores

O número de núcleos solicitados para o Hologres Serverless Computing. Este parâmetro tem efeito apenas quando enableServerlessComputing=true.

Não

5

Exemplos de script do Writer

  • Configurar uma tabela não particionada

    • Configure a importação de dados gerados no MySQL para uma tabela regular do Hologres. O exemplo a seguir mostra a configuração para importar dados no 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"
                  }
              ]
          }
      }
    • A instrução DDL da tabela do Hologres é a seguinte:

      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 uma tabela particionada

    Nota
    • O Hologres aceita apenas partições LIST. Apenas uma única coluna de partição é compatível, e ela deve ser do tipo INT4 ou TEXT.

    • Certifique-se de que este parâmetro corresponda à configuração de partição no DDL da tabela.

    • Configure a sincronização de dados gerados no MySQL para tabelas filhas de uma tabela particionada do 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"
            }
          ]
        }
      }
    • A instrução DDL da tabela do Hologres é a seguinte:

      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 de script do Writer

Parâmetros básicos

Parâmetro

Descrição

Obrigatório

Valor padrão

database

O nome do banco de dados na instância do Hologres.

Sim

N/D

table

O nome da tabela do Hologres. O sistema aceita nomes de schema no nome da tabela, como schema_name.table_name.

Sim

N/D

writeMode

O modo de gravação. Quatro modos são aceitos: INSERT, COPY, FIXED_COPY (requer Hologres >= 1.1) e STAGE (requer Hologres >= 4.1.0). Para obter mais informações, consulte a descrição do modo de gravação em Implementation. Recomendamos o uso de STAGE ou FIXED_COPY para sincronização em lote e INSERT para cenários em tempo real (incluindo retração de dados).

Sim

N/D

conflictMode

O modo de resolução de conflitos. Valores válidos: Replace (atualização de linha completa), Update (atualização de coluna parcial) e Ignore (ignorar novos dados). Para obter mais informações, consulte Implementation. Este parâmetro tem efeito apenas em tabelas com chaves primárias.

Sim

N/D

column

As colunas de dados da tabela de destino. As colunas devem incluir o conjunto de chaves primárias da tabela de destino (exceto chaves primárias de incremento automático serial e colunas geradas). ["*"] indica todas as colunas.

Sim

N/D

partition

Para tabelas particionadas, este parâmetro especifica a coluna de partição e seu valor correspondente no formato column=value. Após configurar este parâmetro, o Writer cria automaticamente uma tabela filha (se não existir) e grava dados nela.

Nota
  • O Hologres aceita apenas partições LIST. Apenas uma única coluna de partição é compatível, e ela deve ser do tipo INT4, BIGINT, DATE ou TEXT.

  • Certifique-se de que este parâmetro corresponda à configuração de partição no DDL da tabela.

  • Os modos STAGE e FIXED_COPY não aceitam a gravação de dados diretamente em uma tabela pai particionada. Especifique o parâmetro partition.

Não

Vazio, que indica uma tabela não particionada

reShuffleByDistributionKey

No Hologres, importações em lote para tabelas com chave primária acionam bloqueios de tabela por padrão, o que limita a capacidade de gravação simultânea de várias conexões. ative o recurso reShuffle para permitir que diferentes tarefas em cenários de sincronização em lote gravem dados em shards Holo específicos com base em chaves de distribuição. Isso possibilita gravações em lote simultâneas e melhora significativamente o desempenho. Em comparação com as gravações em tempo real tradicionais no modo JDBC, este recurso reduz a carga no servidor Holo e aumenta ainda mais a eficiência de gravação.

Importante

Este recurso está disponível apenas em grupos de recursos serverless.

Não

false

truncate

Define se o sistema limpará a tabela de destino antes de gravar dados na tabela do Hologres.

  • true: Limpa a tabela de destino.

    Nota
    • Atualmente, o sistema trunca apenas tabelas não particionadas e tabelas particionadas estáticas. Não é possível truncar tabelas particionadas dinâmicas. Se você usar uma tabela particionada dinâmica e definir este parâmetro como true, a tarefa de sincronização será encerrada com erro.

    • Se você usar uma tabela particionada estática e definir este parâmetro como true, o sistema truncará apenas os dados na tabela filha da partição. Os dados na tabela pai não serão truncados.

  • false: Não limpa a tabela de destino.

Não

false

partitionFormat

A regra de formatação para valores de partição dinâmica. Para dados de origem do tipo Date, especifique um formato como yyyyMMdd. Para dados de origem do tipo string, especifique uma regra de substring como 2:5, que indica substring(2, 2+5).

Não

N/D

preSql

A lista de instruções SQL a serem executadas antes da gravação de dados. O sistema não aceita execução na tabela pai de uma tabela particionada.

Não

N/D

postSql

A lista de instruções SQL a serem executadas após a gravação de dados.

Não

N/D

Parâmetros de conexão e desempenho

Parâmetro

Descrição

Obrigatório

Valor padrão

maxConnectionCount

O número de conexões simultâneas para gravação. Este valor é ajustado automaticamente com base na simultaneidade real da tarefa (maxConnectionCount / actualConcurrent). Recomendamos definir este parâmetro com um valor de 1 a 3 vezes a simultaneidade da tarefa.

Não

3

maxRetryCount

O número de tentativas em caso de falha.

Não

10

jdbcReadTimeout

O tempo limite de conexão JDBC. Unidade: segundos.

Não

120

maxCommitSize

O número máximo de bytes por commit, em bytes.

Não

2097152 (2 MB)

maxCommitCount

O número máximo de registros por commit.

Não

256

reShuffleByDistributionKey

No Hologres, importações em lote para tabelas com chave primária acionam bloqueios de tabela por padrão, o que limita a capacidade de gravação simultânea em várias conexões. Ativar o recurso reShuffle permite que diferentes tarefas gravem dados em shards Holo específicos com base na chave de distribuição em cenários de sincronização em lote. Isso possibilita gravações em lote simultâneas e melhora significativamente o desempenho. Em comparação com as gravações em tempo real tradicionais no modo JDBC, ativar este recurso reduz a carga no servidor Holo e aumenta ainda mais a eficiência de gravação.

Importante

Este recurso está disponível apenas em grupos de recursos serverless.

Não

false

removeU0000InTextColumnValue

Define se o sistema removerá caracteres dos valores das colunas de texto. O PostgreSQL não aceita o armazenamento deste caractere no tipo de dados TEXT.

Não

true

Parâmetros do Hologres Serverless Computing

Os parâmetros a seguir controlam o recurso Serverless Computing de uma instância do Hologres. Eles aceleram as leituras de consulta para o Reader e as operações INSERT FROM Stage para o Writer no modo STAGE.

Nota : O Hologres Serverless Computing e o serverless resource groups do DataWorks são conceitos diferentes. O primeiro é o recurso de computação elástica dentro de uma instância do Hologres, enquanto o segundo refere-se aos recursos de agendamento que o DataWorks usa para executar tarefas de sincronização.
Notas de uso : Todos os modos são aceitos pelo Reader. Apenas o modo STAGE é aceito pelo Writer.

Parâmetro

Descrição

Obrigatório

Valor padrão

enableServerlessComputing

Define se a aceleração do Hologres Serverless Computing será ativada.

Não

false

serverlessComputingQueryPriority

A prioridade da consulta para o Serverless Computing. Valores válidos: 1 a 10. Um valor maior indica uma prioridade mais alta.

Não

3

serverlessComputingRequiredCores

O número de núcleos solicitados para o Serverless Computing. Defina este parâmetro como 0 para permitir que o mecanismo decida automaticamente.

Não

N/D (não definido)

Parâmetros específicos do modo FIXED_COPY

Parâmetro

Descrição

Obrigatório

Valor padrão

isBinaryFormat

Define se o formato binário será usado para transferência de dados. Se definido como true, o sistema usa o formato binário, que proporciona maior eficiência de transferência. Se definido como false, o sistema usa o formato de texto (CSV).

Não

true

checkRecordBeforePut

Define se os registros serão validados antes da gravação, incluindo verificações de tipo e comprimento. Se ativado, o sistema detecta dados incorretos no lado do cliente com antecedência.

Não

true

maxCellBufferSize

O tamanho máximo do buffer para uma única linha de dados, em bytes. Certifique-se de que o buffer possa conter uma linha completa. Caso contrário, a operação de gravação falhará.

Não

10485760 (10 MB)

Parâmetros específicos do modo STAGE

Parâmetro

Descrição

Obrigatório

Valor padrão

stageTTL

O tempo de vida (TTL) do stage interno, em segundos. O sistema limpa um stage automaticamente após este período.

Não

86400 (1 dia)

stageFileSizeLimit

O tamanho máximo de um único arquivo de stage, em bytes. O sistema cria um novo arquivo automaticamente quando este limite é excedido.

Não

67108864 (64 MB)

stageMaxBatchSize

O número máximo de linhas em um lote Arrow para gravação de registros. O sistema grava um Arrow RecordBatch cada vez que o número especificado de linhas é acumulado.

Não

8192

stageCompress

Define se a compactação Arrow LZ4 será ativada. Se ativada, o espaço de armazenamento do stage e o volume de transferência de rede são significativamente reduzidos. Este recurso requer o Hologres >= 4.2.8. Se a versão não atender ao requisito, o sistema desativa a compactação automaticamente.

Não

true

Parâmetros avançados

Parâmetro

Descrição

Obrigatório

Valor padrão

useArrow

Define se o caminho de gravação colunar Arrow será usado. Se definido como true e a versão do Hologres for >= 4.1.0, o sistema ativa o modo de gravação STAGE automaticamente. O Hologres Writer aceita dados formatados em Arrow (ArrowTabularRecord) produzidos por qualquer reader upstream, além de registros padrão baseados em linhas, que são convertidos automaticamente para o formato Arrow para gravação no stage. Para obter mais informações, consulte Arrow columnar write.

Não

false

default.enable

Define se os valores padrão serão preenchidos automaticamente para colunas definidas como NOT NULL, mas sem valores especificados.

Não

true

enableWriteBitTypeWithString

Define se a gravação de dados BIT como strings será permitida.

Não

false

holoClient

Itens de configuração avançada para o Holo Client no formato Map. Você pode definir qualquer parâmetro do HoloConfig subjacente. Exemplo: {"writeBatchSize": 512}.

Não

Nenhum