ビューとは

ビューは、Unity Catalog メタストア内の 1 つ以上のテーブルとビューに対するクエリの結果である読み取り専用オブジェクトです。 ビューは、テーブルから作成したり、複数のスキーマやカタログ内の他のビューから作成したりできます。

この記事では、 Databricks で作成できるビューについて説明し、クエリを実行するために必要なアクセス許可とコンピュートについて説明します。

ビューの作成に関する情報については、以下を参照してください。

Unity Catalogのビュー

Unity Catalog では、ビューは 3 レベルの名前空間の 3 番目のレベル ( catalog.schema.view ) に配置されます。

ビューに重点を置いたUnity Catalogオブジェクト モデル図

ビューは通常、メタストア内の 1 つ以上のデータソースまたはテーブルに対するクエリのテキストを格納します。 Databricks では、ビューはスキーマ内のオブジェクトとして保存される Spark DataFrame と同等です。 DataFrames とは異なり、権限があれば、Databricks 内のどこからでもビューをクエリできます。 ビューを作成しても、データの処理や書き込みは行われません。 クエリ テキストのみが、関連付けられているスキーマのメタストアに登録されます。

注:

ビューは、 Deltaテーブル以外のデータソースによってサポートされている場合、実行セマンティクスが異なる場合があります。 Databricks 、テーブル名またはビュー名を使用してデータソースを参照してビューを定義することをお勧めします。 パスまたは URI を指定してデータセットに対してビューを定義すると、データガバナンスの要件が混乱する可能性があります。

マテリアライズドビュー

マテリアライズドビュー は、定義クエリによって返された結果をインクリメンタルに計算して更新します。

Databricks SQLを使用してUnity Catalog にマテリアライズド ビューを登録したり、 Delta Live Tablesパイプラインの一部として定義したりできます。Databricks SQL でマテリアライズド ビューを使用するおよびDelta Live Tables とは何ですか?を参照してください。

一時的なビュー

一時ビューは、有効範囲と永続性が制限されており、スキーマまたはカタログに登録されません。 一時ビューの有効期間は、使用している環境によって異なります。

  • ノートブック と ジョブ では、一時ビューのスコープはノートブック またはスクリプト レベルに限定されます。 これらは、宣言されているノートブックの外部から参照することはできず、ノートブックがクラスターから切り離されると存在しなくなります。

  • Databricks SQLでは、一時ビューのスコープはクエリーレベルに設定されます。同じクエリー内の複数のステートメントで一時ビューを使用できますが、同じダッシュボード内であっても他のクエリーで一時ビューを参照することはできません。

動的ビュー

動的ビューを使用すると、データマスキングに加えて、行レベルおよび列レベルのアクセス制御を提供できます。 動的ビューの作成を参照してください。

Hive metastoreのビュー (レガシー)

任意のデータソースに対してレガシーHiveビューを定義し、レガシーHive metastoreに登録することができます。 Databricks では、すべての従来の Hive ビューを Unity Catalog に移行することをお勧めします。 Hive metastoreのビューを参照してください。

Hive グローバル テンポラリ ビュー (レガシー)

グローバル一時ビューは、コンピュートリソースに対して実行されているすべてのワークロードで使用できる一時ビューを登録できる従来のDatabricks機能です。 グローバル一時ビューは、Hive と HDFS のレガシー機能です。 Databricks では、グローバル一時ビューの使用は推奨されません。

ビューのクエリの要件

Unity Catalogに登録されているビューを読み取るために必要な権限は、コンピュートの種類、Databricks Runtimeバージョン、およびアクセスモードによって異なります。

注:

すべてのビューについて、ビュー自体と、ビューが構築されている基になるテーブルとビューの両方に対して、アクセス許可チェックが実行されます。 基になるテーブルとビューのパーミッションがチェックされるユーザーは、コンピュートによって異なります。 次の場合、Unity Catalog は、基になるデータに対するビュー所有者のアクセス許可を確認します。

  • SQLウェアハウス.

  • Standard コンピュート (旧称 shared コンピュート).

  • Databricks Runtime 15.4 LTS 以上で、きめ細かなアクセス制御が有効になっている専用のコンピュート (旧称シングル ユーザー コンピュート)。

Databricks Runtime 15.3 以前の専用コンピュートの場合、Unity Catalog は、基になるデータに対するビュー所有者の権限とビュー ユーザーの権限の両方を確認します。

この動作は、以下に示す要件に反映されています。 いずれの場合も、ビューの所有者は、ビュー ユーザーがビューにアクセスするために、基になるデータに対するアクセス許可を保持する必要があります。

  • すべてのコンピュート リソースについて、ビュー自体に SELECT 、親カタログに USE CATALOG 、親スキーマに USE SCHEMA が必要です。 これは、 15.4 以降の ウェアハウス、標準アクセス モードでのクラスタリング、専用アクセス モードでのクラスタリングなど、 をサポートするすべてのコンピュート タイプに適用されます。Unity CatalogSQLDatabricks Runtime

  • 専用アクセスモードを使用する Databricks Runtime 15.3 以下のクラスタリングでは、ビューによって参照されるすべてのテーブルとビューに対するSELECTに加えて、親カタログのUSE CATALOGと親スキーマのUSE SCHEMAも必要です。

注:

Databricks Runtime 15.4 LTS 以降で専用のクラスタリングを使用していて、基になるテーブルとビューにSELECTが必要なくない場合は、ワークスペースがサーバレス コンピュートに対して有効になっていることを確認します。

サーバレス コンピュートは、データ・フィルタリングを処理します。これにより、基礎となるテーブルやビューに対するパーミッションを必要とせずにビューにアクセスできます。 専用のコンピュートを使用してビューをクエリすると、サーバレス コンピュートの料金が発生する可能性があることに注意してください。 詳細については、「 Fine-grained access control on dedicated コンピュート (旧称 single user コンピュート)」を参照してください。