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.

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:
-
Remova a seguinte propriedade:
<property> <name>dlf.catalog.akMode</name> <value>EMR_AUTO</value> </property> -
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>