Information schema | Databricks on AWS [2022/11/1時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
適用対象
- Databricks SQL
- Databricksランタイム10.2以降
INFORMATION_SCHEMAは、HIVE_METASTOREカタログ以外の全てのカタログに存在するSQL標準ベースのシステム提供のスキーマです。
インフォメーションスキーマでは、あなたが参照権限を持つオブジェクトを説明する一連のビューを参照することができます。SYSTEMカタログのインフォメーションスキーマは、メタストア内のすべてのカタログのオブジェクトに関する情報を返却します。
インフォメーションスキーマの目的は、メタデータに対してSQLベースの自己記述型のAPIを提供することです。
Information schemaのエンティティ関連図
以下のエンティティリレーションシップ(ER)図は、インフォメーションスキーマ内のリレーションの概要と、それぞれの関係性を示しています。

Information schemaのビュー
| 名前 | 説明 |
|---|---|
| CATALOG_PRIVILEGES | カタログに対する権限を持つプリンシパルを一覧します。 |
| CATALOGS | カタログを説明します。 |
| COLUMNS | カタログに含まれるテーブルやビューのカラムを説明します。 |
| CONSTRAINT_COLUMN_USAGE | カタログのカラムを参照する制約を説明します。 |
| CONSTRAINT_TABLE_USAGE | カタログのカラムを参照する制約を説明します。 |
| CHECK_CONSTRAINTS | 将来の利用に予約されています。 |
| INFORMATION_SCHEMA_CATALOG_NAME | このインフォメーションスキーマのカタログ名を返却します。 |
| PARAMETERS | カタログのルーチン(関数)のパラメーターを説明します。 |
| REFERENTIAL_CONSTRAINTS | カタログで定義されている参照制約(外部キー)を説明します。 |
| ROUTINE_COLUMNS | 関数の結果テーブルのカラムを説明します。 |
| ROUTINE_PRIVILEGES | カタログのルーチンに対する権限を持つプリンシパルを一覧します。 |
| TABLE_PRIVILEGES | カタログのテーブルとビューに対する権限を持つプリンシパルを一覧します。 |
| TABLES | カタログで定義されているテーブルやビューを説明します。 |
| SCHEMA_PRIVILEGES | カタログのスキーマに対する権限を持つプリンシパルを一覧します。 |
| SCHEMATA | カタログのスキーマを説明します。 |
| VIEWS | カタログのビューに関するビュー固有の情報を説明します。 |
注意
SQL分で参照する際、識別子は大文字小文字を区別しませんが、STRINGとしてインフォメーションスキーマに格納されます。これは、ilikeの様な関数を用いるか、識別子が格納されている大文字小文字を指定して検索を行わなくてはならないことを意味します。
サンプル
システムレベルのインフォメーションスキーマテーブルを使用するサンプルのワークフローを以下に示します。
過去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