ビューとは
ビューは、Unity Catalog メタストア内の 1 つ以上のテーブルとビューに対するクエリの結果である読み取り専用オブジェクトです。 ビューは、テーブルから作成したり、複数のスキーマやカタログ内の他のビューから作成したりできます。
この記事では、 Databricks で作成できるビューについて説明し、クエリを実行するために必要なアクセス許可とコンピュートについて説明します。
ビューの作成に関する情報については、以下を参照してください。
Unity Catalogのビュー
Unity Catalog では、ビューは 3 レベルの名前空間の 3 番目のレベル ( catalog.schema.view
) に配置されます。
ビューは通常、メタストア内の 1 つ以上のデータソースまたはテーブルに対するクエリのテキストを格納します。 Databricks では、ビューはスキーマ内のオブジェクトとして保存される Spark DataFrame と同等です。 DataFrames とは異なり、権限があれば、Databricks 内のどこからでもビューをクエリできます。 ビューを作成しても、データの処理や書き込みは行われません。 クエリ テキストのみが、関連付けられているスキーマのメタストアに登録されます。
注:
ビューは、 Deltaテーブル以外のデータソースによってサポートされている場合、実行セマンティクスが異なる場合があります。 Databricks 、テーブル名またはビュー名を使用してデータソースを参照してビューを定義することをお勧めします。 パスまたは URI を指定してデータセットに対してビューを定義すると、データガバナンスの要件が混乱する可能性があります。
マテリアライズドビュー
マテリアライズドビュー は、定義クエリによって返された結果をインクリメンタルに計算して更新します。
マテリアライズド ビューを Delta Live Tables パイプラインの一部として定義できます。 「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バージョン、およびアクセスモードに応じて、必要な権限が異なります。
すべてのコンピュート リソースについて、ビュー自体に
SELECT
、親カタログにUSE CATALOG
、親スキーマにUSE SCHEMA
が必要です。シングル・ユーザー・アクセス・モードを使用してビューにアクセスするには、ビューが参照するすべてのテーブルとビューに対する
SELECT
に加えて、親カタログに対するUSE CATALOG
と親スキーマに対するUSE SCHEMA
も必要です。