メインコンテンツまでスキップ

AI/BI ダッシュボードにおけるデータセットのマテリアライゼーション

備考

ベータ版

この機能はベータ版です。使用するには、ワークスペース管理者が プレビュー ページから AI/BI Dashboard Materialization を有効にする必要があります。詳細については、Databricksのプレビューの管理を参照してください。

AI/BIダッシュボードは、ダッシュボードをスコープとするデータセット上に構築されます。defaultでは、すべてのデータセットがライブで評価されるため、ダッシュボードが読み込まれるか、閲覧者が操作するたびに、基盤となるクエリー、結合、ソーススキャンがSQL Warehouseで再実行されます。コストのかかるソースクエリーや多数の結合に基づいて構築されたダッシュボードの場合、インタラクションのたびにそれらのクエリーを再実行すると、処理が遅くなり、コストが増加します。

データセットのマテリアライゼーションは、データセットの背後にある結果を事前に計算して保存するため、ダッシュボードの読み込みや操作のたびにではなく、スケジュールに従って一度だけ重い処理が行われます。その後、保存された結果からインタラクションがレンダリングされるため、公開されたダッシュボードの速度が向上します。

マテリアライゼーションには、Unity Catalogのメトリクス ビューのマテリアライゼーション技術が使用されます。詳細は、メトリクス ビューのマテリアライゼーションを参照してください。

マテリアライズされる対象​

マテリアライズーションはデータセットのデータを事前計算して保存します。保存される内容は2つのデータセットタイプによって異なります。

  • SQLデータセットの場合、完全なクエリー結果が事前計算されて保存されます。
  • ローカルメトリクス ビューの場合、行レベルのデータモデル(ソースデータ、結合、フィルターフィールド)が保存される一方、メジャーは事前計算されたベースに対してクエリー時に引き続き計算されます。

メリット​

データセットのマテリアライゼーションには、次の利点があります。

  • モデリングをやり直すことなく、ダッシュボードを高速化。 負荷がかかる結合やソーススキャンは、ロードのたびに行うのではなく、スケジュールに従って1回実行されるため、ダッシュボードで大きなテーブルを再クエリーする際に閲覧者が感じる待ち時間がなくなります。
  • 読み取り時のwarehouseコストの削減。 ベースデータモデルを事前にコンピュートすることで、すべての閲覧者とすべてのページ読み込みに対して同じ負荷の高いクエリーを繰り返し実行するのを回避でき、warehouseの冗長な使用を削減できます。
  • 運用オーバーヘッドなし。 Databricks がマテリアライズドデータを自動的に作成、保存、更新します。管理すべきパイプライン、スキーマ、ストレージはありません。

コスト​

データセットのマテリアライゼーションには、ストレージとコンピュートのコストが発生します。

繰り返されるソーススキャンや結合を回避することで得られる節約効果と、これらのコストを比較検討します。データの鮮度とコンピュートコストのバランスを取る更新スケジュールを選択します。

マテリアライゼーションを使用するタイミング​

マテリアライゼーションが常にパフォーマンス向上ための適切な手段とは限りません。このメリットは、データセットの繰り返しの完全な再コンピュート(スキャンと結合)を、事前計算されたテーブルに対する読み取りに置き換えることで得られます。次のいずれかに該当する場合は、データセットをマテリアライズします。

  • インタラクティブ性が高いダッシュボード。 ダッシュボードに多数のフィルター、クロスフィルター、またはドリルダウンが含まれている場合。マテリアライゼーションがない場合、インタラクションごとにデータセットクエリーが再実行されるため、セッション内でそれらのデータセットを事前にコンピュートしておくメリットが繰り返し得られます。
  • コストの高いデータセット。 データセットは、複数テーブルの結合、負荷の高いビューや共通テーブル式 (CTE)、ウィンドウ関数、または多数のテーブルにわたるユニオンに基づいて構築されます。
  • 大規模なテーブルに対する選択的フィルター。 データセットは、数行の中から 1 つのリージョンや過去 7 日間などの小さなサブセットを選択します。マテリアライゼーションは小さなサブセットのみを格納します。
  • スケジュールされた鮮度の許容度。 リアルタイムである必要はなく、データは、1時間ごとや毎日など、ダッシュボードの更新スケジュールと同じ鮮度であれば十分です。

小規模なデータセットやめったに読み込まれないダッシュボードの場合、ライブクエリーでも十分な速度が得られることが多く、マテリアライゼーションはコストに見合わない場合があります。マテリアライゼーションは公開ごとおよびデータセットごとにオプトイン方式で行われるため、効果が得られる場所でのみ適用できます。

要件​

  • AI/BI dashboardへのアクセス。
  • ダッシュボードは [データの権限を共有] オプションを指定して公開されます。個別のデータ権限で公開されたダッシュボードでは、マテリアライゼーションはサポートされていません。See What are shared data permissions?.
  • ワークスペースで Serverless コンピュートが有効になっています。初期作成と更新は Serverless Lakeflow pipelines で実行されます。See Set up Serverless SQLウェアハウス.
  • Databricks Runtime 17.3 以降を実行している SQL Warehouse に対する CAN USE 権限。

データセットのマテリアライゼーションを有効にする​

データセット are selected for materialization by default, but materialization is off for the dashboard until you turn on the Materialize データセット option when publishing.

マテリアライズするデータセットを選択する​

On the Data tab, データセットの横にあるマテリアライズアイコンをクリックして含めるか除外します。

1つのデータセットに緑色のマテリアライゼーションアイコンが表示され、もう1つのデータセットに選択解除されたアイコンが表示されている[Data] tab。

データセットをマテリアライゼーションから除外すると、そのデータセットに対するクエリーはライブ結果を返しますが、マテリアライズされたデータセットに対するクエリーには最新のマテリアライゼーションランの結果が反映されます。すべてのデータセットが同じマテリアライゼーションスケジュールを使用している場合、ウィジェットの一貫したデータの鮮度が保たれます。

マテリアライズーション付きで公開​

  1. ドラフトダッシュボードで [公開] をクリックします。
  2. Select Share data permissions in the publishing dialog.
  3. [データ] tab で選択したデータセットをマテリアライズするには、 [データセットのマテリアライズ] オプションを有効にします。
  4. 「 公開 」をクリックします。

共有データ権限が選択され、[データセットのマテリアライズ]オプションが選択された公開ダイアログ。

公開ごとに [データセットのマテリアライズ] オプションを有効にします。

更新スケジュールを設定する​

マテリアライズされたデータは、ダッシュボードの更新スケジュールに従って更新されます。更新頻度を調整するには、ダッシュボードのスケジュールを使用します。

If the dashboard has no schedule, publishing with materialization enabled adds a daily 更新スケジュール.Existing schedules are preserved.Without an active schedule, materialized data does not 更新 automatically after creation.

更新スケジュールのデータセット マテリアライズド バッジを表示するダッシュボードの [スケジュール] パネル。

View materialization status​

公開済みのダッシュボードで、ケバブメニューアイコン。 メニューを開き、 [情報] を選択します。サイドバーには、各マテリアライズド データセットのステータスと更新情報が表示されます。

マテリアライゼーションのステータスを表示するための [情報] オプションが含まれる、公開済みダッシュボードのケバブ メニュー。

各マテリアライズドデータセットのステータスと更新情報を一覧表示する Info サイドバー。

Reuse and cleanup​

Databricks は、マテリアライズされたデータのライフサイクルを管理します。

  • リビジョン間での再利用。 同じユーザーによってダッシュボードが再公開され、データセットが変更されていない場合、既存のマテリアライゼーションが再利用され、無駄なコンピュートの発生が回避されます。
  • 自動クリーンアップ。 Databricks は、定義の変更後や非公開など、公開されたダッシュボードがもはや参照しなくなったマテリアライゼーションを削除します。

再公開しても、必ずしもマテリアライズされたデータが更新されるわけではありません。

制限事項​

データセットのマテリアライゼーションには、以下の制限事項があります。

  • 公開済みのダッシュボードのみ。 マテリアライゼーションは公開済みのダッシュボードに適用されます。下書きはライブデータのクエリーを続けます。
  • No parameterized datasets. データセット that define パラメーター cannot be materialized.If you opt a parameterized データセット into materialization, Databricks reports it as failed rather than materializing it.
  • 更新はダッシュボードのスケジュールに従ってのみ行われます。 データセットごとの個別の更新スケジュールはありません。マテリアライゼーションは、ダッシュボードのスケジュールされた更新の周期で更新されます。
  • Serverlessが必要です。 初期作成と更新はServerless LakeFlow Pipelinesで実行されるため、ワークスペースでServerlessコンピュートが有効になっている必要があります。
  • 保護されたデータはマテリアライゼーションからは提供されません。 行レベルセキュリティ、列マスク、または属性ベースアクセス制御(ABAC)ポリシーによって保護されているソースデータに対して、マテリアライゼーションを作成することはできません。マテリアライゼーションの作成後に行レベルセキュリティがソーステーブルに追加された場合、そのメトリクスビューに対する後続のクエリーはマテリアライゼーションをバイパスし、ソースデータに対して実行されます。
  • 共有データに対する権限が必要です。 マテリアライゼーションを有効にできるのは、共有データに対する権限で公開する場合のみです。個別データの権限で公開する場合は有効にできません。

よくある質問​

以下の質問では、データセットのマテリアライゼーションの動作、更新、および権限について説明します。

マテリアライゼーションによってメトリクスや結果が変わりますか?​

Materialization preserves the dataset's query logic, but its data reflects the latest successful refresh.For local メトリクスビュー, measures are computed at クエリー time against the materialized data.See What gets materialized.

マテリアライゼーションの準備ができていない場合や利用できない場合はどうなりますか?​

マテリアライズーションの準備ができていない場合やクエリー時に利用できない場合、クエリーはライブデータをクエリーする代わりにエラーを返します。マテリアライズーションの終了を待ってから、クエリーを再実行してください。

Where is the materialized data stored?​

Databricks は、公開されたダッシュボードのスコープに含まれる管理された内部ストレージにマテリアライズされたデータを格納します。Unity Catalog に公開するものは何もありません。また、管理するスキーマやストレージもありません。アクセスは引き続きダッシュボードおよび基になるデータの権限に従います。

マテリアライズされたデータはどのくらいの頻度で更新されますか?​

マテリアライズされたデータは、ダッシュボードの更新スケジュールで更新されます。更新スケジュールの設定を参照してください。

What コンピュート does materialization use?​

初回作成と更新はいずれも、Databricks が管理する Serverless Lakeflow pipelines 上で実行されます。このため、ワークスペースで Serverless コンピュートを有効にする必要があります。

マテリアライズーションは権限に影響しますか?​

いいえ。マテリアライゼーションによってデータへの追加アクセス権が付与されることはありません。アクセスは引き続き、ダッシュボードの共有構成と公開に使用されたアクセス許可に従います。

再公開するとどうなりますか?​

同じユーザーが変更されていないデータセットを再度パブリッシュした場合、既存のマテリアライゼーションを再利用できます。See Reuse and cleanup.パブリッシュするたびに Materialize データセット オプションをオンにします。

その他のリソース​