メインコンテンツまでスキップ
waffle.svg
Domo Knowledge Base

DataFlowとDataFusionのトラブルシューティングとよくある質問

Version 2

 

DataFlow

行のサイズがMySQLでサポートされるものよりも大きくなっています。

これは、文字数が多すぎるテキスト列が1列以上ある場合に最もよく発生します。例えば、説明列は数百の単語を含むことができる、MYSQL表のスペースの多くを使用するため、このエラーを引き起こす原因になります。

この問題を解決するには、特に大きな文字列の列などの不要な列を削除するか、列幅を削除します。

制限とデータサイズの計算方法に関する詳細については、「MySQLドキュメント」を参照してください。

Xデータ型をYデータ型に変換/解析できない

これは、データ型に変換できない値に文字が存在するときに発生します。例えば、文字列の値「z84084」を数値に変換しようとすると、このエラーが表示されます。値のすべての文字は、新しいデータ型に変換できる必要があります。 

このエラーは通常、Appendメソッドを使用して入力DataSetを実行しているときに発生します。これは、データを追加するときにDomoによるデータの検証が実行されないために発生します。つまり、データプロバイダーが同じレポートに列を追加したり、元のスキーマと一致しないデータ型のデータを送信したりすると、このDataSetは、DataFlowに挿入されると壊れる可能性があります。この問題を修復するには、あるデータ型から別のデータ型に変換する前にデータをクリーンアップするか、RunメソッドをReplaceメソッドに変更します。

Magic ETLで10,000行の重複行エラーが発生する

Magic ETLでは、左側の列に同じ値が10,000個以上含まれている場合、結合を実行できません。例えば、 結合の左側の列が注文番号で、注文番号「12345」が10,000行を超える異なる行に存在する場合、これらは重複する値とみなされるため、エラーが発生します。

ETL Join.png

結合で表の位置を変更するだけで、この問題を解決できます。「サンプルデータ」を左側ではなく、右側に移動します。これに応じて結合を変更する必要があることを覚えておいてください。上の例の場合、「HH - ページ」が「サンプルデータ」にまだ結合されていることを確認するために、結合を左側から右側の結合に変更する必要があります。

ETL Duplicate Error Fix.png

DataFlowの実行時間に差異が生じるのはなぜですか?

DomoによるDataFlowの実行方法は、非常に複雑ですが効率的です。Domoのインフラストラクチャは複雑であるため、DataFlowの実行時間に差異が生じます。これは想定どおりで正常な動作です。原則として、DataFlowの入力が大きいほど、差異が大きくなる可能性があります。

DataFlowの最短の実行時間が、DataFlowの予期された実行時間とはみなされません。そのバージョンの平均実行時間でも、DataFlowの実行時に毎回期待できるとは限りません。あくまで平均なのです。

Domoではインフラストラクチャのこの部分に定期的に変更を加えて、一貫性を向上させています。全体的な実行時間を短縮するには、「SQL DataFlowを最適化する」で説明されている原則に従って、DataFlowクエリを最適化する方法を確認してください。以下に示すドキュメントでは、DataFlowの最適化についてさらに詳しく説明しています。

DataFlowがドラフト状態になっているのはなぜですか?

DataFlowがドラフト状態になっている場合、これは通常、トリガーループでキャッチされたことを意味しますつまり、現在のDataFlowをトリガーするために使用している入力により、DataFlowからのアップストリームに入力トリガーの無限のループが発生しています。 

例えば、 DataSet AはDataFlow 1をトリガーします。DataFlow 1はDataSet Bを作成します。DataSet BはDataFlow 2をトリガーします。DataFlow 2はDataSet Aを出力します。これにより、以下に示す無限にトリガーされるDataFlowが発生します。

DataFlow Infographic.png

この問題を解決するには、このループを壊す必要があります。ループの原因となっているDataFlowのトリガーから入力を削除し、設定を保存します。ドラフトフラグがなくなった場合は、トリガーループを壊したことになります。

DataFlowをトリガーする入力を編集します。

  1. Data CenterでDataFlowを検索して選択する 

  2. [設定]を選択します。

  3. このDataFlowの実行をトリガーする/トリガーしない入力の横にあるボックスを選択/選択解除します。

  4. [適用]をクリックします。 

プレビューでは個々の変換がすべて正常に実行されましたが、DataFlowによる全体の実行に失敗したのはなぜですか?

変換でデータを実行してプレビューすると、入力DataSetのすべての行が処理されない場合があります。デフォルトでは、入力には最初の10,000行しか読み込まれていないことにお気づきになるかと思います。DataFlowでエラーが発生して、個々の変換がプレビューウィンドウで正常に実行された場合、DataFlowによりエラーが発生する値は、プレビュー中に処理された最初の10,000行以外にあると考えられます。 

sql_dataflow_number_of_rows.png

DataFlow編集ビューで1万行を超える行を選択して、プレビューで処理される行数を増やします。 

Redshiftプレビューデータが、ORDER BY句で指定した順序になっていないのはなぜですか?

RedshiftがORDER BY句を含むクエリを処理する場合、そのクエリのロジックを処理しながら指定された順序を遵守します。ただし、クエリの実行が完了すると、データを並べ替えて、データの実際のストレージを最適化します。(Redshiftは多くのノードに分散されたデータ表を保存し、独自のストレージ最適化方法に従ってデータを分割します。)Domoがデータのプレビューを取得すると、Redshiftにより並べ替えられて保存された後、表から読み込まれます。Redshiftを使用する場合は、データの特定の順番に依存する個々のクエリごとにORDER BY句を含めることが重要です。以前の変換から保持された順序に依存しないようにしてください。

Blend(DataFusion)

必要な依存関係を読み込めない

これは、入力の1つのスキーマが変更または削除されたため、DataFusionでエラーが発生した可能性があります。Datafusionは、スキーマの変更を自動的に補正するようには設計されていません。大規模なDataSetをすばやく結合できるようにするためのものです。 

DataFusionを編集し、結合を別の結合タイプに変更して保存するだけで、この問題を解決できます。例えば、左結合に設定している場合は、内部結合に変更して保存します。次に、DataFusionを再編集して、元の左結合に戻します。これによりスキーマがリセットされ、問題が修正されます。 

DataFusionの実行時間が遅い

DataFusionの実行時間が遅い理由は一般的に3つあります。

  1. 数字以外の列の結合

  2. 多すぎる列の結合

  3. ネストされたDataFusions(DataFusionを別のDataFusionへの入力として使用します。)

この問題を解決するには、結合を変更して、結合ごとにLong型の数値の列を1つだけ含めることをお勧めします。DataFusionが3つ以上の深さでネストされている場合は、それらの入力を同じDataFusionに移動します(可能な場合)。


DataFlowおよびDataFusionsに関する一般的な問題や質問、および解決方法。