Todos os produtos
Search
Central de documentação

Realtime Compute for Apache Flink:Perguntas frequentes sobre catálogos

Última atualização: Jun 27, 2026

Este tópico aborda erros comuns de catálogo no Realtime Compute for Apache Flink, incluindo problemas com Hologres Catalog, MySQL catalog, Hive catalog e a instrução CREATE TABLE AS (CTAS).

O job do Hologres Catalog termina sem consumir dados em tempo real

Sintomas

O job do Flink conclui a leitura dos dados existentes no Hologres e encerra em seguida, sem aguardar a chegada de novos registros.

Causa

Por padrão, o Realtime Compute for Apache Flink lê dados do Hologres no modo batch, não no modo streaming.

Solução

Adicione a dica /*+ OPTIONS('binlog'='true') */ à consulta SQL para alternar para o modo streaming:

INSERT INTO testfinish
SELECT
  col1,
  col2,
  col3
FROM testsource /*+ OPTIONS ('binlog' = 'true') */
   LEFT JION testdim /*+ OPTIONS ('binlog' = 'true') */
         ON testsource.co11 = testdim.'col1';

Erro na interface CatalogTableProvider com CREATE TABLE AS

Mensagem de erro

org.apache.flink.table.api.ValidationException: SQL validation failed. CREATE TABLE ... AS TABLE ... statement requires target catalog 'XXXXXX' (MongoDBCatalog) implements org.apache.flink.table.catalog.CatalogTableProvider interface. Hint: Please refer the document and use another catalog that supports schema evolution as the target catalog.

Causa

O catálogo da tabela de destino não implementa a interface CatalogTableProvider e é incompatível com a instrução CREATE TABLE AS (CTAS). Catálogos MongoDB, por exemplo, não aceitam CTAS como destino.

Solução

Use uma tabela de origem e uma tabela de destino compatíveis com CTAS. Para obter a lista completa de sistemas de armazenamento suportados, consulte CREATE TABLE AS (CTAS).

Consultas ao MySQL catalog estão lentas ou retornam exceções de servidor

Respostas lentas ou exceções de servidor durante consultas ao MySQL catalog geralmente indicam alta latência de rede ou conexões instáveis entre o Flink e o MySQL. Aplique a correção adequada ao seu cenário.

Error details

Causa 1: Largura de banda pública insuficiente

Verifique se a largura de banda pública do Realtime Compute for Apache Flink para o MySQL está muito baixa. A largura de banda pública padrão pode ser de apenas 2 Mbit/s. Confirme também se há acesso entre regiões. Para instruções sobre como visualizar sua largura de banda, consulte Como visualizo a largura de banda pública?

Causa 2: Conexão de rede instável

Aumente os valores dos parâmetros interactive_timeout e wait_timeout na instância MySQL para reduzir a frequência de quedas de conexão.

Causa 3: Tempo limite de conexão muito curto

Inclua a opção 'connect.timeout'='120s' na cláusula WITH ao criar uma tabela para o MySQL catalog:

-- Add to the WITH clause of your CREATE TABLE statement
'connect.timeout' = '120s'

Não é possível obter token STS do meta-service do EMR

Mensagem de erro

Caused by: MetaException(message:Initialize DlfMetaStoreClient failed: Initialize DlfMetaStoreClient failed: Cannot obtain STS token from EMR meta-service. Note that AK-Mode[dlf.catalog.akMode] can only used in EMR clusters, otherwise you should config the dlf.catalog.accessKeyId and dlf.catalog.accessKeySecret explicitly.)
  at com.aliyun.datalake.metastore.hive2.ProxyMetaStoreClient.createClient(ProxyMetaStoreClient.java:91)
  at com.aliyun.datalake.metastore.hive2.ProxyMetaStoreClient.<init>(ProxyMetaStoreClient.java:71)
  ... 41 more

Causa

O arquivo de configuração hive-site.xml contém a definição EMR_AUTO para dlf.catalog.akMode. Essa configuração funciona apenas em clusters E-MapReduce (EMR). Executá-la fora do EMR causa falha na inicialização do Hive catalog.

Solução

Atualize o arquivo hive-site.xml no diretório hive-conf-dir:

  1. Remova a seguinte propriedade:

    <property>
      <name>dlf.catalog.akMode</name>
      <value>EMR_AUTO</value>
    </property>
  2. Adicione seu AccessKey ID e AccessKey secret:

    <property>
        <name>dlf.catalog.accessKeyId</name>
        <value>${AccessKeyId}</value>
      </property>
    <property>
        <name>dlf.catalog.accessKeySecret</name>
        <value>${AccessKeySecret}</value>
      </property>