Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados Hologres

Última atualização: Jul 08, 2026

A fonte de dados Hologres oferece canais bidirecionais de leitura e escrita 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 Hologres permite executar tarefas de sincronização apenas em um grupo de recursos serverless.

Leitura e escrita em lote

  • O Hologres Writer não permite gravar dados em tabelas externas do Hologres.

  • Lógica para obter o endpoint do Hologres visando a conectividade da source 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 2,1 ou superior.

  • Não há suporte para sincronização incremental de tabelas particionadas do Hologres.

  • Não há suporte para sincronização de mensagens de alteração DDL em tabelas do Hologres.

  • 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 sincronizar uma única tabela em tempo real a partir do Hologres, ative o Binlog do Hologres na tabela de origem. Para mais informações, consulte Assinar o Binlog do Hologres.

Escrita em tempo real de banco de dados completo

  • Tarefas de sincronização de dados em tempo real não permitem sincronizar tabelas sem chaves primárias.

  • Ao sincronizar dados de um banco de dados MySQL completo para o Hologres em tempo real, a gravação ocorre apenas em tabelas filhas de tabelas particionadas. Não há suporte para gravação na tabela pai de uma tabela particionada.

Tipos de dados compatíveis

Tipo de dado

Leitura em lote (Hologres Reader)

Escrita em lote (Hologres Writer)

Escrita 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

Funcionamento

Leitura em lote

O Hologres Reader oferece dois modos de leitura:

Modo JDBC (padrão)

Lê dados das tabelas do Hologres por meio do PSQL. Várias tarefas concorrentes são iniciadas com base na contagem de shards da tabela, onde cada shard corresponde a uma tarefa Select concorrente:

  • Ao crie uma tabela no Hologres, configure a contagem de shards executando CALL set_table_property('table_name', 'shard_count', 'xx') dentro da mesma transação CREATE TABLE.

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

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

Modo Arrow (useArrow=true)

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

  • Requer versão do Hologres >= 4.0.18.

  • As tarefas concorrentes também são divididas com base na contagem de shards.

  • Não há suporte para colunas de função e colunas constantes. Apenas colunas físicas da tabela são aceitas.

  • A transferência compactada é ativada automaticamente quando o requisito de versão é atendido.

Escrita em lote

O Hologres Writer obtém os dados de protocolo gerados pelo Reader por meio do framework de sincronização de dados. O canal e a estratégia de resolução de conflitos usados para gravar os dados são determinados pelas configurações writeMode e conflictMode.

Modo de escrita (writeMode)

Modo de escrita

Método

Cenário aplicável

Requisito de versão

INSERT

Usa o Holo Client para escrita em lote (INSERT ON CONFLICT).

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

Todas as versões

FIXED_COPY

Usa o Fixed Copy do Holo Client para escritas em streaming.

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

Hologres >= 1,1

STAGE

Grava os dados primeiro no Internal Stage do Hologres (formato Arrow) e depois importa 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 conflictMode para especifique como tratar os dados recém-importados quando ocorre um conflito de chave primária com dados existentes:

Importante

O parâmetro conflictMode aplica-se apenas a tabelas com chaves primárias. Para mais informações sobre o mecanismo de escrita e desempenho, consulte Escrever dados no Hologres.

  • Se conflictMode estiver defina como Replace (full row update), os novos dados substituirão os antigos. Todas as colunas da linha serão sobrescritas. As colunas não incluídas no mapeamento de colunas serão forçadas para NULL.

  • Se conflictMode estiver defina como Update, os novos dados substituirão os antigos. Apenas as colunas incluídas no mapeamento de colunas serão sobrescritas.

  • Se conflictMode estiver defina como Ignore, os novos dados serão ignorados.

Adicionar uma source de dados

Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione a source de dados necessária seguindo as instruções em Gerenciamento de fontes de dados. Consulte as descrições dos parâmetros no console do DataWorks para compreender o significado de cada parâmetro ao adicionar uma source 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: Perguntas frequentes sobre sincronização em tempo real .

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

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

Para configure uma tarefa de sincronização em lote usando o editor de código, defina os parâmetros relevantes no script conforme os requisitos unificados de formato de script. Para mais informações, consulte Configuração em modo de script. As informações a seguir descrevem os parâmetros necessários para as fontes de dados ao utilizar o editor de código.

Exemplos de script do Reader

  • configure uma tabela não particionada

    • O exemplo a seguir mostra como configure 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;
  • configure uma tabela particionada

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

      Nota

      Atente-se à 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 do script do Reader

Parâmetro

Descrição

Obrigatório

Valor padrão

database

Nome do banco de dados na instância do Hologres.

Sim

N/A

table

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/A

querySql

Instrução SQL de consulta personalizada. Se este parâmetro for configurado, os parâmetros table e column serão ignorados. Este parâmetro é mutuamente exclusivo com table. configure pelo menos um deles.

Condicionalmente obrigatório

N/A

column

Colunas a serem lidas. ["*"] indica todas as colunas. Colunas de expressão de função também são compatíveis (apenas no modo JDBC).

Sim

N/A

partition

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

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

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

  • Verifique se as tabelas filhas correspondentes foram criadas e se os dados foram importados.

Não

Vazio, indicando uma tabela não particionada.

where

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

defina se o formato colunar Arrow deve 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, melhorando o desempenho. Requer Hologres 4.0.18 ou superior. Se a versão não atender ao requisito, o sistema reverte automaticamente para o modo JDBC. O modo Arrow não oferece suporte a colunas de função ou colunas constantes. Atualmente, este modo permite sincronização em lote de banco de dados completo e sincronização em lote de tabela única quando tanto a origem quanto o destino são MaxCompute, Hologres ou Hive/OSS/HDFS (Parquet/ORC). Para mais informações, consulte Usar formato Arrow para sincronização de dados de alto desempenho.

Não

false

compress

defina se a compressão LZ4 deve 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

Número de linhas buscadas do banco de dados em cada solicitação no modo JDBC.

Não

1000

jdbcReadTimeout

Tempo limite de leitura JDBC. Unidade: segundos.

Não

60

enableServerlessComputing

defina se o Serverless Computing do Hologres deve ser ativado para acelerar consultas. Nota: Este parâmetro controla a capacidade de Serverless Computing da instância do Hologres, que é diferente de um grupo de recursos serverless do DataWorks.

Não

false

serverlessComputingQueryPriority

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

Não

3

serverlessComputingRequiredCores

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

Não

5

Exemplo de script do Writer

  • configure 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 para a 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;
  • configure uma tabela particionada

    Nota
    • O Hologres oferece suporte apenas a partições LIST. Apenas uma única coluna de partição é compatível, e a coluna 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 do script do Writer

Parâmetros básicos

Parâmetro

Descrição

Obrigatório

Valor padrão

database

Nome do banco de dados na instância do Hologres.

Sim

N/A

table

Nome da tabela do Hologres. Nomes de schema no nome da tabela são compatíveis, como schema_name.table_name.

Sim

N/A

writeMode

Modo de escrita. Quatro modos são compatíveis: INSERT, COPY, FIXED_COPY (requer Hologres >= 1,1) e STAGE (requer Hologres >= 4.1.0). Para mais informações, consulte a descrição do modo de escrita em Funcionamento. Recomendamos usar STAGE ou FIXED_COPY para sincronização em lote e INSERT para cenários em tempo real (incluindo retração de dados).

Sim

N/A

conflictMode

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

Sim

N/A

column

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 autoincrementais seriais e colunas geradas). ["*"] indica todas as colunas.

Sim

N/A

partition

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

Nota
  • O Hologres oferece suporte apenas a partições LIST. Apenas uma única coluna de partição é compatível, e a coluna 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 permitem gravação direta em uma tabela pai particionada. especifique o parâmetro partition.

Não

Vazio, indicando 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 escrita concorrente de múltiplas conexões. ative o recurso reShuffle permite que diferentes tarefas em cenários de sincronização em lote gravem dados em shards específicos do Holo com base nas chaves de distribuição, habilitando escritas em lote concorrentes e melhorando significativamente o desempenho. Em comparação com as escritas tradicionais em tempo real no modo JDBC, este recurso reduz a carga no servidor Holo e aumenta ainda mais a eficiência da escrita.

Importante

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

Não

false

truncate

defina se a tabela de destino deve ser limpa antes de gravar dados na tabela do Hologres.

  • true: Limpar a tabela de destino.

    Nota
    • Atualmente, apenas tabelas não particionadas e tabelas particionadas estáticas podem ser truncadas. Tabelas particionadas dinâmicas não podem ser truncadas. Se você usar uma tabela particionada dinâmica e defina este parâmetro como true, a tarefa de sincronização será encerrada com erro.

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

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

Não

false

partitionFormat

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/A

preSql

Lista de instruções SQL a serem executadas antes da gravação dos dados. A execução na tabela pai de uma tabela particionada não é suportada.

Não

N/A

postSql

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

Não

N/A

Parâmetros de conexão e desempenho

Parâmetro

Descrição

Obrigatório

Valor padrão

maxConnectionCount

Número de conexões concorrentes para escrita. Este valor é ajustado automaticamente com base na concorrência real da tarefa (maxConnectionCount / actualConcurrent). Recomendamos defina este parâmetro entre 1 e 3 vezes a concorrência da tarefa.

Não

3

maxRetryCount

Número de tentativas em caso de falha.

Não

10

jdbcReadTimeout

Tempo limite de conexão JDBC. Unidade: segundos.

Não

120

maxCommitSize

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

Não

2097152 (2 MB)

maxCommitCount

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 escrita concorrente entre múltiplas conexões. ative o recurso reShuffle permite que diferentes tarefas gravem dados em shards específicos do Holo com base na chave de distribuição em cenários de sincronização em lote. Isso habilita escritas em lote concorrentes e melhora significativamente o desempenho. Em comparação com as escritas tradicionais em tempo real no modo JDBC, ative este recurso reduz a carga no servidor Holo e aumenta ainda mais a eficiência da escrita.

Importante

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

Não

false

removeU0000InTextColumnValue

defina se caracteres devem ser removidos dos valores das colunas de texto. O PostgreSQL não permite o armazenamento deste caractere no tipo de dado TEXT.

Não

true

Parâmetros do Serverless Computing do Hologres

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

Nota : O Serverless Computing do Hologres e os grupos de recursos serverless do DataWorks são conceitos diferentes. O primeiro refere-se à capacidade de computação elástica dentro de uma instância do Hologres, enquanto o segundo refere-se aos recursos de agendamento usados pelo DataWorks para execute tarefas de sincronização.
Notas de uso : Todos os modos são compatíveis com o Reader. Apenas o modo STAGE é compatível com o Writer.

Parâmetro

Descrição

Obrigatório

Valor padrão

enableServerlessComputing

defina se a aceleração via Serverless Computing do Hologres deve ser ativada.

Não

false

serverlessComputingQueryPriority

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

Não

3

serverlessComputingRequiredCores

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/A (não definido)

Parâmetros específicos do modo FIXED_COPY

Parâmetro

Descrição

Obrigatório

Valor padrão

isBinaryFormat

defina se o formato binário deve ser usado para transferência de dados. Se defina como true, o formato binário será utilizado, proporcionando maior eficiência de transferência. Se defina como false, o formato de texto (CSV) será usado.

Não

true

checkRecordBeforePut

defina se os registros devem ser validados antes da escrita, incluindo verificações de tipo e comprimento. Se ativado, dados incorretos podem ser detectados antecipadamente no lado do cliente.

Não

true

maxCellBufferSize

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

Não

10485760 (10 MB)

Parâmetros específicos do modo STAGE

Parâmetro

Descrição

Obrigatório

Valor padrão

stageTTL

Tempo de vida (TTL) do stage interno, em segundos. Um stage é limpo automaticamente após este período.

Não

86400 (1 dia)

stageFileSizeLimit

Tamanho máximo de um único arquivo de stage, em bytes. Um novo arquivo é criado automaticamente quando esse limite é excedido.

Não

67108864 (64 MB)

stageMaxBatchSize

Número máximo de linhas em um lote Arrow para escrita de registros. Um Arrow RecordBatch é escrito sempre que o número especificado de linhas for acumulado.

Não

8192

stageCompress

defina se a compressão Arrow LZ4 deve ser ativada. Se ativado, o espaço de armazenamento do stage e o volume de transferência de rede são significativamente reduzidos. Este recurso requer Hologres >= 4.2.8. Se o requisito de versão não for atendido, a compressão será desativada automaticamente.

Não

true

Parâmetros avançados

Parâmetro

Descrição

Obrigatório

Valor padrão

useArrow

defina se o caminho de escrita colunar Arrow deve ser usado. Se defina como true e a versão do Hologres for >= 4.1.0, o modo de escrita STAGE será ativado automaticamente. O Hologres Writer pode receber dados formatados em Arrow (ArrowTabularRecord) produzidos por qualquer reader upstream, e também pode receber registros padrão baseados em linhas, que são convertidos automaticamente para o formato Arrow para escrita no stage. Para mais informações, consulte Escrita colunar Arrow.

Não

false

default.enable

defina se valores padrão devem ser preenchidos automaticamente para colunas definidas como NOT NULL mas que não possuem valores especificados.

Não

true

enableWriteBitTypeWithString

defina se a escrita de dados BIT como strings é permitida.

Não

false

holoClient

Itens de configuração avançada para o Holo Client no formato Map. É possível defina quaisquer parâmetros do HoloConfig subjacente. Exemplo: {"writeBatchSize": 512}.

Não

Nenhum