Amazon Redshift unterstützt die Verwendung von Python-UDFs nach dem 30. Juni 2026 nicht mehr. Wir werden damit beginnen, es schrittweise durchzusetzen. Weitere Informationen zum Ende der Lebensdauer von Python und zu den Migrationsoptionen finden Sie im Blogbeitrag
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 Treiber-Metadaten-API noch die SHOW Befehle Ihren Anforderungen entsprechen, können Sie PostgreSQL-Katalogtabellen (pg_*), das Informationsschema (information_schema) oder Amazon Redshift-Systemansichten abfragen, z. B. direkt. SVV_TABLE_INFO
Dieser Ansatz ist nützlich für Ad-hoc-Explorations-, Debugging- oder Verwaltungsaufgaben, die Sie über interaktive SQL-Abfragen ausführen, z. B. im Amazon Redshift-Abfrage-Editor v2 oder. psql Die Strukturen des Systemkatalogs können sich jedoch in allen Amazon Redshift-Versionen ändern. Es wird nicht empfohlen, direkte Systemtabellenabfragen als Metadatenschnittstelle für die Integration von Produktionsanwendungen zu verwenden.
Gehen Sie bei der Abfrage von Systemtabellen wie folgt vor:
-
Geben Sie Datenbank, Schema und Tabelle an. Um eine optimale Leistung zu erzielen, nehmen Sie den Datenbanknamen, den Schemanamen und den Tabellennamen in Ihre Abfragefilter auf. Durch die Eingrenzung des Umfangs wird die Menge an Metadaten reduziert, die Amazon Redshift scannen und zurückgeben muss.
-
Verwenden Sie Gleichheits- oder LIKE-Filter. Verwenden Sie Gleichheit (
=) oderLIKEPrädikate in IhrerWHEREKlausel, um die Ergebnisse einzugrenzen. Vermeiden Sie ungefilterte Abfragen bei großen Katalogansichten. Bei Clustern mit vielen Objekten können sie langsam sein. -
Vermeiden Sie Funktionen in Filterprädikaten. Verwenden Sie in Ihrer
WHEREKlausel keine Funktionen wieLOWER()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';