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çãoCREATE 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:
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
Fontes de dados compatíveis: Todos os tipos de fontes de dados compatíveis com o módulo Data Integration.
Guia de configuração: configure uma tarefa de sincronização em lote na interface visual e configure uma tarefa de sincronização em lote usando o editor de código. Para obter a lista completa de parâmetros e exemplos de scripts disponíveis no editor de código, consulte o Apêndice: Parâmetros completos e exemplos de scripts abaixo.
Sincronização em tempo real de tabela única
Fontes de dados compatíveis: DataHub, Hologres, Kafka e LogHub
Guia de configuração: configure uma tarefa de sincronização em tempo real.
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 uma tarefa de sincronização em lote de banco de dados completo
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 uma tarefa de sincronização em tempo real para sincronizar dados de uma única tabela
Tempo real de banco de dados completo Serverless
Fonte de dados compatível: MySQL
Guia de configuração: configure uma tarefa de sincronização em 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.
NotaAtente-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 | 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 | Condicionalmente obrigatório | N/A |
column | Colunas a serem lidas. | Sim | N/A |
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 | 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 | 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 | Não | 3 |
serverlessComputingRequiredCores | Número de núcleos solicitados para o Serverless Computing do Hologres. Este parâmetro tem efeito apenas quando | 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
NotaO 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 | Sim | N/A |
writeMode | Modo de escrita. Quatro modos são compatíveis: | Sim | N/A |
conflictMode | Modo de resolução de conflitos. Valores válidos: | 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). | Sim | N/A |
partition | Para tabelas particionadas, este parâmetro especifica a coluna de partição e seu valor correspondente no formato Nota
| 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.
| 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 | 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 ( | 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 | 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: |
Não |
Nenhum |