このページでは、Power BI と Azure Databricks でデータを効率的に管理し、クエリのパフォーマンスを最適化し、効率的なダッシュボードを作成するための明確で意見の高いガイダンスを提供します。
Azure Databricks で Power BI を使用するためのいくつかのベスト プラクティスのリファレンス実装を示す一連の実用的なクイック スタートについては、この リポジトリを参照してください。
Azure Databricks と Power BI を接続する
| ベスト プラクティス | インパクト | Docs |
|---|---|---|
| 異なる Azure Databricks 環境に接続するときに Power BI パラメーターを使用する | 異なる Azure Databricks ワークスペースまたは異なる Azure Databricks SQL ウェアハウスに接続するときの柔軟性を実現します。 | |
| Azure Databricks の Power BI サービスへの発行機能を使用する | Azure Databricks UI を離れることなく、シームレスなカタログ統合とデータ モデルの同期を有効にします。 | |
| Azure Databricks の Power BI への自動発行を使用する | データ パイプラインから直接 Unity カタログから Power BI にデータセットを発行します。 |
最適なストレージ モードを選択する
| ベスト プラクティス | インパクト | Docs |
|---|---|---|
| ファクト テーブルに DirectQuery を使用し、ディメンション テーブルにデュアルを使用する (インポートではない) | 最適なストレージ モードを使用して、より効率的な SQL クエリを生成します。 | |
| 可能な限り DirectQuery をインポートよりも優先する | ガバナンスと可読性を維持できます。 | |
| 混合ストレージ モードに複合モデルを使用する | DirectQuery テーブル、デュアル テーブル、インポート モード テーブル、集計テーブルとハイブリッド テーブルを混在して使用できます。 | |
| リアルタイム データを使用して集計された履歴データにハイブリッド テーブルを使用する | 効率的なメモリ内クエリを有効にします。 |
データ アクセスを最適化する
| ベスト プラクティス | インパクト | Docs |
|---|---|---|
| ユーザー定義集計を使用する | 事前に集計されたデータをキャッシュすることで、大規模な DirectQuery セマンティック モデルに対するクエリ パフォーマンスが向上します。 | |
| 自動集計を使用する | レポートのパフォーマンスを最大限に高めるには、クエリ履歴に基づいて集計を作成することで、DirectQuery セマンティック モデルを継続的に最適化します。 | |
| テーブルのパーティション分割または増分更新を使用する | データのインポートを高速化し、特に非常に小さく、静的でパフォーマンスが高い (2 秒未満) レポートの場合は、より大きなデータセットを管理できます。 | |
| [すべてのスライサーの適用] ボタンと [すべてのスライサーのクリア] ボタンを追加する | ユーザーがレポート フィルターを操作するときにクエリ削減設定を利用して、不要なクエリを防止します。 | |
| アップストリーム インジェストで 参照整合性 が検証されている場合は、テーブルの関係を定義するときに参照整合性を想定する | SQL クエリでより効率的な結合戦略を有効にします。 | |
DirectQuery の場合は、クエリの並列化構成設定と、Power BI セマンティック モデルの次のプロパティを確認します。
|
クエリの並列化が向上し、SQL ウェアハウスの使用率が最大化され、全体的なパフォーマンスが向上します。 |
データ モデルを微調整する
| ベスト プラクティス | インパクト | Docs |
|---|---|---|
| 左に移動する変換 | コア ビジネス ロジックをデータ ソースに近づけ、データの品質が高く、高速で、使用コストが低くなるようにします。 SQL ビューは、Databricks SQL エンジンの機能を利用して、PowerQuery 変換や DAX 数式と比較して、より効率的なレポート実行を実現します。 | |
| DAX 数式を使用する必要がある場合は、DAX 数式を最適化し、大きな結果セットを回避します。 | パフォーマンスの低下につながる非効率的な計算を防止します。 | |
| セマンティック モデルで DAX 計算列と計算テーブルを回避し、Gold テーブルでこのデータを直接定義する | 事前計算済みの指標は、Gold レイヤーで最も高いパフォーマンスを発揮します | |
| カレンダーベースのタイム インテリジェンスを活用する | DirectQuery セマンティック モデルを使用すると、タイム インテリジェンス計算をより効率的に実行でき、より高速でスケーラブルなレポートのロックを解除できます |
パフォーマンスとメトリックを監視する
| ベスト プラクティス | インパクト | Docs |
|---|---|---|
| Power BI Performance Analyzer を使用してレポート要素のパフォーマンスを調べる | 最も時間がかかるビジュアライゼーションと、そのボトルネックの所在を特定します。 |