Amazon Redshift non supporterà più l'uso delle UDF Python dopo il 30 giugno 2026. Inizieremo ad applicarlo per fasi. Per ulteriori informazioni sulla fine del ciclo di vita e sulle opzioni di migrazione di Python, consulta il post del
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Interrogazione delle tabelle di sistema
Se né l'API dei metadati dei driver né SHOW i comandi soddisfano le tue esigenze, puoi interrogare direttamente le tabelle del catalogo PostgreSQL (), lo schema informativo (pg_*) o le viste del sistema Amazon Redshift. information_schema SVV_TABLE_INFO
Questo approccio è utile per attività di esplorazione, debug o amministrative ad hoc eseguite da query SQL interattive, ad esempio nell'editor di query Amazon Redshift v2 o. psql Tuttavia, le strutture dei cataloghi di sistema possono cambiare tra le versioni di Amazon Redshift. Non è consigliabile affidarsi alle interrogazioni dirette sulle tabelle di sistema come interfaccia di metadati per le integrazioni delle applicazioni di produzione.
Quando interroghi le tabelle di sistema, segui queste pratiche:
-
Specifica database, schema e tabella. Per ottenere prestazioni ottimali, includi il nome del database, il nome dello schema e il nome della tabella nei filtri delle query. La riduzione dell'ambito riduce la quantità di metadati che Amazon Redshift deve scansionare e restituire.
-
Usa i filtri Equality o LIKE. Usa l'uguaglianza (
=) oLIKEi predicati nella tuaWHEREclausola per restringere i risultati. Evita le interrogazioni non filtrate su visualizzazioni di catalogo di grandi dimensioni. Possono essere lente nei cluster con molti oggetti. -
Evita le funzioni nei predicati dei filtri. Non utilizzate funzioni come
LOWER()la concatenazione di stringhe nellaWHEREclausola quando filtrate le query delle tabelle di sistema. Questi impediscono una ricerca efficiente dei metadati e possono ridurre significativamente le prestazioni delle query.
Anti-pattern Esempio vs. Domande consigliate
-- 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';