Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting
SYS_QUERY_TEXT
Verwenden Sie SYS_QUERY_TEXT, um den Abfragetext aller Abfragen anzuzeigen. Jede Zeile stellt den Abfragetext von Abfragen mit bis zu 4 000 Zeichen dar, beginnend mit der Sequenznummer 0. Wenn die Abfrageanweisung mehr als 4 000 Zeichen enthält, werden zusätzliche Zeilen für die Anweisung protokolliert, indem die Sequenznummer für jede Zeile erhöht wird. In dieser Ansicht werden alle Benutzerabfragetexte protokolliert, z. B. DDL-, Utility-, Amazon-Redshift-Abfragen und reine Führungsknotenabfragen.
SYS_QUERY_TEXT ist für alle Benutzer sichtbar. Superuser können alle Zeilen sehen; reguläre Benutzer können nur ihre eigenen Daten sehen. Weitere Informationen finden Sie unter Sichtbarkeit der Daten in Systemtabellen und Ansichten.
Tabellenspalten
| Spaltenname | Datentyp | Beschreibung |
|---|---|---|
| user_id | integer | Die ID des Benutzers, der die Abfrage gesendet hat. |
| query_id | bigint | Die Abfrage-ID. |
| transaction_id | bigint | Die ID der mit der Anweisung verbundenen Transaktion. |
| session_id | Ganzzahl | Die Prozess-ID der Sitzung, die die Abfrage ausführt. |
| start_time | Zeitstempel | Der Zeitpunkt, an dem die Abfrage gestartet wird. |
| sequence | Ganzzahl | Wenn eine einzelne Anweisung mehr als 4 000 Zeichen enthält, werden weitere Zeilen für diese Anweisung protokolliert. Sequenz 0 ist die erste Zeile, 1 die zweite Zeile usw. |
| text | Zeichen (4000) | Der Text der SQL-Abfrage, der in Schritten von 4 000 Zeichen angegeben ist. Diese Feld kann Sonderzeichen wie Backslash (\) und Zeilenumbruch (\n) enthalten. |
Beispielabfragen
Die folgende Abfrage gibt laufende und in der Warteschlange stehende Abfragen zurück.
SELECT user_id, query_id, transaction_id, session_id, start_time, sequence, trim(text) as text from sys_query_text ORDER BY sequence;
Beispielausgabe.
user_id | query_id | transaction_id | session_id | start_time | sequence | text --------+----------+-----------------+------------+----------------------------+----------+---------------------------------------------------------------------------------------------------------------------- 100 | 4 | 1396 | 1073750220 | 2023-04-28 16:44:55.887184 | 0 | SELECT trim(text) as text, sequence FROM sys_query_text WHERE query_id = pg_last_query_id() AND user_id > 1 AND start _time > '2023-04-28 16:44:55.922705+00:00'::timestamp order by sequence;
Die folgende Abfrage gibt die Berechtigungen zurück, die Gruppen in Ihrer Datenbank erteilt oder entzogen wurden.
SELECT SPLIT_PART(text, ' ', 1) as grantrevoke, SPLIT_PART((SUBSTRING(text, STRPOS(UPPER(text), 'GROUP'))), ' ', 2) as group, SPLIT_PART((SUBSTRING(text, STRPOS(UPPER(text), ' '))), 'ON', 1) as type, SPLIT_PART((SUBSTRING(text, STRPOS(UPPER(text), 'ON'))), ' ', 2) || ' ' || SPLIT_PART((SUBSTRING(text, STRPOS(UPPER(text), 'ON'))), ' ', 3) as entity FROM SYS_QUERY_TEXT WHERE (text LIKE 'GRANT%' OR text LIKE 'REVOKE%') AND text LIKE '%GROUP%';+-------------+----------+--------+----------+ | grantrevoke | group | type | entity | +-------------+----------+--------+----------+ | GRANT | bi_group | SELECT | TABLE t1 | | GRANT | bi_group | SELECT | TABLE t1 | | GRANT | bi_group | SELECT | TABLE t1 | | GRANT | bi_group | USAGE | TABLE t1 | | GRANT | bi_group | SELECT | TABLE t1 | | GRANT | bi_group | SELECT | TABLE t1 | +-------------+----------+--------+----------+