データセットの最適化とキャッシュ
AI/BI ダッシュボードは重要なデータ分析および意思決定ツールであり、効率的な読み込み時間によってユーザー エクスペリエンスを大幅に向上できます。 この記事では、キャッシュとデータセットを最適化して、どのようにダッシュボードのパフォーマンスと効率を向上するかについて説明します。
クエリ パフォーマンス
クエリとそのパフォーマンスは、ワークスペースの Query History で調べることができます。 クエリ履歴には、SQL ウェアハウスを使用して実行された SQL クエリが表示されます。 クエリ履歴を表示するには、サイドバーの [クエリ履歴] をクリックします。 「クエリ履歴」を参照してください。
ダッシュボード データセットの場合、Azure Databricks では、データセットの結果のサイズに応じてパフォーマンスの最適化を適用します。
データセットの最適化
AI/BI ダッシュボード データセットには、次のパフォーマンス最適化が含まれます。
- データセットの結果のサイズが小さい (10 万行または 100 MB 以下のどちらか小さい方) 場合、データセットの結果はクライアントにプルされ、視覚化固有のフィルター処理と集計がブラウザーで実行されます。 小規模なデータセットのデータのフィルタリングと集計は非常に高速で、データセットを小さくすると、ダッシュボードのパフォーマンスを最適化できます。 小規模なデータセットでは、データセット クエリのみがクエリ履歴に表示されます。
- データセットの結果のサイズが大きい (10 万行または 100 MB を超える) 場合、データセット クエリ テキストは SQL の
WITH
句の中にラップされ、視覚化固有のフィルター処理と集計は、ブラウザーではなくバックエンドのクエリ内で実行されます。 大規模なデータセットでは、視覚化クエリがクエリ履歴に表示されます。 - バックエンドに送信される視覚化クエリの場合、同じ
GROUP BY
句とフィルター述語を共有する同じデータセットに対する個別の視覚化クエリは、処理のために 1 つのクエリに結合されます。 この場合、複数の視覚化の結果をフェッチしているクエリ履歴に、1 つの結合クエリが表示されることがあります。
キャッシュとデータの鮮度
ダッシュボードでは、最初の読み込み時間を最適化するために 24 時間の結果キャッシュを維持し、ベストエフォート ベースで動作します。 つまり、システムでは常に、ダッシュボード資格情報にリンクされた履歴クエリの結果を使用してパフォーマンスを向上しようとしますが、キャッシュされた結果の作成や維持ができない場合があります。 キャッシュされたデータには、特定のメモリ制限や固定クエリ数がありません。
マルチページ ダッシュボードの場合は、次が適用されます。
- 下書きダッシュボードを編集すると、すべてのデータセットが読み込んでキャッシュされます。
- 閲覧者が発行済みのダッシュボードを開くと、アクティブなページをサポートするデータセットのみが実行され、キャッシュされます。
- スケジュールが設定されている場合、すべてのデータセットがスケジュールに従って更新され、それらの結果がキャッシュされます。
次の表では、ダッシュボードの状態と資格情報によってキャッシュがどのように変わるかについて説明します。
ダッシュボードの種類 | キャッシュの種類 |
---|---|
資格情報が埋め込まれた発行済みダッシュボード | 共有キャッシュ。 すべての視聴者に同じ結果が表示されます。 |
受け込みの資格情報がないドラフト ダッシュボードまたは発行済みダッシュボード | ユーザーごとのキャッシュ。 視聴者には、各自のデータのアクセス許可に基づいて結果が表示されます。 |
ダッシュボードでは、基になるデータが最後のクエリの後に変更されていない場合、または結果が過去 24 時間以内に取得された場合は、キャッシュされたクエリ結果が自動的に使用されます。 古い結果が存在し、パラメーターがダッシュボードに適用されている場合、過去 24 時間以内に同じパラメーターが使用されていない限り、クエリは再実行されます。 同様に、10 万行を超えるデータセットにフィルターを適用すると、過去 24 時間以内に同じフィルターが適用されていない限り、クエリの再実行が求められます。
スケジュール済クエリ
資格情報が埋め込まれた公開済みダッシュボードにスケジュールを追加すると、すべてのダッシュボード視聴者の初期読み込みプロセスを大幅に高速化できます。
スケジュールされたダッシュボードの更新ごとに、次の処理が行われます。
- データセットを定義するすべての SQL ロジックは、指定された時間間隔で実行されます。
- 結果はクエリ結果キャッシュに入力され、ダッシュボードの初期読み込み時間を短縮するのに役立ちます。