メインコンテンツへスキップ

はじめに

この記事では、カード、DataFlow、Beast Modeにおけるデータパフォーマンスを最適化するための一般的なガイドラインについて説明します。 これらは一般的なガイドラインとして使用するべきものであり、すべての使用事例に当てはまるわけではありません。すべての変更は、本稼働環境に実装する前にテストしてください。

キャッシュ

Domoでキャッシュを活用するために、DataSetの更新は必要最低限にとどめます。

Beast Mode

複雑なBeast ModeはDataSetの各行に対して計算されるため、クエリのパフォーマンスを低下させる要因となります。テキストフィールドに対して計算されたBeast Modeは、多くの場合、最も多くのクエリを必要とします。大規模なCASEステートメントやネストされたCASEステートメントも、パフォーマンスに大きな影響を与える可能性があります。 推奨:
  • Beast Modeを、テキスト/文字列フィールドではなく数値フィールドまたは日付フィールドで作成する。
  • Beast ModeをDataFlowの計算に変換する。これにより、例えば、カードを表示するクエリを実行する際に、スクリプトを計算する必要がなくなります。
  • 文字列フィールドで計算される大規模なCASEステートメントを避ける。
  • 長いテキストフィールドのテキストマッチングにLIKEを使用しない。

対象となるDataSet

各DataSetについて、以下のような質問を考えてみます。
  • すべての行は、そのDataSetから作成されたカードに必要か?
  • 最も一般的な使用事例において、本当に必要な履歴データはどれくらいか?
一般的に、DataSetの行を減らすとパフォーマンスが向上します。より大きなDataSetをDataFlowで実行して行数を減らし、最も一般的な使用事例に対応するDataSetを提供することを検討してください。または、可能であればデータを集計することを検討してください。

DISTINCT

COUNT DISTINCTによる演算はコストが高くなる場合があります。代わりに、以下の選択肢を試してみてください。
  • APPROXIMATE_COUNT_DISTINCTを使用して値を近似させる。
  • スクリプトにあるDISTINCTキーワードを減らす。
  • COUNT DISTINCTを実行する前に行数を減らす。

まとめ数字

カードにはデフォルトでまとめ数字が含まれています。パフォーマンスに影響を与える可能性があるため、カードのまとめ数字が不要な場合は、削除することを検討してください。

ダッシュボードのサイズ

各ダッシュボードにあるカードの数を評価し、別のダッシュボードに移動できるものがないかを検討します。多くのカードがあるダッシュボードは、カードの少ないダッシュボードよりも読み込みに時間がかかることがあります。 日本語