Opções do conector para a cláusula WITH ao usar o Realtime Compute for Apache Flink com o Hologres no Ververica Runtime (VVR) 8.0.x ou anterior.
Referência rápida de versões
A tabela a seguir resume as opções introduzidas em versões menores específicas do VVR. As opções não listadas aqui estão disponíveis em todas as versões 8.0.x do VVR.
|
Opção |
Versão mínima |
|
|
VVR 8.0.5 |
|
|
VVR 8.0.5 |
|
|
VVR 8.0.5 + Hologres V2.1 |
|
|
VVR 8.0.5 |
|
|
VVR 8.0.5 |
|
|
VVR 8.0.6 |
|
|
VVR 8.0.6 |
|
|
VVR 8.0.8 |
|
|
VVR 8.0.8 |
|
|
VVR 8.0.11 |
|
|
VVR 8.0.11 |
|
|
VVR 8.0.11 |
|
|
VVR 8.0.11 |
Opções do conector na cláusula WITH
Gerais
As opções a seguir se aplicam a tabelas source, tabelas sink e tabelas de dimensão.
|
Opção |
Tipo de dados |
Obrigatório |
Padrão |
Descrição |
|
|
String |
Sim |
— |
defina como |
|
|
String |
Sim |
— |
O nome do banco de dados. Para se conectar a um virtual warehouse, adicione |
|
|
String |
Sim |
— |
O nome da tabela. Se o schema não for |
|
|
String |
Sim |
— |
O AccessKey id da sua conta Alibaba Cloud ou usuário RAM, ou um nome de usuário de conta personalizada no formato |
|
|
String |
Sim |
— |
O AccessKey secret da sua conta Alibaba Cloud ou usuário RAM, ou a senha da sua conta personalizada. |
|
|
String |
Sim |
— |
O endpoint do Hologres. Consulte Endpoints. |
|
|
String |
Não |
|
O modo SSL. Valores válidos: |
|
|
String |
Não |
— |
O caminho do arquivo de certificado CA. Obrigatório quando |
|
|
Integer |
Não |
|
Número máximo de tentativas após uma falha de conexão ao ler ou gravar dados. |
|
|
Long |
Não |
|
Componente fixo do tempo de espera por tentativa, em milissegundos. O tempo de espera real é |
|
|
Long |
Não |
|
Componente incremental do tempo de espera por tentativa, em milissegundos. O tempo de espera real é |
|
|
Long |
Não |
|
Duração máxima de ociosidade para uma conexão JDBC, em milissegundos. Conexões ociosas que excedem esse valor são fechadas e liberadas. |
|
|
Long |
Não |
|
Tempo máximo para manter as informações de |
|
|
Integer |
Não |
|
Controla quando uma atualização de cache é acionada. O limiar de atualização automática é |
|
|
Boolean |
Não |
Consulte a descrição |
Base de fuso horário para conversões entre os tipos de tempo do Flink e do Hologres. |
|
|
Integer |
Não |
|
A versão da opção do conector. defina como |
Específicas para source
|
Opção |
Tipo de dados |
Obrigatório |
Padrão |
Descrição |
|
|
String |
Não |
|
Delimitador entre linhas durante a exportação de dados. |
|
|
Boolean |
Não |
Consulte a descrição |
Indica se deve consumir dados de binary log. O padrão é |
|
|
String |
Não |
|
O modo sdk para consumo de binary log. |
|
|
String |
Não |
— |
O nome do slot da tabela source de binary log no modo JDBC. Tem efeito apenas quando |
|
|
Integer |
Não |
|
Número de tentativas após falha ao ler dados de binary log. |
|
|
Long |
Não |
|
Intervalo entre tentativas após falha ao ler dados de binary log, em milissegundos. |
|
|
Long |
Não |
|
Tempo limite para leitura de dados de binary log, em milissegundos. |
|
|
Integer |
Não |
|
Número de linhas lidas do binary log por lote. |
|
|
Boolean |
Não |
Consulte a descrição |
Indica se deve ler dados de binary log no modo Change Data Capture (CDC). O padrão é |
|
|
Boolean |
Não |
|
Tem efeito apenas no modo CDC. |
|
|
String |
Não |
|
O modo de consumo de binary log. |
|
|
String |
Não |
— |
Horário de início para consumo de dados do Hologres. Formato: |
|
|
Integer |
Não |
|
Número de registros armazenados em buffer por lote durante uma operação de scan. |
|
|
Integer |
Não |
|
Tempo limite para uma operação de scan, em segundos. |
|
|
Integer |
Não |
|
Tempo limite para a transação que contém a operação de scan, em segundos. Corresponde ao GUC parameter |
|
|
Boolean |
Não |
|
Indica se deve enviar as condições de filtro para o Hologres durante a fase de leitura completa de dados. Aplica-se ao ler de uma tabela source com binary logging desativado, ou durante a fase de dados completos do consumo de binary log. Requer VVR 6.0.7 ou posterior. |
|
|
Enum |
Não |
|
Modo para consumo de binary logs de uma tabela particionada. |
|
|
Integer |
Não |
|
Latência máxima permitida antes de um tempo limite no modo de partição dinâmica, em minutos. O conector continua monitorando a partição anterior após alternar para a mais recente, para capturar dados que chegam atrasados. Não pode exceder o tempo da unidade de particionamento — para uma tabela particionada por dia, o máximo é 1.440 minutos (24 × 60). |
|
|
String |
Não |
— |
Partições a serem consumidas no modo de partição estática. especifique os valores de partição (não os nomes completos das partições), separados por vírgulas. Se não for definido, todas as partições são consumidas. Expressões regulares não são suportadas. |
Específicas para sink
Modos de gravação
|
Opção |
Tipo de dados |
Obrigatório |
Padrão |
Descrição |
|
|
String |
Não |
|
O modo sdk para gravação de dados. |
|
|
Boolean |
Não |
|
Indica se deve gravar no modo de bulk load. Tem efeito apenas quando |
|
|
String |
Não |
Consulte a descrição |
Como os registros duplicados são tratados. |
|
|
Boolean |
Não |
|
Indica se deve gravar dados em uma tabela particionada. |
|
|
Boolean |
Não |
|
Indica se deve criar partições automaticamente com base nos valores de partição recebidos. No modo RPC, a criação automática falha se os valores de partição contiverem hifens ( |
Buffer e flush
O operador sink armazena registros em buffer e faz o flush deles para o Hologres quando qualquer uma das seguintes condições é atendida:
O número de registros em buffer atinge
jdbcWriteBatchSize.O tamanho total dos registros em buffer atinge
jdbcWriteBatchByteSize.O tempo desde o último flush atinge
jdbcWriteFlushInterval.
|
Opção |
Tipo de dados |
Obrigatório |
Padrão |
Descrição |
|
|
Integer |
Não |
|
Número máximo de registros para armazenar em buffer antes do flush, em linhas. |
|
|
Long |
Não |
|
Tamanho total máximo dos registros em buffer antes do flush, em bytes. |
|
|
Long |
Não |
|
Tempo máximo de espera antes de fazer o flush dos registros em buffer, em milissegundos. |
|
|
Boolean |
Não |
|
Indica se deve deduplicar registros no buffer antes do flush. Quando ativado, apenas o registro mais recente para cada chave primária é mantido. Requer VVR 8.0.5 ou posterior. |
Tratamento de nulos e dados
|
Opção |
Tipo de dados |
Obrigatório |
Padrão |
Descrição |
|
|
Boolean |
Não |
|
Indica se deve ignorar valores nulos ao gravar com |
|
|
Boolean |
Não |
|
Indica se deve substituir por um valor padrão quando um nulo é gravado em uma coluna não nula que não tem um padrão configurado. Quando |
|
|
Boolean |
Não |
|
Indica se deve remover caracteres |
|
|
Boolean |
Não |
|
Indica se deve gravar apenas os campos declarados na instrução INSERT. |
Tratamento de exclusão
|
Opção |
Tipo de dados |
Obrigatório |
Padrão |
Descrição |
|
|
String |
Não |
— |
Estratégia para processamento de mensagens de retração. |
Atualização condicional
|
Opção |
Tipo de dados |
Obrigatório |
Padrão |
Descrição |
|
|
String |
Não |
— |
Ativa o recurso de atualização condicional. defina como o nome do campo e verifique. Requisitos: uma chave primária na tabela sink, |
|
|
String |
Não |
|
Operador de comparação para a atualização condicional. O campo de verificação do novo registro é comparado com o campo de verificação do registro existente; a atualização prossegue se a comparação corresponder. Valores válidos: |
|
|
String |
Não |
— |
Como tratar nulos no registro existente durante uma atualização condicional. No PostgreSQL, comparar qualquer valor com NULL retorna FALSE. defina esta opção e especifique o valor substituto, equivalente à função COALESCE. Requer VVR 8.0.11 ou posterior. |
Pool de conexões
|
Opção |
Tipo de dados |
Obrigatório |
Padrão |
Descrição |
|
|
Integer |
Não |
|
Tamanho do pool de conexões JDBC para o job. Aumente este valor se o job tiver um throughput ruim. |
|
|
String |
Não |
— |
Nome do pool de conexões. Tabelas com o mesmo nome de pool no mesmo TaskManager compartilham um pool de conexões. defina isso como qualquer string diferente de |
|
|
Boolean |
Não |
|
Indica se deve forçar um commit durante períodos de conexão ociosa, mesmo que nenhuma condição de flush tenha sido atendida. Reduz a latência de gravação sob baixo tráfego. Suportado quando |
Opções obsoletas
As opções a seguir estão obsoletas. Use as opções de substituição em seu lugar.
|
Opção |
Substituição |
Notas |
|
|
|
defina |
|
|
|
Tem efeito apenas quando |
Específicas para tabela de dimensão
Modo sdk e conexão
|
Opção |
Tipo de dados |
Obrigatório |
Padrão |
Descrição |
|
|
String |
Não |
|
O modo sdk para consulta de dados. |
|
|
Boolean |
Não |
|
Indica se deve consultar usando RPC. defina como |
|
|
Integer |
Não |
|
Tamanho do pool de conexões JDBC. Aumente este valor se o job tiver um throughput ruim. |
|
|
String |
Não |
— |
Nome do pool de conexões. Mesmo comportamento das tabelas sink — consulte a opção |
Lote e scan
|
Opção |
Tipo de dados |
Obrigatório |
Padrão |
Descrição |
|
|
Integer |
Não |
|
Número máximo de registros por lote para consultas pontuais. |
|
|
Integer |
Não |
|
Número máximo de solicitações enfileiradas por thread para consultas pontuais. |
|
|
Long |
Não |
|
Tempo limite para consultas pontuais, em milissegundos. |
|
|
Integer |
Não |
|
Número de tentativas quando uma consulta pontual atinge o tempo limite. Isso é diferente de |
|
|
Integer |
Não |
|
Número de registros por lote durante uma operação de scan em um join de um para muitos (sem chave primária completa). |
|
|
Integer |
Não |
|
Tempo limite para uma operação de scan, em segundos. |
Cache
|
Opção |
Tipo de dados |
Obrigatório |
Padrão |
Descrição |
|
|
String |
Não |
|
Política de cache. |
|
|
Integer |
Não |
|
Número máximo de linhas para armazenar em cache. Aplica-se apenas quando |
|
|
Long |
Não |
— |
Tempo limite do cache, em milissegundos. Quando |
|
|
Boolean |
Não |
|
Indica se deve armazenar em cache consultas JOIN que retornam resultados vazios. |
|
|
Boolean |
Não |
|
Indica se deve retornar resultados de consultas de forma assíncrona. Quando |
Fusos horários do Realtime Compute for Apache Flink e Hologres
Tipos de tempo
|
Service |
Tipo |
Descrição |
|
Flink |
TIMESTAMP |
Data e hora sem fuso horário. Representado como uma string, por exemplo, |
|
Flink |
TIMESTAMP_LTZ |
Um ponto absoluto no tempo. Armazenado como LONG (milissegundos desde a epoch) ou INT (nanossegundos dentro dos milissegundos). A epoch é 00:00:00 UTC em 1 de janeiro de 1970. Interpretado e exibido com base no fuso horário da sessão, portanto, o mesmo valor aparece como horários locais diferentes em fusos horários diferentes — por exemplo, |
|
Hologres |
TIMESTAMP |
Data e hora sem fuso horário, semelhante ao TIMESTAMP do Flink. O valor não muda quando o fuso horário do cliente Hologres muda. |
|
Hologres |
TIMESTAMPTZ |
Data e hora com fuso horário, semelhante ao TIMESTAMP_LTZ do Flink. Armazenado como UTC; convertido para o fuso horário do cliente quando consultado. |
Mapeamentos de fuso horário
Com type-mapping.timestamp-converting.legacy=false (VVR 8.0.6 ou posterior), todas as conversões de tipo entre Flink e Hologres são suportadas sem desvio de dados.
|
Tipo Flink |
Tipo Hologres |
Comportamento |
|
TIMESTAMP |
TIMESTAMP |
Sem conversão de fuso horário. Recomendado para leitura e gravação no Hologres. |
|
TIMESTAMP_LTZ |
TIMESTAMPTZ |
— |
|
TIMESTAMP |
TIMESTAMPTZ |
A conversão de fuso horário é realizada. defina o fuso horário do Flink usando |
|
TIMESTAMP_LTZ |
TIMESTAMP |
A conversão de fuso horário é realizada. |
Com type-mapping.timestamp-converting.legacy=true (VVR 8.0.6 ou posterior) ou no VVR 8.0.5 ou anterior, pode ocorrer desvio de dados para conversões diferentes de TIMESTAMP para TIMESTAMP.
|
Tipo Flink |
Tipo Hologres |
Comportamento |
|
TIMESTAMP |
TIMESTAMP |
Sem conversão de fuso horário. Recomendado. |
|
TIMESTAMP_LTZ |
TIMESTAMPTZ |
Pode ocorrer desvio de dados. Os dados TIMESTAMP_LTZ são tratados como um horário sem fuso horário quando gravados. Por exemplo, |
|
TIMESTAMP |
TIMESTAMPTZ |
Pode ocorrer desvio de dados se o fuso horário do Flink for diferente do fuso horário da JVM. As conversões usam o fuso horário da JVM, não o fuso horário do Flink. |
|
TIMESTAMP_LTZ |
TIMESTAMP |
— |