Amazon Redshift ne prendra plus en charge la création de nouveaux UDFs Python à partir du patch 198. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement jusqu’au 30 juin 2026. Pour plus d’informations, consultez le billet de blog
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Interrogation des tables du système
Si ni l'API de métadonnées du pilote ni SHOW les commandes ne répondent à vos besoins, vous pouvez interroger les tables de catalogue PostgreSQL pg_* (), le schéma d'informations () ou les information_schema vues du système Amazon Redshift, par exemple directement. SVV_TABLE_INFO
Cette approche est utile pour les tâches d'exploration, de débogage ou d'administration ad hoc que vous exécutez à partir de requêtes SQL interactives, par exemple dans l'éditeur de requêtes Amazon Redshift v2 ou. psql Cependant, les structures du catalogue système peuvent changer selon les versions d'Amazon Redshift. Nous vous déconseillons de vous fier aux requêtes directes des tables système comme interface de métadonnées pour les intégrations d'applications de production.
Lorsque vous interrogez les tables système, suivez les pratiques suivantes :
-
Spécifiez la base de données, le schéma et la table. Pour de meilleures performances, incluez le nom de la base de données, le nom du schéma et le nom de la table dans vos filtres de requête. La réduction de la portée réduit la quantité de métadonnées qu'Amazon Redshift doit scanner et renvoyer.
-
Utilisez des filtres d'égalité ou de type LIKE. Utilisez equality (
=) ou desLIKEprédicats dans votreWHEREclause pour affiner les résultats. Évitez les requêtes non filtrées portant sur des vues de catalogue volumineuses. Ils peuvent être lents sur des clusters contenant de nombreux objets. -
Évitez les fonctions dans les prédicats de filtre. N'utilisez pas de fonctions telles que
LOWER()la concaténation de chaînes dans votreWHEREclause lorsque vous filtrez des requêtes de table système. Cela empêche les recherches de métadonnées efficaces et peut dégrader considérablement les performances des requêtes.
Exemple Anti-pattern vs. Requêtes recommandées
-- 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';