View a markdown version of this page

Systemtabellen abfragen - Amazon Redshift

Amazon Redshift unterstützt ab Patch 198 nicht mehr die Erstellung neuer Python-UDFs. Bestehende Python-UDFs werden bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im Blog-Posting.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Systemtabellen abfragen

Wenn weder die Treibermetadaten-API noch die SHOW Befehle Ihren Anforderungen entsprechen, können Sie PostgreSQL-Katalogtabellen (pg_*), das Informationsschema (information_schema) oder Amazon Redshift Redshift-Systemansichten abfragen, z. B. direkt. SVV_TABLE_INFO

Dieser Ansatz ist nützlich für Ad-hoc-Erkundungs-, Debugging- oder Verwaltungsaufgaben, die Sie über interaktive SQL-Abfragen ausführen, z. B. im Amazon Redshift Redshift-Abfrage-Editor v2 oder. psql Die Systemkatalogstrukturen können sich jedoch zwischen Amazon Redshift Redshift-Versionen ändern. Wir empfehlen nicht, sich auf direkte Systemtabellenabfragen als Metadatenschnittstelle für die Integration von Produktionsanwendungen zu verlassen.

Gehen Sie bei der Abfrage von Systemtabellen wie folgt vor:

  • Geben Sie Datenbank, Schema und Tabelle an. Um eine optimale Leistung zu erzielen, sollten Sie den Datenbanknamen, den Schemanamen und den Tabellennamen in Ihre Abfragefilter aufnehmen. Durch die Einschränkung des Bereichs wird die Menge an Metadaten reduziert, die Amazon Redshift scannen und zurückgeben muss.

  • Verwenden Sie Gleichheits- oder LIKE-Filter. Verwenden Sie Gleichheit (=) oder LIKE Prädikate in Ihrer WHERE Klausel, um die Ergebnisse einzugrenzen. Vermeiden Sie ungefilterte Abfragen für große Katalogansichten. In Clustern mit vielen Objekten können sie langsam sein.

  • Vermeiden Sie Funktionen in Filterprädikaten. Verwenden Sie in Ihrer WHERE Klausel keine Funktionen wie LOWER() oder die Verkettung von Zeichenketten, wenn Sie Systemtabellenabfragen filtern. Diese verhindern eine effiziente Suche nach Metadaten und können die Abfrageleistung erheblich beeinträchtigen.

Beispiel vs. Anti-pattern Empfohlene Abfragen

-- 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';