Bagikan melalui


Skema informasi

Berlaku untuk:centang tanda ya Databricks SQL centang tanda ya Databricks Runtime 10.4 LTS ke atas centang tanda ya 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.

Diagram ER skema informasi

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 TABLE mungkin 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() atau UPPER() 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 LIMIT pushdown tidak didukung saat ini, jadi walaupun dapat memangkas hasil, tidak akan meningkatkan kinerja.

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