Todos os produtos
Search
Central de documentação

Hologres:Importação via Flink

Última atualização: Jul 02, 2026

O Alibaba Cloud Realtime Compute for Apache Flink é uma plataforma empresarial de alto desempenho para processamento de big data em tempo real, desenvolvida sobre o Apache Flink. O Hologres integra-se estreitamente ao Flink. Essa integração permite gravar e consultar dados de streaming em tempo real, construindo eficientemente um data warehouse em tempo real.

Tipos de serviço

O Realtime Compute for Apache Flink não armazena dados. Ele processa informações provenientes de sistemas de armazenamento externos e oferece suporte aos seguintes tipos de armazenamento de dados:

  • Source Table

    Uma source table fornece dados de entrada para um job do Flink. Ao utilizar uma tabela do Hologres como source table, a importação ocorre em modo batch, e não em streaming. O Hologres executa uma varredura completa na tabela, envia os dados para um destino downstream e finaliza o job.

  • Dimension Table

    Uma dimension table é geralmente usada para consultas pontuais por chave. Por isso, ao configurar uma tabela do Hologres como dimension table, recomenda-se o uso de Row-oriented Storage. A condição JOIN deve utilizar a chave primária completa da tabela.

  • Result Table

    Uma result table recebe e armazena os dados de saída das computações do Flink. Ela disponibiliza interfaces de leitura e escrita para consumo downstream.

O Realtime Compute for Apache Flink integra-se profundamente ao Hologres para oferecer os seguintes recursos avançados de nível empresarial:

  • Consumo de Binary Logs do Hologres

    Este recurso permite consumir logs de alterações de tabelas do Hologres utilizando o padrão de fila de mensagens.

  • Flink Catalog

    É possível importar metadados do Hologres como um catalog no Flink. Isso permite ler metadados do Hologres diretamente do console do Fully Managed Flink sem registrar tabelas manualmente. Tal capacidade aumenta a eficiência do desenvolvimento e garante a precisão do schema.

  • Schema Evolution

    O Fully Managed Flink suporta evolução de schema. Ao ler dados JSON, o Flink analisa automaticamente os tipos de dados e cria as colunas correspondentes na tabela, possibilitando a evolução dinâmica do modelo de dados.

A tabela a seguir descreve os tipos de serviço Flink suportados pelo Hologres e seus respectivos recursos.

Tipo de serviço

Tipo de armazenamento de dados

Recursos avançados

Descrição

Source table

Result table

Dimension table

Hologres binlog

Flink catalog

Schema evolution

Semi-managed Flink

Suporta Row-oriented Storage e Column-oriented Storage. Para source tables de Binary Log, recomenda-se o uso de Row-oriented Storage ou armazenamento híbrido linha-coluna.

Suporta Row-oriented Storage e Column-oriented Storage.

Recomenda-se o uso de Row-oriented Storage ou armazenamento híbrido linha-coluna.

Suportado

Suportado

Suportado

Utiliza a plataforma de desenvolvimento EMR Studio.

Blink em modo exclusivo (descontinuado)

Suporta Row-oriented Storage e Column-oriented Storage. Para source tables de Binary Log, recomenda-se o uso de Row-oriented Storage ou armazenamento híbrido linha-coluna.

Suporta Row-oriented Storage e Column-oriented Storage.

Recomenda-se o uso de Row-oriented Storage ou armazenamento híbrido linha-coluna.

O Hologres V0.8 suporta apenas Row-oriented Storage. O Hologres V0.9 e versões posteriores suportam tanto Row-oriented quanto Column-oriented Storage. Recomenda-se o uso de Row-oriented Storage.

Não suportado

Não suportado

Utiliza a plataforma de desenvolvimento Bayes.

Recomenda-se o uso do Fully Managed Flink.

Apache Flink V1.10

Não suportado

Suporta Row-oriented Storage e Column-oriented Storage.

Não suportado

Não suportado

Não suportado

Não suportado

-

Apache Flink V1.11 e posterior

Não suportado

Suporta Row-oriented Storage e Column-oriented Storage.

Recomenda-se o uso de Row-oriented Storage.

Não suportado

Não suportado

Não suportado

O código do conector do Hologres é open source desde o Apache Flink V1.11. Para mais detalhes, consulte alibabacloud-hologres-connectors.

Apache Flink V1.13 e posterior

Suportado

Suporta Row-oriented Storage e Column-oriented Storage.

Recomenda-se o uso de Row-oriented Storage.

Não suportado

Não suportado

Não suportado

O código do conector do Hologres é open source desde o Apache Flink V1.11. Para mais detalhes, consulte alibabacloud-hologres-connectors.

Notas de versão do conector Hologres

Versão do Flink

Versão do VVR

Versão do Hologres

Informações de atualização

Referências

1.20

11,6

3.2.x

4.0.x

4.1.x

Source table:

  • Adicionado o modo de inicialização LATEST_OFFSET para consumir dados de Binlog a partir do offset mais recente.

  • Adicionado suporte ao tipo array VARCHAR em assinaturas de Binlog.

Catalog:

  • O Hologres Catalog agora expõe índices globais e chaves de prefix scan como índices de catalog.

Geral:

  • Adicionado cache de requisições de probe JDBC para evitar timeout do SQL Gateway em cenários com múltiplas tabelas.

Hologres: Data warehouse em tempo real

1.20

11,5

3.2.x

4.0.x

4.1.x

Source table:

  • Adicionado o parâmetro scan.binlog.prefer.physical-column.over.metadata para priorizar a coluna física quando seu nome entrar em conflito com uma coluna de metadados.

  • Source tables em modo batch não realizam mais reshuffle por padrão.

Dimension table:

  • Adicionada validação de lookup para tabelas colunares. Defina o parâmetro lookup.read.column-table.enabled como true para usar uma tabela colunar como dimension table.

Geral:

  • Adicionado suporte à autenticação Access Key V4 (AKV4).

Correções de bugs:

  • Corrigida uma NullPointerException (NPE) que ocorria ao receber um registro DELETE durante uma operação check-and-put.

  • Atualizado o holo-client para corrigir leituras incorretas de colunas quando o column pruning está ativado para Binlog.

Hologres: Data warehouse em tempo real

1.20

11,4

3.2.x

4.0.x

4.1.x

Sink table:

  • Adicionado o parâmetro sink.ignore-null-when-update-by-expr.enabled para ignorar valores nulos durante atualizações que utilizam expressão de inserção.

  • Adicionado suporte a expressões de conflito de inserção (conflict expr) para tratamento personalizado de conflitos.

  • O modo stream copy agora suporta o formato de linha binária, melhorando o desempenho de escrita.

Dimension table:

  • Adicionado suporte para pushdown de filtros em dimension tables.

Correções de bugs:

  • Atualizado o holo-client para corrigir um bug que impedia o fechamento de conexões de dimension table um-para-muitos ao parar um job.

Hologres: Data warehouse em tempo real

1.20

11,3

3.1.x

3.2.x

4.0.x

Source table:

  • Adicionado suporte para compressão de dados e column pruning no consumo de Binlog, reduzindo o tráfego de rede e o uso de memória.

  • Adicionado suporte para pushdown de filtros no Binlog, reduzindo transferências desnecessárias de dados.

Sink table:

  • Corrigido conflito entre sufixo de partição e partições dinâmicas durante a criação.

  • Adicionado suporte para escrita em colunas geradas.

Geral:

  • As conexões agora alternam automaticamente para o frontend (FE) ao selecionar um tipo de dados não suportado pelo FE fixo.

  • Atualizado o holo-client para corrigir falhas de conexão que ocorriam quando o nome do banco de dados continha @warehouse.

Correções de bugs:

  • Corrigido problema onde o conector não conseguia recuperar de um checkpoint se a tabela tivesse sido excluída.

  • Corrigido problema onde o LSN de estado da partição era inicializado incorretamente como 0 para shards vazios ao consumir de uma tabela pai particionada.

  • Corrigida falha que ocorria ao ler dados RoaringBitmap através de Binlog JDBC.

Hologres: Data warehouse em tempo real

1.20

11,2

3.1.x

3.2.x

4.0.x

Sink table:

  • Adicionada configuração no nível da tabela, sink.not-generate-binlog.enabled, para impedir a geração de Binlog durante escritas. Isso evita loops de consumo de Binlog.

  • A política de dirty data agora se aplica apenas a exceções reais de dirty data.

Geral:

  • Metadados da tabela não são mais acessados ao criar um HologresDynamicTableSink, acelerando a submissão do job.

Correções de bugs:

  • Corrigido problema de compatibilidade retroativa com configurações de source de Binlog e upsert.

  • Corrigido problema de compatibilidade retroativa com parâmetros de configuração do Hologres.

  • Corrigidos problemas de compatibilidade com parâmetros obsoletos.

  • Corrigida NPE que ocorria ao escrever um array TEXT contendo elementos nulos.

Hologres: Data warehouse em tempo real

1.20

11,1

3.1.x

3.2.x

Source table:

  • Adicionado suporte para especificar valores de partição ao assinar o Binlog de uma tabela particionada do Hologres.

Sink table:

  • Adicionado suporte para partições formatadas por data.

Dimension table:

  • Adicionadas métricas para acertos e erros de cache.

Geral:

  • O conector agora seleciona automaticamente o modo de conexão ideal com base em problemas conhecidos.

  • Corrigido problema onde opções com formatação não padrão em hints SQL falhavam ao sobrescrever opções do catalog.

Hologres: Data warehouse em tempo real

1.20

11.0

3.1.x

3.2.x

Geral:

  • Removidos todos os códigos e dependências relacionados a RPC e HoloHub. O conector agora usa exclusivamente o modo JDBC. Os nomes dos parâmetros foram refatorados.

Source table:

  • Source tables para dados completos e incrementais: Após a conclusão da leitura de snapshot completo, o consumo incremental inicia a partir do LSN máximo atual para evitar perda de dados.

Hologres: Data warehouse em tempo real

1.17

8.0.11

2.1.x

2.2.x

3.0.x

Source table:

  • Adicionado suporte para leitura de Binlog de tabelas particionadas.

  • Adicionado suporte para colunas de metadados em source tables.

  • O tipo decimal no Binlog JDBC agora utiliza a escala do tipo Flink.

  • Source tables para dados completos e incrementais: Após a conclusão da leitura de snapshot, o consumo incremental agora inicia a partir do LSN máximo atual.

Sink table:

  • Adicionada capacidade check-and-put para escritas condicionais.

  • Adicionado suporte para flush agressivo, reduzindo a latência de visibilidade dos dados.

  • O modo de escrita copy agora suporta o tipo de dados TIME.

  • Adicionado parâmetro de tamanho máximo de buffer de célula para o modo de escrita copy.

  • Adicionado idle-session-timeout no modo de escrita copy para evitar conexões ociosas prolongadas.

Geral:

  • Alterado o valor padrão do parâmetro remove-u0000-in-text.enabled para true.

  • Adicionado suporte para compatibilidade de estado em cenários de upgrade e downgrade.

  • A factory não valida mais parâmetros de Binlog ao usar uma dimension table de catalog, evitando erros falso-positivos.

  • Jobs agora tentam apenas três vezes antes de falhar rapidamente durante a implantação, evitando longas esperas.

Correções de bugs:

  • Atualizado o holo-client para corrigir um problema de análise de URL JDBC.

  • Corrigido problema onde o consumo de Binlog JDBC para source tables de dados completos e incrementais iniciava em LSN+1 após um checkpoint.

  • Corrigido erro de normalização de tipo em cenários CTAS quando uma exclusão de coluna e alteração de tipo ocorriam simultaneamente.

Hologres: Data warehouse em tempo real

1.17

8.0.9~8.0.10

2.1.x

2.2.x

3.0.x

  • Corrigido potencial problema de deadlock ao registrar um novo cliente em um pool de conexões compartilhado.

  • O ID da tabela não é mais verificado forçosamente quando um job de consumo de Binlog retoma de um estado salvo.

Hologres: Data warehouse em tempo real

1.17

8.0.8

2.1.x

2.2.x

Sink table:

  • Adicionado o parâmetro sink.delete-strategy para fornecer mais opções de tratamento de registros UPDATE_BEFORE, complementando a opção existente ignoredelete.

Hologres: Data warehouse em tempo real

1.17

8.0.7

2.1.x

Dimension table:

  • Corrigido problema onde a busca frequente de metadados para dimension tables com muitos campos causava timeout na implantação do job.

Geral:

  • Corrigido erro de permissões insuficientes que ocorria quando diferentes tabelas usavam usuários distintos dentro de um pool de conexões compartilhado.

Hologres: Data warehouse em tempo real

1.17

8.0.6

2.1.x

Source table:

Geral:

  • Adicionado suporte ao parâmetro type-mapping.timestamp-converting.legacy para ler e gravar corretamente o tipo de dados TIMESTAMP_LTZ do Flink. Para mais informações, consulte Hologres: Data warehouse em tempo real.

1.17

8.0.5

2.0.x

2.1.x

Source table:

  • Para Hologres V2.1 e posterior, não é mais necessário criar slots para consumir dados de Binlog via JDBC. Para mais informações, consulte Consumir Binlog via JDBC. Consequentemente, a partir desta versão, publications e slots não são mais criados automaticamente se a instância do Hologres for V2.1 ou posterior.

Sink table:

  • Adicionado novo parâmetro deduplication.enabled. O valor padrão é true. Quando definido como false, a result table pode pular a deduplicação durante o processo de agregação e escrita. Este recurso é útil para cenários como replay completo de streams CDC upstream.

  • Tabelas sem chaves primárias agora suportam escritas via bulk load, que consomem menos recursos do Hologres do que o método anterior de cópia JDBC.

Geral:

  • Adicionado suporte para ativar criptografia em trânsito usando os parâmetros connection.ssl.mode e connection.ssl.root-cert.location.

  • Adicionado parâmetro de timeout para conexões JDBC internas para evitar que conexões de clientes fiquem sem resposta em cenários como reinicializações inesperadas do servidor.

1.17

8.0.4

2.0.x

2.1.x

Source table:

  • Corrigido problema onde uma publication residual poderia impedir o consumo de Binlog após a reconstrução de uma tabela. O conector agora exclui automaticamente a publication antiga.

Geral:

  • Dimension tables e sink tables do Hologres no mesmo job agora compartilham um pool de conexões, aumentando o limite efetivo de conexões.

1.17

8.0.3

2.0.x

2.1.x

Geral:

  • Independentemente da versão da instância do Hologres, dimension tables e sink tables não suportam mais o modo RPC. Caso selecione o modo RPC, ele será automaticamente alternado para o modo jdbc_fixed. Recomenda-se atualizar sua instância caso esteja em uma versão antiga.

Hologres: Data warehouse em tempo real

1,15

6.0.7

  • 1.3.x

  • 2.0.x

  • Source table:

    Adicionada compatibilidade com Hologres V2.0. Se o conector detectar uma conexão com uma instância do Hologres V2.0 ou posterior, ele alternará automaticamente o modo HoloHub Binlog para o modo JDBC Binlog.

  • Dimension table:

    Adicionada compatibilidade com Hologres V2.0. Se o conector detectar uma conexão com uma instância do Hologres V2.0 ou posterior, ele alternará automaticamente o modo RPC para o modo jdbc_fixed.

  • Sink table:

    • Adicionada compatibilidade com Hologres V2.0. Se o conector detectar uma conexão com uma instância do Hologres V2.0 ou posterior, ele alternará automaticamente o modo RPC para o modo jdbc_fixed.

    • Adicionado suporte para atualizações parciais de colunas. É possível inserir apenas os campos declarados na instrução INSERT do Flink. Este recurso simplifica cenários de mesclagem de wide-table.

  • Geral:

    Quando ocorre uma exceção de conversão de registro, o conector agora registra os dados de origem e o resultado da conversão para ajudar na solução de problemas de dirty data.

  • Correções de bugs:

    • Corrigido problema onde o uso do mesmo connectionPoolName para diferentes instâncias ou bancos de dados no mesmo job não gerava erro.

    • Corrigida exceção de ponteiro nulo na versão 6.0.6 que ocorria quando um tipo string em uma dimension table tinha valor null.

Hologres: Data warehouse em tempo real

1,15

6.0.6

1.3.x

Source table:

  • O parâmetro de nome do slot não é mais obrigatório ao consumir dados de Binlog do Hologres no modo JDBC. Slots padrão podem ser criados para permitir transições mais suaves do modo HoloHub.

  • Adicionado novo parâmetro enable_filter_push_down. Source tables em modo batch não aplicam mais pushdown de condições de filtro por padrão. Defina este parâmetro como true para ativar o pushdown de filtros.

Hologres: Data warehouse em tempo real

1,15

6.0.5

1.3.x

  • Geral: Ao iniciar um job, todas as informações de parâmetros são impressas no log do TaskManager para facilitar a solução de problemas.

  • CTAS/CDAS: Adicionado modo tolerante para tipos de dados de campos. Neste modo, se ocorrer uma alteração de tipo de dados na origem, a mudança é considerada bem-sucedida desde que os tipos original e novo possam ser normalizados para o mesmo tipo.

  • Hologres Catalog: Aprimorada a sintaxe ALTER TABLE para suportar modificação de propriedades de tabelas físicas do Hologres, incluindo alteração de nomes de tabelas, adição de colunas, renomeação de colunas e modificação de comentários de colunas.

1,15

6.0.3~6.0.4

1.3.x

Source table:

  • Adicionado modo JDBC para consumo de dados de Binlog do Hologres. Este modo suporta mais tipos de dados e permite contas personalizadas.

  • Adicionado suporte para pushdown de filtros em source tables batch e na fase completa de source tables para dados completos e incrementais.

Sink table:

Adicionado suporte para escrita de dados no modo Fixed Copy. O Fixed Copy é um novo recurso do Hologres V1.3. Comparado ao modo JDBC, o modo Fixed Copy oferece maior throughput e menor latência de dados via streaming, além de reduzir o consumo de memória do cliente ao eliminar o batching.

Hologres Catalog:

  • Adicionado suporte para definir propriedades padrão de tabela ao criar um catalog.

Parâmetro sdkMode: Diferentes modos estão disponíveis para diferentes tipos de tabelas no Hologres. O parâmetro sdkMode agora consolida a seleção de modo.

1.13

4.0.18

1.1 e posterior

Corrigido problema onde o relatório de métricas para uma sink table degradava o desempenho de escrita.

1.13 e 1,15

4.0.15 e 6.0.2

1.1 e posterior

Source table:

  • Source tables batch agora diferenciam maiúsculas de minúsculas por padrão.

  • Adicionado suporte para configurar timeout de transação em operações Scan em source tables batch.

  • Corrigido problema onde a análise de strings complexas em source tables batch poderia falhar.

  • Adicionado modo Upsert para source tables de dados completos e incrementais.

Dimension table:

Adicionado suporte para configurar timeout de requisição assíncrona (asyncTimeoutMs) para dimension tables do Hologres.

Sink table:

  • Adicionado suporte para a sintaxe PARTITION BY para definir uma tabela particionada ao criar uma sink table do Hologres com CTAS.

  • Métricas suporta a métrica currentSendTime.

1.13

4.0.13

1.1 e posterior

  • Adicionado suporte para source tables de dados completos e incrementais.

  • Adicionado suporte para a API DataStream.

1.13

4.0.11

0.10 e posterior

Adicionado suporte para CTAS e CDAS.

1.13

4.0.8

0.10 e posterior

Adicionado suporte para Hologres Catalog em sink tables, source tables e dimension tables.

Gerenciar catalogs do Hologres

1.13

3.0.0

0.9 e posterior

Adicionado suporte para consumo de dados em tempo real do Hologres.

Fully managed Flink

Problemas conhecidos e correções

  • Notas sobre problemas e correções

    • As versões afetadas para cada problema são claramente especificadas. Versões fora do intervalo listado não são afetadas.

    • Se a versão afetada estiver marcada como "N/A", o problema pode ser um defeito no mecanismo do Hologres, e não no conector.

  • Níveis de severidade

    • P0 (Crítico): Recomenda-se atualização imediata. A ocorrência deste problema pode afetar operações de produção, como a correção de consultas ou taxas de sucesso de escrita.

    • P1 (Alto): Recomenda-se atualização para prevenir problemas potenciais.

    • P2 (Médio): Atualização opcional. Estes problemas ocorrem intermitentemente e podem ser resolvidos com uma solução alternativa ou reinicialização do job.

Severidade

Descrição

Versão afetada

Versão corrigida

Solução

P0

Ao gravar em um subconjunto de colunas em uma result table, se campos não escritos tiverem um valor padrão relacionado a tempo (como current_timestamp ou now()), o valor preenchido pode estar incorreto. Isso ocorre porque o modo FixedFE não lida corretamente com valores padrão relacionados a tempo.

11.0-11,5

N/A

Use a função now() do lado do Flink para passar o valor ao campo correspondente na result table. Alternativamente, defina o parâmetro connection.fixed.enabled como false.

P0

Durante o consumo de Binlog, se uma coluna física e uma coluna de metadados compartilharem o mesmo nome, como table_name, o conector lê incorretamente o valor da coluna de metadados em vez da coluna física, resultando em dados incorretos.

8.0.11, 11.0-11,4

11,5

Atualize para a versão 11,5 ou posterior e defina scan.binlog.prefer.physical-column.over.metadata como true. Alternativamente, evite declarar colunas físicas com os mesmos nomes das colunas de metadados na DDL da source table de Binlog.

P1

Durante o consumo de Binlog, o column pruning pode ler dados nas colunas erradas. Isso ocorre porque o holo-client pode recuperar colunas inesperadas ao lidar com column pruning.

11,3-11,5

Hotfixes foram lançados para todas as versões afetadas (11,3-11,5).

Um hotfix resolve este problema, tornando improvável sua ocorrência. Para jobs DataStream, use a versão mais recente do conector.

P2

O scanner de uma dimension table um-para-muitos não fecha corretamente ao parar o job. Isso pode levar a vazamentos de recursos ou timeouts de job durante o encerramento. Um problema na lógica interna de encerramento do scanner do holo-client causa esta questão.

Versões anteriores a 11,3

11,4

Atualize para a versão 11,4 ou posterior.

P1

Ao usar o recurso check-and-put, o processamento de um registro de exclusão lança uma NullPointerException (NPE) e causa falha no job.

8.0.11-11,4

11,5

Atualize para a versão 11,5 ou posterior. Alternativamente, evite usar check-and-put em streams que possuem operações de exclusão.

P2

O conector falha ao retomar de um checkpoint se uma tabela foi excluída e recriada enquanto o job estava em execução.

11.0-11,2

11,3

Em ambiente de teste, atualize para a versão 11,3 ou posterior para evitar este problema. Nota: Excluir uma tabela durante o consumo de Binlog afeta a correção dos dados. Portanto, evite reconstruir tabelas durante o consumo de Binlog em ambiente de produção.

P1

A leitura de dados RoaringBitmap através de Binlog JDBC falha e lança uma exceção de análise.

11.0-11,2

11,3

Atualize para a versão 11,3 ou posterior.

P1

Ao consumir de uma tabela fisicamente particionada, se um shard não tiver dados, o conector inicializa incorretamente o Log Sequence Number (LSN) do estado como 0. Isso causa perda de dados quando o job retoma deste estado.

Versões anteriores a 8.0.10, 11.0-11,2

8.0.11, 11,3

Atualize para a versão 8.0.11, ou 11,3 ou posterior.

P1

Escrever um array TEXT que contém um elemento nulo lança uma NPE e causa falha na operação de escrita.

11.0-11,1

11,2

Atualize para a versão 11,2 ou posterior. Alternativamente, garanta que o array TEXT upstream não contenha elementos nulos.

P1

Um conflito entre o sufixo de criação de partição e o particionamento dinâmico causa falha na criação da partição.

11.0-11,2

11,3

Atualize para a versão 11,3 ou posterior.

P2

Exceções não relacionadas a dirty data podem acionar a política de dirty data, fazendo com que exceções válidas sejam tratadas incorretamente (ex.: descartadas silenciosamente).

11.0-11,1

11,2

Atualize para a versão 11,2 ou posterior.

P1

Para uma source table de Integração Completa e Incremental, o Binlog JDBC começa a consumir em LSN+1. Se o LSN atual já estiver em um checkpoint, retomar a partir dele pode pular um registro.

8.0.10 e anterior

8.0.11

Atualize para a versão 8.0.11.

P2

Em um cenário CTAS, se uma exclusão de coluna e uma alteração de tipo ocorrerem na mesma operação, um erro de normalização de tipo causa falha na alteração do schema.

8.0.10 e anterior

8.0.11

Atualize para a versão 8.0.11. Alternativamente, evite excluir uma coluna e alterar um tipo na mesma operação.

P2

Ao usar uma dimension table de catalog, a validação de fábrica dos parâmetros de Binlog causa uma exceção falso-positiva.

8.0.10 e anterior

8.0.11

Atualize para a versão 8.0.11.

P2

Em cenários com múltiplas tabelas, um número excessivo de requisições de polling JDBC causa timeout no SQL Gateway.

11.0-11,5

11,6

Atualize para a versão 11,6. Alternativamente, reduza o número de tabelas do Hologres em um único job.

P2

Quando o modo FixedFE é selecionado, se uma tabela contiver um tipo de dados não suportado pelo FixedFE, a conexão não faz downgrade automático para uma conexão FE, causando exceções de escrita ou consulta.

11.0-11,2

11,3

Atualize para a versão 11,3 ou posterior. Alternativamente, especifique manualmente o modo de conexão FE.

P1

Ao consumir um Binlog no modo JDBC, pode ocorrer uma exceção "Binlog Convert Failed", ou a leitura de dados de alguns shards pode travar. Isso acontece porque o gateway da instância do Hologres apresenta um problema ao retornar uma exceção de timeout de backend para o cliente, fazendo com que a operação de leitura trave ou falhe com erro de análise.

N/A

N/A

Este problema é mais provável de ocorrer quando o backpressure do job é alto. Se a leitura de dados travar, reinicie o job e retome do checkpoint mais recente.

Para resolver completamente este problema, atualize sua instância do Hologres para a versão 2.2.21 ou posterior.

P2

Jobs demoram para implantar ou atingem timeout. Uma análise de thread dump mostra que o processo está travado em GetTableSchema.

N/A

N/A

Este problema pode ter várias causas. Siga estes passos para solucioná-lo:

  1. Verifique a conectividade de rede entre o cluster Flink e a instância do Hologres.

  2. Defina o parâmetro jdbcRetryCount como 1 para garantir que a causa raiz da exceção não seja ocultada por tentativas internas.

  3. No Hologres V2.0 e anterior, operações DDL frequentes podem causar atrasos na limpeza de metadados, o que pode tornar lentas as consultas de metadados de tabela. Recomenda-se atualizar sua instância do Hologres para V2.1 ou posterior.

P0

Ao gravar dados TEXT, JSON ou JSONB no Hologres no modo FixedFE (que corresponde ao modo jdbc_fixed do conector), um caractere inválido na fonte de dados pode lançar uma exceção inesperada. Isso pode fazer com que o nó FE conectado reinicie, interrompendo a conexão.

N/A

N/A

Se não for possível garantir a validade da string upstream, grave dados no modo JDBC e ative uma configuração para a result table.

O parâmetro remove-u0000-in-text.enabled.

Alternativamente, atualize sua instância do Hologres para a versão 3,0 ou posterior para continuar usando o modo jdbc_fixed.

P1

Ao realizar um join um-para-muitos em uma dimension table JDBC, tarefas do Flink podem apresentar alto uso de memória ou erro Out Of Memory (OOM).

N/A

N/A

No Hologres V1.3, se você usar prefix scan e o número de resultados da consulta exceder o valor de jdbcScanFetchSize, consultas em lote podem não terminar. Como solução alternativa, defina jdbcScanFetchSize com um valor alto, como 100000.

Para resolver completamente este problema, atualize sua instância do Hologres para V2.0 ou posterior.

P1

Um job de Binlog lança a exceção the table id parsed from checkpoint is different from the current table id durante recuperação com estado. O motivo é que o job executou uma operação TRUNCATE ou recriou a tabela durante uma execução anterior. O checkpoint armazena o ID da tabela da inicialização inicial do job, que não corresponde ao ID atual da tabela.

8.0.4

8.0.9

A partir da versão 8.0.9, a verificação do ID da tabela não é mais imposta. Em vez disso, um aviso é registrado, permitindo que o job retome do estado mais recente. No entanto, evite reconstruir uma tabela enquanto um job de Binlog está em execução, pois esta operação causa a perda de todos os dados anteriores do Binlog.

P2

Ocorre backpressure enquanto um job está em execução. Um thread dump mostra que o pool de execução está travado no método close() ou start(). Isso pode acontecer se múltiplos clientes compartilharem o mesmo pool de conexões, levando a um deadlock que impede o fechamento adequado do pool.

8.0.5

8.0.9

Atualize a versão do conector.

P2

Se executar um job para consumo completo e incremental após realizar uma operação DELETE FROM na source table, a fase de consumo completo re-consome todos os dados do Binlog desde o início, pois não há dados disponíveis na fase incremental.

8.0.6 e anterior

8.0.7

Atualize a versão do conector ou especifique um horário de início para o consumo incremental.

P1

Se uma dimension table contiver um grande número de campos, a implantação do job atinge timeout.

8.0.6

8.0.7

Atualize a versão do conector.

P0

Quando o parâmetro enable_filter_push_down está ativado para uma source table batch, o filtro não entra em vigor. Como resultado, o conector ainda lê dados que deveriam ter sido filtrados.

Nota

Este problema não afeta source tables de Integração Completa e Incremental ou source tables de Binlog.

8.0.5 e anterior

8.0.6

Atualize a versão do conector.

P0

Ao gravar dados JSON ou JSONB no Hologres no modo FixedFE (que corresponde ao modo jdbc_fixed do conector), se os dados de origem contiverem campos JSON ou JSONB inválidos, o nó FE conectado reinicia e a conexão FE é interrompida.

8.0.5 e anterior

Nenhuma

Se a validade das strings JSON ou JSONB upstream não puder ser garantida, use o modo JDBC para gravar os dados.

P1

Ao realizar um join um-para-muitos em uma dimension table JDBC, exceções internas como falhas de conexão não são lançadas adequadamente. Isso pode se manifestar como backpressure no nó de join assíncrono, causando a parada do fluxo de dados. Este problema ocorre raramente.

6.0.7 e anterior

8.0.3

Atualize a versão do conector. Você também pode reiniciar o job como solução temporária.

P1

Ocorre vazamento de memória ao consumir dados de Binlog no modo JDBC. Isso pode se manifestar como uma alta taxa de consumo no início do job, que então diminui continuamente.

6.0.7 e anterior

6.0.7

Atualize a versão do conector. Para jobs DataStream, é necessário usar a dependência da versão 6.0.7-1.

P0

Ao gravar no modo JDBC, exceções capturadas durante um flush agendado (controlado pelo parâmetro jdbcWriteFlushInterval) não são lançadas até que o próximo registro de dados seja processado. Se o tráfego de escrita for baixo, um checkpoint pode ser criado com sucesso enquanto uma exceção foi capturada, mas ainda não lançada. Se ocorrer uma falha subsequente, o job retomará deste checkpoint inválido, o que pode levar à perda de dados.

6.0.6 e anterior

6.0.7

Este problema é mais provável de ocorrer com baixo tráfego. Atualize a versão do conector ou defina o jdbcWriteFlushInterval para um intervalo maior que o do checkpoint.

P2

Ao consumir dados de Binlog no modo JDBC sem definir um nome de slot, o sistema cria um automaticamente. Se o nome da tabela ou schema contiver caracteres especiais, o nome do slot gerado automaticamente é inválido e causa erro de sintaxe.

6.0.6

6.0.7

Atualize a versão do conector. Para jobs DataStream, é necessário usar a dependência da versão 6.0.7-1.

P1

Se diferentes instâncias ou bancos de dados do Hologres no mesmo job usarem o mesmo connectionPoolName, podem ocorrer exceções como "table not found".

6.0.6 e anterior

6.0.7

Use um connectionPoolName diferente para cada instância ou banco de dados do Hologres usado no mesmo job.

P1

Uma NPE é lançada se uma dimension table contiver um campo string com valor null.

6.0.6

6.0.7

Atualize a versão do conector.

P0

O pushdown de filtros está ativado por padrão para source tables do Hologres. No entanto, se um job também usar uma dimension table do Hologres, e o DML de escrita contiver um filtro em um campo não primário da dimension table, o filtro também é aplicado incorretamente à dimension table. Isso pode causar resultados incorretos no join da dimension table.

6.0.3-6.0.5

6.0.6

Atualize a versão do conector.

P0

Se múltiplas result tables tiverem configurações diferentes de mutatetype, mas compartilharem o mesmo connectionPoolName para reutilizar um pool de conexões, as configurações de mutatetype podem ser sobrescritas, fazendo com que não tenham efeito.

6.0.2 e anterior

6.0.3

Defina o mutatetype de todas as result tables como InsertOrUpdate. Alternativamente, use um connectionPoolName diferente para tabelas com configurações distintas de mutatetype.

P1

Uma NPE é lançada se o campo hg_binlog_timestamp_us for declarado na DDL de uma source table de Binlog.

6.0.2

6.0.3

Não use este campo ou atualize a versão do conector.

P1

O relatório de métricas afeta o desempenho de escrita das result tables. Um thread dump do nó sink mostra que ele está travado em reportWriteLatency.

4.0.15-4.0.17

4.0.18

Use uma versão que não seja afetada por este problema.

P2

Ao ler dados do tipo STRING ou STRING ARRAY de uma source table batch, a análise falha se os dados contiverem caracteres especiais.

4.0.14 e anterior

4.0.15

Remova os dirty data da source table ou atualize a versão do conector.

P2

Se declarar campos específicos de Binlog, como hg_binlog, na DDL de uma source table para Integração Completa e Incremental, os dados completos não poderão ser consumidos.

4.0.13

4.0.14

Evite usar o recurso de Integração Completa e Incremental ou atualize a versão do conector.