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çãoCREATE 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:
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
Fontes de dados compatíveis: todos os tipos de fontes de dados com suporte no módulo Data Integration.
Guia de configuração: Configure a batch synchronization task in the codeless UI e Configure a batch synchronization task by using the code editor. Para obter a lista completa de parâmetros e exemplos de script disponíveis no editor de código, consulte Appendix: Complete parameters and script demos abaixo.
Sincronização em tempo real de tabela única
Fontes de dados compatíveis: DataHub, Hologres, Kafka e LogHub
Guia de configuração: Configure a real-time synchronization task.
Sincronização em lote de banco de dados completo
Fontes de dados compatíveis: AnalyticDB for MySQL 3.0, ClickHouse, Doris, Hologres, Oracle, PolarDB e SQL Server
Guia de configuração: Configure a full-database batch synchronization task
Sincronização em tempo real de banco de dados completo
Fontes de dados compatíveis: AnalyticDB for OceanBase, MongoDB, MySQL, Oracle, PolarDB, PolarDB-X 2.0 e PostgreSQL
Guia de configuração: Configure a real-time synchronization task to synchronize data of a single table
Tempo real de banco de dados completo Serverless
Fonte de dados compatível: MySQL
Guia de configuração: Configure a Serverless full-database real-time synchronization task
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.
NotaPreste 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 | 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 | Condicionalmente obrigatório | N/D |
column | As colunas a serem lidas. | Sim | N/D |
partition | Para tabelas particionadas, especifica a coluna de partição e seu valor no formato Importante
| 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 | 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 | Não | 3 |
serverlessComputingRequiredCores | O número de núcleos solicitados para o Hologres Serverless Computing. Este parâmetro tem efeito apenas quando | 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
NotaO 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 | Sim | N/D |
writeMode | O modo de gravação. Quatro modos são aceitos: | Sim | N/D |
conflictMode | O modo de resolução de conflitos. Valores válidos: | 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). | Sim | N/D |
partition | Para tabelas particionadas, este parâmetro especifica a coluna de partição e seu valor correspondente no formato Nota
| 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.
| 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 | 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 ( | 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 | 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: |
Não |
Nenhum |