Skema informasi
Berlaku untuk: Databricks SQL Databricks Runtime 10.4 LTS dan di atas Unity Catalog saja
INFORMATION_SCHEMA
adalah skema berbasis standar SQL, disediakan di setiap katalog yang dibuat di Unity Catalog.
Dalam skema informasi, Anda dapat menemukan sekumpulan tampilan yang menjelaskan objek yang diketahui oleh katalog skema yang istimewa untuk Anda lihat.
Skema SYSTEM
informasi katalog mengembalikan informasi tentang objek di semua katalog dalam metastore. Tabel sistem skema informasi tidak berisi metadata tentang hive_metastore
objek.
Tujuan dari skema informasi adalah untuk menyediakan API berbasis SQL yang menjelaskan sendiri ke metadata.
Diagram hubungan entitas dari skema informasi
Diagram hubungan entitas (ER) berikut memberikan gambaran umum tentang subset tampilan skema informasi dan bagaimana hubungannya satu sama lain.
Tampilan skema informasi
Nama | Deskripsi |
---|---|
CATALOG_PRIVILEGES | Mencantumkan prinsipal yang memiliki hak istimewa pada katalog. |
CATALOG_PROVIDER_SHARE_USAGE | Menjelaskan berbagi penyedia yang dipasang ke katalog. |
CATALOG_TAGS | Berisi tag yang telah diterapkan ke katalog. |
KATALOG | Menjelaskan katalog. |
CHECK_CONSTRAINTS | Disiapkan untuk penggunaan masa mendatang. |
COLUMN_MASKS | Menjelaskan masker kolom pada kolom tabel dalam katalog. |
COLUMN_TAGS | Berisi metadata penandaan kolom dalam tabel. |
COLUMNS | Menjelaskan kolom tabel dan tampilan dalam katalog. |
CONNECTION_PRIVILEGES | Mencantumkan prinsipal yang memiliki hak istimewa pada koneksi asing. |
KONEKSI | Menjelaskan koneksi asing. |
CONSTRAINT_COLUMN_USAGE | Menjelaskan batasan mereferensikan kolom dalam katalog. |
CONSTRAINT_TABLE_USAGE | Menjelaskan batasan yang mereferensikan tabel dalam katalog. |
CREDENTIAL_PRIVILEGES | Mencantumkan prinsipal yang memiliki hak istimewa pada kredensial. |
KREDENSIAL | Menjelaskan kredensial. |
EXTERNAL_LOCATION_PRIVILEGES | Mencantumkan prinsipal yang memiliki hak istimewa di lokasi eksternal. |
EXTERNAL_LOCATIONS | Menjelaskan lokasi eksternal. |
INFORMATION_SCHEMA_CATALOG_NAME | Mengembalikan nama katalog skema informasi ini. |
KEY_COLUMN_USAGE | Mencantumkan kolom batasan kunci utama atau asing dalam katalog. |
METASTORE_PRIVILEGES | Mencantumkan prinsipal yang memiliki hak istimewa pada metastore saat ini. |
METASTORES | Menjelaskan metastore saat ini. |
PARAMETERS | Menjelaskan parameter rutinitas (fungsi) dalam katalog. |
PENYEDIA | Menjelaskan penyedia. |
RECIPIENT_ALLOWED_IP_RANGES | Mencantumkan rentang IP yang diizinkan untuk penerima. |
RECIPIENT_TOKENS | Mencantumkan token untuk penerima. |
PENERIMA | Menjelaskan penerima. |
REFERENTIAL_CONSTRAINTS | Menjelaskan batasan referensial (kunci asing) yang ditentukan dalam katalog. |
ROUTINE_COLUMNS | Menjelaskan kolom hasil fungsi bernilai tabel. |
ROUTINE_PRIVILEGES | Mencantumkan prinsipal yang memiliki hak istimewa pada rutinitas dalam katalog. |
ROUTINES | Menjelaskan rutinitas (fungsi) dalam katalog. |
ROW_FILTERS | Menjelaskan filter baris pada tabel dalam katalog. |
SCHEMA_PRIVILEGES | Mencantumkan prinsipal yang memiliki hak istimewa pada skema dalam katalog. |
SCHEMA_TAGS | Berisi metadata penandaan skema dalam skema. |
SCHEMA_SHARE_USAGE | Menjelaskan skema yang dirujuk dalam berbagi. |
SCHEMATA | Menjelaskan skema dalam katalog. |
SHARE_RECIPIENT_PRIVILEGES | Menjelaskan penerima yang diberikan akses ke berbagi. |
SAHAM | Menjelaskan berbagi. |
STORAGE_CREDENTIAL_PRIVILEGES | [Tidak digunakan lagi] Mencantumkan prinsipal yang memiliki hak istimewa pada kredensial penyimpanan. |
STORAGE_CREDENTIALS | [Tidak digunakan lagi] Menjelaskan kredensial penyimpanan. |
TABLE_CONSTRAINTS | Menjelaskan metadata untuk semua batasan kunci utama dan asing dalam katalog. |
TABLE_PRIVILEGES | Mencantumkan prinsipal yang memiliki hak istimewa pada tabel dan tampilan dalam katalog. |
TABLE_SHARE_USAGE | Menjelaskan tabel yang dirujuk dalam berbagi. |
TABLE_TAGS | Berisi metadata penandaan tabel dalam tabel. |
TABLES | Menjelaskan tabel dan tampilan yang ditentukan dalam katalog. |
VIEWS | Menjelaskan tampilan informasi spesifik tentang tampilan dalam katalog. |
VOLUME | Menjelaskan volume yang ditentukan dalam katalog. |
VOLUME_PRIVILEGES | Mencantumkan prinsipal yang memiliki hak istimewa pada volume dalam katalog. |
VOLUME_TAGS | Berisi metadata penandaan volume yang diterapkan ke volume. |
Catatan
Meskipun pengidentifikasi tidak peka huruf besar/kecil ketika dirujuk dalam pernyataan SQL, pengidentifikasi disimpan dalam skema informasi sebagai STRING
.
Ini menyiratkan bahwa Anda harus mencarinya menggunakan kasus di mana pengidentifikasi disimpan, atau menggunakan fungsi seperti ilike.
Contoh
> SELECT table_name, column_name
FROM information_schema.columns
WHERE data_type = 'DOUBLE'
AND table_schema = 'information_schema';
Berikut ini adalah contoh alur kerja yang menggunakan tabel skema informasi tingkat sistem.
Jika Anda ingin menampilkan semua tabel yang telah dibuat dalam 24 jam terakhir, kueri Anda bisa terlihat seperti berikut ini.
> 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;
Jika Anda ingin melihat berapa banyak tabel yang Anda miliki di setiap skema, pertimbangkan contoh berikut.
> SELECT table_schema, count(table_name)
FROM system.information_schema.tables
WHERE table_schema = 'tpch'
GROUP BY table_schema
ORDER BY 2 DESC