Openflow Connector for Kinesis のトラブルシューティング¶
注釈
このコネクタは、 Snowflakeコネクタ規約 に従うものとします。
このトピックでは、 Openflow Connector for Kinesis の一般的な問題のトラブルシューティング方法について説明します。
一般的な問題¶
メッセージが取り込まれない¶
症状
Kinesis JSON Source プロセスグループ内の ConsumeKinesis プロセッサーは実行中ですが、データは生成されず、エラーメッセージも表示されません。
原因
基になる AWSKCL ライブラリでエラーが発生した可能性がありますが、それがOpenflow UI に伝播されませんでした。
解決策
KCL ログ を確認して、基になるエラーを特定します。
FlowFile キューがいっぱいです¶
症状
FlowFile キューがいっぱいで、コネクタのデータ処理が十分に速くありません。
原因
下流のプロセッサーは、受信データレートを維持できません。最も遅いプロセッサーは、 Streaming Destination プロセスグループ内の PutSnowpipeStreaming 型の Put Data To Snowflake である可能性が最も高いです。
解決策
プロセッサーの同時タスクの数を調整します。同時タスクは、プロセッサーが複数のスレッドを同時に実行できるようにし、大量のシナリオでのスループットを向上させます。
プロセッサーの並行タスクを調整するには、以下のタスクを実行します。
Openflowキャンバスでプロセッサーを右クリックします。
コンテキストメニューから Configure を選択します。
Scheduling タブに移動します。
Concurrent tasks フィールドに、希望する並行タスク数を入力します。
Apply を選択して構成を保存します。
Snowflakeは、次のタスク数の値を推奨していますが、特定のユースケースによって正しい値は異なる場合があります。
小規模ランタイムで1~2
中規模ランタイムで2~4
大規模ランタイムで6~8
タスク数を変更した後、プロセッサーを観察して、タスク数を増やすとスループットが向上することを確認します。
KCL ログを確認する¶
コネクタは内部的に `AWSKinesisクライアントライブラリ(KCL)v3<https://docs.aws.amazon.com/streams/latest/dev/kcl.html>`_ を使用します。KCL で発生したエラーは常にOpenflow UI に伝播されるとは限らないため、トラブルシューティングには KCL ログの確認が必要になる場合があります。
KCL ログは 構成されたイベントテーブル に保存されます。次のクエリで取得できます。
SELECT
timestamp,
runtime_key,
resource_attributes,
log,
log:formattedMessage,
FROM (
SELECT
timestamp,
resource_attributes,
resource_attributes:"openflow.dataplane.id" AS deployment_id,
resource_attributes:"k8s.namespace.name" AS runtime_key,
resource_attributes:"k8s.pod.name" AS runtime_pod,
TRY_PARSE_JSON(value) AS log,
FROM <event_table>
WHERE TRUE
AND timestamp > DATEADD(minute, -30, SYSDATE())
AND record_type = 'LOG'
AND runtime_key = 'runtime-<runtime_name>'
AND resource_attributes:"k8s.container.name" ILIKE '%-server'
)
WHERE TRUE
AND log:loggerName LIKE 'software.amazon.kinesis.%'
AND log:level IN ('WARN', 'ERROR')
ORDER BY timestamp DESC
;
<event_table> with a configured event table name and <runtime_name> をランタイム名に置換します。
一般的な KCL エラー¶
このセクションでは、 KCL ログに表示される可能性のある一般的なエラーとその解決方法について説明します。
エラー: UnknownHostException¶
エラーメッセージ
java.net.UnknownHostException: dynamodb.eu-west-1.amazonaws.com
原因
ランタイムが Snowflakeデプロイを使用している場合、ネットワークルールが正しく設定されていない可能性があります。
解決策
必要な AWS ドメインがネットワークルールで許可リストに登録されていることを確認します。必要なドメインのリストについては、 Openflow - Snowflake Deployment を設定する:Openflowコネクタの許可ドメインの構成 をご参照ください。
エラー:シャードが見つかりません¶
エラーメッセージ
java.lang.IllegalStateException: No shards found when attempting to
validate complete hash range.
原因
このエラーは、Kinesisストリームが存在しない場合や AWS 地域が正しく指定されていない場合に発生する可能性があります。
解決策
KCL ログで次のようなメッセージがないか確認します。
Got ResourceNotFoundException when fetching shard list for stream-name. Stream no longer exists.
ストリーム名が正しく、ストリームが AWS に存在することを確認します。
コネクター構成で AWS リージョンが正しく指定されていることを確認します。