

 Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)을 참조하세요.

# SYS\_QUERY\_TEXT
<a name="SYS_QUERY_TEXT"></a>

SYS\_QUERY\_TEXT를 사용하여 모든 쿼리의 쿼리 텍스트를 볼 수 있습니다. 각 행은 시퀀스 번호 0으로 시작하는 최대 4,000자의 쿼리 텍스트를 나타냅니다. 쿼리 명령문이 4,000자를 초과하는 경우 각 행의 시퀀스 번호를 증가시켜 명령문에 대한 추가 행이 로깅됩니다. 이 뷰는 DDL, 유틸리티, Amazon Redshift 쿼리 및 리더 노드 전용 쿼리와 같은 모든 사용자 쿼리 텍스트를 로깅합니다.

SYS\_QUERY\_TEXT는 모든 사용자에게 표시됩니다. 수퍼유저는 모든 행을 볼 수 있지만 일반 사용자는 자체 데이터만 볼 수 있습니다. 자세한 내용은 [시스템 테이블 및 뷰에 있는 데이터의 가시성](cm_chap_system-tables.md#c_visibility-of-data) 섹션을 참조하세요.

## 테이블 열
<a name="SYS_QUERY_TEXT-table-columns"></a>


| 열 이름  | 데이터 유형  | 설명  | 
| --- | --- | --- | 
| user\_id | 정수 | 쿼리를 제출한 사용자의 식별자입니다. | 
| query\_id | bigint | 쿼리 식별자입니다. | 
| transaction\_id | bigint | 명령문과 연결된 트랜잭션의 ID입니다. | 
| session\_id | 정수 | 쿼리를 실행하는 세션의 프로세스 식별자입니다. | 
| start\_time | timestamp | 쿼리가 시작하는 시간입니다. | 
| SEQUENCE | 정수 | 단일 명령문에 4,000자 이상이 포함된 경우, 해당 명령문에 대해 추가 행이 로깅됩니다. 시퀀스 0이 첫 번째 행이고 1이 두 번째 행이 되는 방식입니다. | 
| 텍스트 | character(4000) | 4,000자 단위로 늘어나는 SQL 쿼리의 텍스트입니다. 이 필드에는 백슬래시(\\) 및 줄 바꿈(\\n) 등의 특수 문자가 포함될 수 있습니다. | 

## 샘플 쿼리
<a name="SYS_QUERY_TEXT-sample-queries"></a>

다음 쿼리는 실행 중인 쿼리와 대기 중인 쿼리를 반환합니다.

```
SELECT user_id, 
 query_id, 
 transaction_id, 
 session_id, start_time, 
 sequence, trim(text) as text from sys_query_text 
 ORDER BY sequence;
```

샘플 출력은 다음과 같습니다.

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

다음 쿼리는 데이터베이스의 그룹에서 부여되거나 해지된 권한을 반환합니다.

```
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 |
+-------------+----------+--------+----------+
```