Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dalla Patch 198. Le UDF Python esistenti continueranno a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog
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 del driver né SHOW i comandi soddisfano le tue esigenze, puoi interrogare le tabelle del catalogo PostgreSQL (), lo schema informativo pg_* () o le viste di sistema di Amazon Redshiftinformation_schema, ad esempio direttamente. SVV_TABLE_INFO
Questo approccio è utile per attività di esplorazione, debug o amministrative ad hoc eseguite da query SQL interattive, ad esempio in Amazon Redshift query editor v2 o. psql Tuttavia, le strutture del catalogo di sistema possono cambiare tra le versioni di Amazon Redshift. Non è consigliabile affidarsi a query dirette su tabelle di sistema come interfaccia di metadati per le integrazioni di applicazioni di produzione.
Quando esegui query nelle tabelle di sistema, segui queste pratiche:
-
Specificate il database, lo schema e la tabella. Per prestazioni ottimali, includi il nome del database, il nome dello schema e il nome della tabella nei filtri di query. Il restringimento dell'ambito riduce la quantità di metadati di cui Amazon Redshift ha bisogno per scansionare e restituire.
-
Usa filtri di uguaglianza o LIKE. Usa l'uguaglianza (
=) oLIKEi predicati nellaWHEREclausola per restringere i risultati. Evita le query non filtrate relative a visualizzazioni di catalogo di grandi dimensioni. Possono essere lente su 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 in modo significativo 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';