すべてのプロダクト
Search
ドキュメントセンター

DataHub:FAQ

最終更新日:Oct 21, 2025

権限関連のエラー

エラーメッセージ:

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

このエラーメッセージは、RAM ユーザーに必要な権限がないことを示しています。RAM ユーザーに権限を付与する方法の詳細については、「アクセス制御」をご参照ください。

VPC 内の ApsaraDB RDS インスタンス関連のエラー

エラーメッセージ:

InvalidInstanceId.NotFound:The instance not in current vpc

解決策:

  1. DescribeDBInstanceAttribute 操作を呼び出して、ApsaraDB RDS インスタンスの詳細をクエリします。

  2. [デバッグ] をクリックします。表示されるページの右側で、次の図に示すように、リージョンを選択し、インスタンス ID を入力します。vpc-2

  3. [呼び出し] をクリックします。返された結果で VpcCloudInstanceId を探します。vpc-3

  4. DataHub から ApsaraDB RDS にデータを同期するためのパネルに移動します。次に、インスタンス ID フィールドに取得した VPC のインスタンス ID を入力します。

JAR パッケージの競合関連のエラー

DataHub SDK for Java を使用するときに発生する可能性のある一般的な JAR パッケージの競合

  • InjectionManagerFactory が見つかりません

    • デフォルトでは、DataHub SDK for Java は Jersey client V2.22.1 に依存しています。V2.22.1 よりも新しいバージョンの Jersey client を使用する場合は、SDK に依存関係を追加する必要があります。

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

    • jersey-common ライブラリのバージョンが V2.22.1 よりも前です。 jersey-common ライブラリ V2.22.1 以降を使用することをお勧めします。

  • 入力ストリームからのエンティティの読み取りエラー

    • 原因 1:HTTP クライアントのバージョンが V4.5.2 よりも前です。HTTP クライアントのバージョンを V4.5.2 以降にアップグレードしてください。

    • 原因 2:現在のバージョンの SDK は特定のデータ型をサポートしていません。SDK をアップグレードする必要があります。

  • V2.22.1 よりも新しいバージョンの jersey-apache-connector には、TCP 接続に関連するバグが含まれています。

    • V2.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 パッケージの依存関係を確認します。たとえば、javax.ws.rs パッケージが jsr311-api に依存しているかどうかを確認します。

その他のエラー

  • Parse body failed, Offset: 0

    • ほとんどの場合、このエラーはデータの書き込み中に発生します。以前のバージョンの Apsara Stack DataHub は、protocol buffer のバイナリデータ送信をサポートしていません。ただし、一部の SDK では、バイナリデータ送信がデフォルトで有効になっています。このような場合は、バイナリデータ送信を手動で無効にする必要があります。

    • Java SDK

datahubClient = DatahubClientBuilder.newBuilder()
    .setDatahubConfig(
        new DatahubConfig(endpoint,
            // バイナリデータ送信を有効にするかどうかを指定します。DataHub SDK for Java V2.12 以降では、サーバーはバイナリデータ送信をサポートしています。
            new AliyunAccount(accessId, accessKey), true))
    .build();
  • Python SDK

# Json モード: datahub サーバーバージョン <= 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 に設定します。

  • リクエスト本文のサイズが上限を超えています

    • このエラーメッセージは、リクエスト本文のサイズが上限を超えていることを示しています。詳細については、「制限」をご参照ください。

  • レコードフィールドのサイズが一致しません。

    • このエラーメッセージは、指定されたスキーマが Topic のスキーマと一致しないことを示しています。 getTopic メソッドを呼び出してスキーマを取得することをお勧めします。

  • クエリレートの制限を超えました。

    • リソースの効率的な使用を確保するために、DataHub で処理される 1 秒あたりのクエリ数 (QPS) に制限を設定しています。データの読み取りまたは書き込みの頻度が上限を超えると、このエラーが発生します。データをバッチで読み書きすることをお勧めします。たとえば、1 分ごとにデータをバッチ書き込みし、データのバッチ書き込みごとに 1,000 レコードを読み取ることができます。

  • Topic の数が制限を超えています

    • 最新バージョンの DataHub では、プロジェクトに含めることができる Topic の最大数は 20 に設定されています。

  • SeekOutOfRange

    • オフセットパラメータが無効であるか、オフセットの有効期限が切れています。

  • オフセットセッションが変更されました

    • サブスクリプションは、複数のコンシューマーによって同時に使用することはできません。プログラム内でサブスクリプションが複数のコンシューマーによって使用されていないかどうかを確認します。

  • DECIMAL 型のデータを MaxCompute に同期できますか?

    • 精度の無い DECIMAL 型のデータは、MaxCompute でサポートされています。デフォルトでは、DECIMAL 値は小数点の両側に最大 18 桁を含めることができます。

  • addAttribute メソッドは何をしますか?

    • addAttribute() メソッドを使用して、ビジネス要件に基づいてレコードに追加の属性を追加できます。追加の属性はオプションです。

  • Topic からデータを削除するにはどうすればよいですか?

    • DataHub では、Topic からデータを削除することはできません。ただし、オフセットをリセットしてデータを無効にすることはできます。

  • シャード内のデータは、指定された Object Storage Service (OSS) パスにあるファイルに保存されます。ファイル名はランダムに生成されます。ファイルサイズが 5 GB を超えると、シャードからのデータを保存するために別のファイルが作成されます。ファイルサイズを変更できますか?

    • いいえ、ファイルサイズを変更することはできません。

  • AnalyticDB for MySQL インスタンスがパブリックエンドポイントにアクセスできない場合はどうすればよいですか?

    • AnalyticDB for MySQL で内部エンドポイントを申請する必要があります。 AnalyticDB for MySQL インスタンスにログオンし、alter database set intranet_vip = true 文を実行してデータベースに接続してから、select internal_domain, internal_port from information_schemata 文を実行してエンドポイントをクエリします。