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