全部產品
Search
文件中心

DataHub:常見問題

更新時間:Jul 01, 2025

許可權問題

報錯顯示如下:

com.aliyun.datahub.exception.NoPermissionException: No permission, authentication failed in ram

沒有許可權,一般是子帳號沒有授權導致,授權文檔:在RAM中添加許可權,可以參考許可權控制

RDS VPC 報錯

報錯顯示如下:

InvalidInstanceId.NotFound:The instance not in current vpc

解決辦法:

  1. 查詢執行個體詳情

  2. 輸入服務地址和執行個體ID,如下圖所示vpc-2

  3. 點擊調試,在返回的結果中尋找VpcCloudInstanceIdvpc-3

  4. 返回DataHub同步RDS頁面,將擷取到的VpcCloudInstanceId填入執行個體ID框內

jar包衝突

使用Java SDK,常見jar包衝突有以下幾種

  • InjectionManagerFactory not found

    • SDK預設依賴jersey-client 2.22.1版本,如果使用者依賴高版本,需要增加依賴。

  <dependency>
      <groupId>org.glassfish.jersey.inject</groupId>
      <artifactId>jersey-hk2</artifactId>
      <version>xxx</version>
    </dependency>
  • java.lang.NoSuchFieldError: EXCLUDE_EMPTY

    • jersey-common庫版本太低,建議使用或高於SDK依賴版本,即 >= 2.22.1

  • Error reading entity from input stream

    • 原因1:httpclient版本太低,版本 >= 4.5.2

    • 原因2: 使用了新的資料類型,和SDK版本不匹配,需要升級SDK版本

  • jersey-apache-connector高版本有tcp連結bug

    • 使用2.22.1版本

  • java.lang.NosuchMethodError:okhttp3.HttpUrl.get(java/lang/String:)okhttp3/HttpUrl

    • 看下 mvn dependency:tree 是否有其他組件依賴來衝突的 okhttp版本

  • javax/ws/rs/core/ResponseStatusFamily

    • 檢查javax.ws.rs包依賴情況,比如是否錯誤依賴了jsr311-api

其他問題

  • Parse body failed,Offset: 0

    • 一般出現寫入資料時,在專有雲的datahub中,因版本較低,所以不支援protobuf的二進位傳輸模式,而一些SDK預設都是開啟二進位傳輸的,需要手動關閉即可。

    • Java SDk

datahubClient = DatahubClientBuilder.newBuilder()
    .setDatahubConfig(
        new DatahubConfig(endpoint,
            // 是否開啟二進位傳輸,服務端2.12版本開始支援
            new AliyunAccount(accessId, accessKey), true))
    .build();
  • Python SDK

# Json mode: for datahub server version <= 2.11
dh = DataHub(access_id, access_key, endpoint, enable_pb=False)
  • GO SDK

config := &datahub.Config{
    EnableBinary:   false,
}
dh := datahub.NewClientWithConfig(accessId, accessKey, endpoint, config)
  • logstash

添加配置 enable_pb => false

  • Request body size exceeded

    • 表示BodySize超過限制,建議使用者對照限制描述

  • Record field size not match.

    • 表示傳入的schema參數與Topic中的schema不符合,建議採用getTopic來擷取schema。

  • The limit of query rate is exceeded.

    • 為了保證資源的有效利用,datahub伺服器對請求的QPS進行了限制,出現這種情況一般是寫入或者讀取的頻率過高,建議批量寫入和批量讀取,例如每1分鐘寫入一次,每次讀取1000條record。

  • Num of topics exceed limit

    • 新版本datahub中限制每個project中最多20個Topic。

  • SeekOutOfRange

    • 點位參數非法或者點位已經失效。

  • Offset session has changed

    • 訂閱是無法進行並行消費,請檢查程式中是否存在多處消費同一個訂閱的情況。

  • sink to odps,Decimal是否支援

    • 支援沒有指定精度的decimal,預設(36,18)

  • addAttribute是什麼意思

    • recordEntry.addAttribute(“key1”, “value1”)可以對一條record添加額外屬性,可選項,可以根據實際的情境進行添加。

  • 如何刪除Topic中的資料

    • datahub目前不支援刪除Topic中的資料,建議採用重設點位來讓資料失效。

  • 在配置所定義的OSS路徑下以隨機檔案名稱建立檔案,每個Shard對應一個檔案,當檔案大小達到5GB時,將建立新檔案 ,可以修改嗎?

    • 不能修改

  • ADS無法訪問公網網域名稱的解決方案

    • 需要在ads申請內網網域名稱,連上資料庫,指向alter database set intranet_vip = true,然後查詢 select internal_domain, internal_port from information_schemata;