Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengkueri tabel sistem
Jika API metadata driver maupun SHOW perintah tidak memenuhi kebutuhan Anda, Anda dapat menanyakan tabel katalog PostgreSQL (pg_*), skema informasi (information_schema), atau tampilan sistem Amazon Redshift seperti secara langsung. SVV_TABLE_INFO
Pendekatan ini berguna untuk eksplorasi ad hoc, debugging, atau tugas administratif yang Anda jalankan dari kueri SQL interaktif, misalnya di editor kueri Amazon Redshift v2 ataupsql. Namun, struktur katalog sistem dapat berubah di seluruh rilis Amazon Redshift. Kami tidak menyarankan Anda mengandalkan kueri tabel sistem langsung sebagai antarmuka metadata untuk integrasi aplikasi produksi.
Saat Anda menanyakan tabel sistem, ikuti praktik berikut:
-
Tentukan database, skema, dan tabel. Untuk kinerja terbaik, sertakan nama database, nama skema, dan nama tabel dalam filter kueri Anda. Mempersempit cakupan mengurangi jumlah metadata yang perlu dipindai dan dikembalikan oleh Amazon Redshift.
-
Gunakan filter kesetaraan atau LIKE. Gunakan persamaan (
=) atauLIKEpredikat dalamWHEREklausa Anda untuk mempersempit hasil. Hindari kueri tanpa filter terhadap tampilan katalog besar. Mereka bisa lambat pada cluster dengan banyak objek. -
Hindari fungsi dalam predikat filter. Jangan gunakan fungsi seperti
LOWER()atau penggabungan string dalamWHEREklausa Anda saat Anda memfilter kueri tabel sistem. Ini mencegah pencarian metadata yang efisien dan dapat menurunkan kinerja kueri secara signifikan.
Contoh Anti-pattern vs. Kueri yang Direkomendasikan
-- Avoid: SELECT * FROM svv_all_columns; -- Recommended: SELECT * FROM svv_all_columns WHERE database_name = 'dev' and schema_name = 'public' AND table_name = 'sales';
-- Avoid: SELECT * FROM svv_all_columns WHERE LOWER(schema_name) = 'public'; -- Recommended: SELECT * FROM svv_all_columns WHERE schema_name = 'public' AND table_name LIKE 'sales%';
-- Avoid: SELECT * FROM svv_all_columns WHERE database_name || '.' || schema_name || '.' || table_name = 'dev.public.sales'; -- Recommended: SELECT * FROM svv_all_columns WHERE database_name = 'dev' and schema_name = 'public' AND table_name = 'sales';
-- Avoid: SELECT * FROM svv_all_columns WHERE CONCAT(database_name, '.', schema_name) = 'dev.public'; -- Recommended: SELECT * FROM svv_all_columns WHERE database_name = 'dev' and schema_name = 'public';