# データ タスクのトラブルシューティング

このセクションでは、データ タスクの操作時に発生する可能性がある問題と、トラブルシューティング方法について説明します。

## 環境エラーのトラブルシューティング

データ タスクでタイムアウト、ネットワーク エラー、接続エラーなどの環境エラーが発生すると、データ タスクは自動的に操作を再試行します。再試行してもエラーが解決されない場合、データ タスクは実行を停止し、エラー メッセージとともにステータス [エラー] を表示します。

* Data Movement gateway 経由でのみアクセス可能なデータ ソースを使用したランディング タスク:

  操作は、5 秒間隔で無限に再試行されます。

  停止時間が長い場合、1800 秒に達するまで間隔は 2 倍になります。

* Data Movement gateway なしでアクセスできるデータ ソースを使用したランディング タスク、ストレージ タスク、変換タスク、データ マート タスク:

  操作は、1 秒間隔で 3 回再試行されます。

次の手順に従ってください:

1. エラー メッセージを使用してエラーを解決します。

2. データ タスクの操作をリロードまたは再開します。

## 特定のテーブルに関する問題のトラブルシューティング

特定のテーブルへの書き込み中にデータ タスクでエラーが発生した場合、データ タスクは実行を継続します。エラーのあるテーブルには、ステータス [エラー] とエラー メッセージが表示されます。

1. エラー メッセージを使用してエラーを解決します。

2. エラーが発生したテーブルをリロードします。

## CDC の問題のトラブルシューティング

[フル ロードおよび CDC] 更新モードでデータ タスクをランディングすると、タスク全体に影響を与える CDC 関連の問題が発生する可能性があり、特定のテーブルをリロードしても解決できません。問題の例としては、イベントの欠落、ソース データベースの再編成による問題、ソース データベース イベントの読み取り時の失敗などがあります。

このような問題を解決するには、すべてのテーブルをターゲットにリロードします。

1. データ タスクとそれを消費するすべてのタスクを停止します。

2. データ タスクを開き、 [監視] タブを選択します。

3. [ ...] 、 [ターゲットをリロード] の順にクリックします。

これにより、Drop-Create を使用してすべてのテーブルがターゲットにリロードされ、今後すべての変更データ キャプチャが再開されます。

* ランディング データ タスクを消費するストレージ タスクは、比較によってリロードされ、次回の実行時に適用されて同期されます。既存の履歴は保持されます。タイプ 2 の履歴は、リロードと比較処理が実行された後に変更を反映して更新されます。

  タイプ 2 の履歴の開始日の日付と時刻はリロード日を反映し、必ずしもソースで変更が発生した日付とは限りません。

* ターゲットのリロード操作中、およびストレージが同期されるまで、ストレージ ライブ ビューは信頼できません。ストレージは次の場合に完全に同期されます。

  * すべてのテーブルが比較と適用を使用してリロードされた場合。

  * 各テーブルに対して 1 サイクルの変更が実行された場合。

詳細については、「[すべてのテーブルをターゲットにリロードする](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/Landing-data-data-sources.htm#Reloadin)」を参照してください。

## 主キー列の NULL 値

データ タスクを実行すると、「Unknown execution error - NULL result in a non-nullable column」のエラー メッセージが表示される場合があります。

考えられる原因

主キーとして使用される列には NULL 値を含めてはならず、NULL 非許容にする必要があります。

提案されたアクション

ソース データ タスクに、すべての NULL 値を値 (0 など) に変換する式を追加します。

主キーとして使用する別の列を選択することもできます。

## Redshift をデータ プラットフォームとして使用する場合のキャスト エラー

Redshift をデータ プラットフォームとして使用すると、次のようなエラーが発生する場合があります: 「不明」から文字可変への変換関数が見つかりませんでした

考えられる原因

定数式のキャストがありません。最終的なクエリがより複雑になるため、データマートではこのような現象がより頻繁に発生する可能性があります。

提案されたアクション

定数式をテキストとしてキャストします。

```
cast ('my constant string' as Text)
```

## あいまいな列名

Qlik Talend Data Integration パイプラインで作成されたビューに基づいてデータを登録すると、そのビューには Qlik Talend Data Integration によって生成された列が含まれる場合があります。hdr\_\_ で始まるこれらの列の名前は予約されています。予約名を持つ列がストレージ タスクで使用されると、ストレージ タスクは同じ予約名を持つ列を作成し、名前の競合が発生します。たとえば、hdr\_\_key\_hash という名前の列を 2 つ持つことができます。

ビューでの予約列名の詳細については、「[ビュー](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Storage/dataset-tables.htm#Views)」を参照してください。

提案されたアクション

ストレージ データ タスク内の登録済みデータ タスクから取得された列の名前を変更します。たとえば、hdr\_\_key\_hash の名前を my\_\_key\_hash に変更します。

## 変換は既存のデータには適用されません

既存のデータを使用してタスクの変換を追加または変更しましたが、タスクを再度準備して実行すると、新しい変換または変更された変換は新しいデータにのみ適用されます。

提案されたアクション

新しい変換または変更された変換を既存のすべてのデータに適用する場合は、影響を受けるすべてのテーブルをリロードします。