Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime 10.4 LTS ke atas
Unity Catalog saja
SYSTEM Dalam katalog, INFORMATION_SCHEMA adalah skema standar SQL yang menyediakan metadata tentang objek di semua katalog di metastore. Ini tidak berisi metadata tentang hive_metastore objek.
Secara terpisah, setiap katalog yang dibuat di Katalog Unity secara otomatis menyertakan sebuah information_schema yang menjelaskan metadata tentang objek dalam katalog tersebut saja.
Kedua jenis skema informasi secara otomatis memfilter hasil untuk menyertakan hanya objek yang memiliki hak istimewa Katalog Unity untuk diakses. Perilaku ini berbeda dari tabel sistem Azure Databricks lainnya. Lihat Cara tabel sistem skema informasi menangani izin.
Tujuan dari skema informasi adalah untuk menyediakan API berbasis SQL yang mengenali hak akses dan memiliki deskripsi mandiri untuk mengakses metadata katalog.
Bagaimana tabel sistem skema informasi menangani izin
system.information_schema berbeda dari tabel sistem lain karena menerapkan pemfilteran otomatis. Ini berarti Anda hanya melihat objek (katalog, skema, tabel, kolom, dll.) yang anda miliki hak istimewa untuk diakses di Unity Catalog. Jika hak istimewa Anda berubah, apa yang Anda lihat dalam skema informasi berubah sesuai. Misalnya, saat Anda mengkueri information_schema.tables, hanya baris untuk tabel yang izinnya Anda lihat yang dikembalikan.
Seperti semua tabel sistem lainnya, Anda memerlukan izin eksplisit USE dan SELECT untuk mengakses dan mengajukan kueri dari skema informasi.
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 bagian penyedia yang terpasang pada katalog. |
| CATALOG_TAGS | Berisi tag yang telah diterapkan ke katalog. |
| CATALOGS | 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. |
| CONNECTIONS | Menjelaskan koneksi internasional. |
| CONSTRAINT_COLUMN_USAGE | Menjelaskan batasan yang mereferensikan kolom dalam katalog. |
| CONSTRAINT_TABLE_USAGE | Menjelaskan batasan yang mereferensikan tabel dalam katalog. |
| CREDENTIAL_PRIVILEGES | Mencantumkan prinsipal yang memiliki hak istimewa pada kredensial. |
| CREDENTIALS | Menjelaskan data otentikasi. |
| 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 | Memaparkan metastore saat ini. |
| PARAMETERS | Menjelaskan parameter rutinitas (fungsi) dalam katalog. |
| PROVIDERS | Jelaskan penyedia layanan. |
| RECIPIENT_ALLOWED_IP_RANGES | Mencantumkan rentang IP yang diizinkan untuk penerima. |
| RECIPIENT_TOKENS | Mencantumkan token untuk penerima. |
| RECIPIENTS | Menjelaskan penerima. |
| REFERENTIAL_CONSTRAINTS | Menjelaskan batasan referensial (kunci asing) yang ditentukan dalam katalog. |
| ROUTINE_COLUMNS | Menjelaskan kolom yang dihasilkan oleh fungsi yang mengembalikan nilai dalam bentuk 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 saham. |
| SCHEMATA | Menjelaskan skema dalam katalog. |
| SHARE_RECIPIENT_PRIVILEGES | Menjelaskan penerima yang diberikan akses untuk berbagi. |
| SHARES | Menjelaskan saham. |
| 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 konteks berbagi. |
| TABLE_TAGS | Berisi metadata penandaan tabel dalam tabel. |
| TABLES | Menjelaskan tabel dan tampilan yang ditentukan dalam katalog. |
| VIEWS | Menjelaskan informasi spesifik tentang tampilan-tampilan dalam katalog. |
| VOLUMES | 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
- Skema informasi mengimplementasikan pemfilteran sadar hak istimewa. Anda secara otomatis hanya melihat objek yang Anda memiliki izin Unity Catalog untuk mengakses. Lihat Cara tabel sistem skema informasi menangani izin.
- Sinkronisasi manual yang menggunakan
REPAIR TABLEmungkin diperlukan agar beberapa perubahan metadata katalog tercermin dalam skema informasi. Untuk informasi selengkapnya, lihat REPAIR TABLE . - Semua pengidentifikasi, kecuali nama kolom dan tag, disimpan dalam skema informasi dengan huruf kecil.
Untuk performa kueri, hindari menggunakan fungsi seperti
LOWER()atauUPPER()pada kolom pengidentifikasi. Sebagai gantinya, bandingkan pengidentifikasi secara langsung menggunakan nilai huruf kecil. - Untuk mencegah batas waktu kueri, terapkan filter selektif saat mengkueri skema informasi (misalnya
WHERE table_catalog = 'main' AND table_schema = 'default'). Lihat dokumentasi di atas untuk daftar lengkap kolom yang dapat digunakan sebagai filter untuk setiap tabel Skema Informasi.- Harap dicatat bahwa
LIMITpushdown tidak didukung saat ini, jadi walaupun dapat memangkas hasil, tidak akan meningkatkan kinerja.
- Harap dicatat bahwa
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