ビューの作成と管理
この記事では、Unity Catalog でビューを作成する方法を説明します。 ビューとはを参照してください。
必要な権限
ビューを作成するには、次のようにします。
親カタログに対する
USE CATALOG
権限と、親スキーマに対するUSE SCHEMA
権限とCREATE TABLE
権限が必要です。 メタストア管理者またはカタログ所有者は、これらすべての特権を付与できます。 スキーマ所有者は、スキーマに対するUSE SCHEMA
およびCREATE TABLE
権限をユーザーに付与できます。ビューで参照される表とビュー (表またはビューの
SELECT
、カタログのUSE CATALOG
、スキーマのUSE SCHEMA
) を読み取ることができる必要があります。ビューがワークスペースローカルHive metastore内のテーブルを参照する場合、そのビューにはワークスペースローカル テーブルを含むワークスペースからのみアクセスできます。 このため、Databricks では、Unity Catalog メタストアにあるテーブルまたはビューからのみビューを作成することをお勧めします。
Delta Sharingを使用して共有されているビューを参照するビューを作成することはできません。 Delta Sharingとは何ですか?を参照してください。
ビューを読み取るために必要なアクセス許可は、コンピュートの種類、 Databricks Runtimeバージョン、およびアクセス モードによって異なります。
すべてのコンピュート リソースについて、ビュー自体に
SELECT
、親カタログにUSE CATALOG
、親スキーマにUSE SCHEMA
が必要です。 これは、 SQLウェアハウス、Databricks Runtime 15.4 以降の共有アクセス モードのクラスター、シングル ユーザー アクセス モードのクラスターなど、 Unity Catalogをサポートするすべてのコンピュートタイプに適用されます。シングル ユーザー アクセス モードを使用する Databricks Runtime 15.3 以前のクラスターの場合、ビューによって参照されるすべてのテーブルとビューに対する
SELECT
に加えて、親カタログに対するUSE CATALOG
と親スキーマに対するUSE SCHEMA
も必要です。
注:
Databricks Runtime 15.4 LTS 以上でシングルユーザークラスタを使用していて、基盤となるテーブルとビューにSELECT
が必要なくない場合は、ワークスペースがサーバレス コンピュートに対して有効になっていることを確認します。
サーバレス コンピュートは、データ・フィルタリングを処理します。これにより、基礎となるテーブルやビューに対するパーミッションを必要とせずにビューにアクセスできます。 シングル ユーザ コンピュートを使用してビューをクエリすると、サーバレス コンピュートの料金が発生する可能性があることに注意してください。 詳細については、シングル ユーザー コンピュートでのきめ細かなアクセス制御を参照してください。
ビューを作成する
ビューを作成するには、次の SQL コマンドを実行します。 括弧内の項目はオプションです。 プレースホルダーの値を置き換えます。
<catalog-name>
:カタログの名前。<schema-name>
:スキーマの名前。<view-name>
: ビューの名前。<query>
: ビューの構成に使用されるクエリ、列、テーブル、およびビュー。
CREATE VIEW <catalog-name>.<schema-name>.<view-name> AS
SELECT <query>;
たとえば、sales_raw
表の列からsales_redacted
という名前のビューを作成するには、次のようにします。
CREATE VIEW sales_metastore.sales.sales_redacted AS
SELECT
user_id,
email,
country,
product,
total
FROM sales_metastore.sales.sales_raw;
Databricks Terraform プロバイダーと databricks_table を使用してビューを作成することもできます。ビューのフルネームのリストは、 databricks_viewsを使用して取得できます。