情報スキーマ

適用対象:check marked yes Databricks SQL check marked yes Databricks Runtime 10.2 以降 check marked yes Unity Catalog のみ

INFORMATION_SCHEMA は、Unity Catalog で作成されたすべてのカタログで提供される SQL 標準ベースのスキーマです。

情報スキーマ内には、スキーマのカタログに認識されており、ユーザー自身が参照を許可されているオブジェクトを説明しているビューのセットがあります。 SYSTEM カタログの情報スキーマは、メタストア内のすべてのカタログのオブジェクトに関する情報を返します。 情報スキーマ システム テーブルには、hive_metastore オブジェクトに関するメタデータは含まれません。

情報スキーマの目的は、SQL ベースの自己記述型 API をメタデータに提供することです。

情報スキーマのエンティティ リレーションシップ ダイアグラム

次のエンティティ リレーションシップ (ER) ダイアグラムは、情報スキーマ ビューのサブセットの概要と、それらの相互の関連を示しています。

ER diagram of information schema

情報スキーマ ビュー

名前 説明
CATALOG_PRIVILEGES カタログに対する権限を持つプリンシパルを一覧表示します。
CATALOG_PROVIDER_SHARE_USAGE カタログにマウントされたプロバイダー共有について説明します。
CATALOG_TAGS カタログに適用されているタグが含まれます。
CATALOGS カタログについて説明します。
CHECK_CONSTRAINTS 将来利用するために予約されています。
COLUMN_MASKS カタログ内のテーブル列の列マスクについて説明します。
COLUMN_TAGS テーブル内の列タグ付けメタデータが含まれます。
COLUMNS カタログ内のテーブルとビューの列について説明します。
CONNECTION_PRIVILEGES 外部接続に対する権限を持つプリンシパルを一覧表示します。
CONNECTIONS 外部接続について説明します。
CONSTRAINT_COLUMN_USAGE カタログ内の列を参照する制約について説明します。
CONSTRAINT_TABLE_USAGE カタログ内のテーブルを参照する制約について説明します。
EXTERNAL_LOCATION_PRIVILEGES 外部の場所に対する権限を持つプリンシパルを一覧表示します。
EXTERNAL_LOCATIONS 外部の場所について説明します。
INFORMATION_SCHEMA_CATALOG_NAME この情報スキーマのカタログの名前を返します。
KEY_COLUMN_USAGE カタログ内の主キー制約または外部キー制約の列をリストアップします。
METASTORE_PRIVILEGES 現在のメタストアに対する権限を持つプリンシパルを一覧表示します。
METASTORES 現在のメタストアについて説明します。
PARAMETERS カタログ内のルーチン (関数) のパラメーターについて説明します。
PROVIDERS プロバイダーについて説明します。
RECIPIENT_ALLOWED_IP_RANGES 受信者に許可されている IP 範囲を一覧表示します。
RECIPIENT_TOKENS 受信者のトークンを一覧表示します。
RECIPIENTS 受信者について説明します。
REFERENTIAL_CONSTRAINTS カタログ内に定義されている参照 (外部キー) に関する制約について説明します。
ROUTINE_COLUMNS テーブル値関数の結果列について説明します。
ROUTINE_PRIVILEGES カタログ内のルーチンに対する権限を持つプリンシパルを一覧表示します。
ROUTINES カタログ内のルーチン (関数) について説明します。
ROW_FILTERS カタログ内のテーブルに対する行フィルターについて説明します。
SCHEMA_PRIVILEGES カタログ内のスキーマに対する権限を持つプリンシパルを一覧表示します。
SCHEMA_TAGS スキーマ内のスキーマ タグ付けメタデータが含まれます。
SCHEMA_SHARE_USAGE 共有で参照されるテーブルについて説明します。
SCHEMATA カタログ内のスキーマについて説明します。
SHARE_RECIPIENT_PRIVILEGES 共有へのアクセスを許可されている受信者について説明します。
SHARES 共有について説明します。
STORAGE_CREDENTIAL_PRIVILEGES ストレージ資格情報に対する権限を持つプリンシパルを一覧表示します。
STORAGE_CREDENTIALS ストレージ資格情報について説明します。
TABLE_CONSTRAINTS カタログ内のすべての主および外部キー制約のメタデータについて説明します。
TABLE_PRIVILEGES カタログ内のテーブルとビューに対する権限を持つプリンシパルを一覧表示します。
TABLE_SHARE_USAGE 共有で参照されるテーブルについて説明します。
TABLE_TAGS テーブル内のテーブル タグ付けメタデータが含まれます。
TABLES カタログ内で定義されているテーブルとビューについて説明します。
VIEWS カタログ内のビューに関するビュー固有の情報について説明します。
VOLUMES カタログ内の定義済みボリュームを説明します。
VOLUME_PRIVILEGES カタログ内のボリュームに対する権限を持つプリンシパルを一覧表示します。
VOLUME_TAGS ボリュームに適用されるボリューム タグ付けメタデータが含まれます。

メモ

識別子は SQL ステートメントで参照されるときには大文字と小文字が区別されませんが、情報スキーマには STRING として格納されます。 これは、識別子が格納されている大文字と小文字のいずれかに合わせて検索するか、ilike などの関数を使用する必要があることを意味します。

> SELECT table_name, column_name
    FROM information_schema.columns
    WHERE data_type = 'DOUBLE'
      AND table_schema = 'information_schema';

システム レベルの情報スキーマ テーブルが使用されているワークフローの例を次に示します。

過去 24 時間以内に作成されたすべてのテーブルを表示する場合、クエリは次のようになります。

> SELECT table_name, table_owner, created_by, last_altered, last_altered_by, table_catalog
    FROM system.information_schema.tables
    WHERE  datediff(now(), last_altered) < 1;

各スキーマに含まれるテーブルの数を表示する場合は、次の例を検討してください。

> SELECT table_schema, count(table_name)
    FROM system.information_schema.tables
    WHERE table_schema = 'tpch'
    GROUP BY table_schema
    ORDER BY 2 DESC