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