全部產品
Search
文件中心

Realtime Compute for Apache Flink:Catalog

更新時間:Feb 28, 2025

本文介紹Catalog相關問題。

使用Hologres Catalog讀取Hologres源表時,作業自動完成,未即時消費,應該如何設定?

  • 問題原因

    Flink預設以批模式讀取Hologres源表資料,因此不會即時消費新寫入的資料。

  • 解決方案

    通過Table Hint方式將讀模數式更改為流模式,只需在SQL中添加 /*+ OPTIONS('binlog'='true') */ 參數。程式碼範例如下:

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

報錯:CREATE TABLE ... AS TABLE ... statement requires target catalog ... implements org.apache.flink.table.catalog.CatalogTableProvider interface.

  • 報錯詳情

    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.
  • 報錯原因

    可能是使用了CTAS不支援的上下遊儲存。例如,CTAS不支援MongoDB作為結果表寫入。

  • 解決方案

    CTAS支援的上下遊儲存列表請參見使用限制,您可以從源表和結果表中各選一個進行組合。

MySQL Catalog執行查詢很慢或查詢提示伺服器響應錯誤如何解決?

  • 報錯詳情

    MySQL Catalog建立成功但執行查詢很慢或查詢提示伺服器響應錯誤,如圖所示。問題執行個體

  • 報錯原因

    雲產品與MySQL之間的網路延遲較高或串連頻繁中斷,可能導致查詢效能下降或錯誤發生。

  • 解決方案

    以下三種最佳化方式供您選擇:

    • 判斷雲產品到MySQL走的公網頻寬是否受限(例如有些配置是預設非常小的2 MB),以及是否存在跨Region訪問,詳情可參見如何查看公網頻寬情況?

    • 如果您的網路確實不佳,您可以將MySQL執行個體相關的interactive_timeoutwait_timeout參數取值適當調大。

    • 建立表時,您可以添加WITH參數'connect.timeout'='120s'

報錯:Cannot obtain STS token from EMR meta-service.

  • 報錯詳情

    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
  • 報錯原因

    設定檔有誤導致Hive Catalog初始化異常。

  • 解決方案

    1. 找到hive-conf-dir目錄下的hive-site.xml檔案,刪除如下property資訊。

       <property>
         <name>dlf.catalog.akMode</name>
         <value>EMR_AUTO</value>
       </property>
    2. 配置AccessKeyId和AccessKeySecret。

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