権限に関するエラー
エラーメッセージ:
com.aliyun.datahub.exception.NoPermissionException: No permission, authentication failed in ram
このエラーは、RAM ユーザーの権限が不足していることを示しています。RAM ユーザーに必要な権限を付与してください。詳細については、「アクセス制御」をご参照ください。
VPC 内の ApsaraDB RDS インスタンスに関するエラー
エラーメッセージ:
InvalidInstanceId.NotFound:The instance not in current vpc
このエラーを解決するには、正しい VPC インスタンス ID を特定し、DataHub コネクタの設定を更新します。
DescribeDBInstanceAttribute API を呼び出して、ApsaraDB RDS インスタンスの詳細を照会します。
[デバッグ] をクリックします。 表示されるパネルで、インスタンスが配置されているリージョン (たとえば、中国 (張家口)) に対応する [サービスアドレス] を選択し、[DBInstanceId] フィールドに対象のインスタンス ID を入力します。
[呼び出し] をクリックします。返された結果から [VpcCloudInstanceId] を見つけます。
{ "ConsoleVersion": "", "InstanceNetworkType": "VPC", "DBInstanceClassType": "x", "DBInstanceId": "rm-8vb46k05zz328je15", "AutoUpgradeMinorVersion": "Manual", "DBInstanceStorage": 50, "AvailabilityValue": "100.0%", "Engine": "MySQL", "IPType": "IPv4", "DBInstanceDiskUsed": 2994733056, "EngineVersion": "5.7", "DBInstanceStatus": "Running", "MaxConnections": 4000, "DBInstanceClass": "mysql.n2.medium.1", "AccountMaxQuantity": 99999, "VSwitchId": "vsw-8vb4860o3kz50f61sf99g", "PayType": "Prepaid", "LockMode": "Unlock", "SupportCreateSuperAccount": "Yes", "InsId": 1, "VpcId": "vpc-8vb4xj9ejcxynoz7alnyp", "CurrentKernelVersion": "rds_20191212", "TempUpgradeTimeStart": "2021-04-03 00:00:00", "TempUpgradeTimeEnd": "2021-04-11 00:00:00", "CreationTime": "2020-01-10T05:47:03Z", "ConnectionMode": "Standard", "VpcCloudInstanceId": "rm-8vb4Cxxx", "ProxyType": 0, "ConnectionString": "rm-8vb46k05zz328je15.mysql.zhangbei.rds.aliyuncs.com", "ExpireTime": "2021-04-10T16:00:00Z" }ApsaraDB RDS にデータを同期する DataHub コネクタパネルで、[インスタンス ID] フィールドに VPC インスタンス ID を入力します。
JAR パッケージの競合に関するエラー
以下は、DataHub SDK for Java を使用する際によく発生する JAR パッケージの競合です。
-
InjectionManagerFactoryが見つかりませんDataHub SDK for Java は、デフォルトで Jersey クライアント V2.22.1 に依存しています。プロジェクトで V2.22.1 より新しい Jersey クライアントを使用している場合は、次の依存関係を追加してください。
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>xxx</version>
</dependency>
-
java.lang.NoSuchFieldError: EXCLUDE_EMPTYjersey-common ライブラリのバージョンが V2.22.1 より古いです。V2.22.1 以降にアップグレードしてください。
-
Error reading entity from input stream原因 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/HttpUrlmvn dependency:treeを実行して、OkHttp クライアントのバージョンが他の依存関係と競合していないか確認してください。
-
javax/ws/rs/core/ResponseStatusFamilyjavax.ws.rsパッケージの依存関係 (例えば、jsr311-apiへの依存など) を確認してください。
その他のエラー
-
Parse body failed, Offset: 0このエラーは通常、書き込み時に発生します。旧バージョンの Apsara Stack DataHub はプロトコルバッファのバイナリ転送をサポートしていませんが、一部の SDK ではデフォルトで有効になっています。SDK のバイナリ転送を無効にしてください。
Java SDK
datahubClient = DatahubClientBuilder.newBuilder()
.setDatahubConfig(
new DatahubConfig(endpoint,
// バイナリデータ転送を無効に設定します。古いバージョンの DataHub サーバーはバイナリ転送をサポートしていません。
new AliyunAccount(accessId, accessKey), false))
.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 に設定してください。
-
Request body size exceededリクエストボディがサイズ制限を超えています。制限については、「制限事項」をご参照ください。
-
Record field size not match.指定したスキーマがトピックのスキーマと一致しません。
getTopicを呼び出して、正しいスキーマを取得してください。
-
The limit of query rate is exceeded.DataHub は、公平なリソース使用を確保するために QPS (秒間クエリ数) 制限を適用しています。データをバッチで書き込みまたは読み取ってください。例えば、1 分ごとにバッチを書き込み、1 バッチあたり最大 1,000 件のレコードを読み取ります。
-
Num of topics exceed limitDataHub の最新バージョンでは、1 つのプロジェクトに最大 20 個のトピックを含めることができます。
-
SeekOutOfRangeoffsetパラメータが無効であるか、有効期限が切れています。
-
Offset session has changedサブスクリプションは、一度に 1 つのコンシューマーのみが利用できます。同じサブスクリプションを共有する複数のコンシューマーがないか、プログラムを確認してください。
-
DECIMAL データを MaxCompute に同期できますか?
はい。MaxCompute は、明示的な精度を持たない DECIMAL 値をサポートしています。デフォルトでは、DECIMAL 値は小数点の左右それぞれに最大 18 桁を持つことができます。
-
addAttributeメソッドは何をしますか?addAttribute()を使用すると、要件に応じてレコードに追加の属性を追加できます。これらの属性はオプションです。
-
トピックからデータを削除するにはどうすればよいですか?
DataHub は、トピックからのデータの削除をサポートしていません。データを破棄するには、
オフセットをリセットしてデータをスキップしてください。
-
OSS に保存されるシャードデータの 5 GB ファイルサイズ制限を変更できますか?
いいえ。各シャードのデータは、指定された Object Storage Service (OSS) パス内のランダムな名前のファイルに書き込まれます。ファイルが 5 GB に達すると、新しいファイルが自動的に作成されます。この制限は変更できません。
-
AnalyticDB for MySQL インスタンスがパブリックエンドポイントにアクセスできません。どうすればよいですか?
AnalyticDB for MySQL で内部エンドポイントを申請してください。インスタンスにログインし、
alter database set intranet_vip = trueを実行して内部接続を有効にしてから、select internal_domain, internal_port from information_schemaを実行してエンドポイントを取得します。