System 커넥터
System 커넥터
System 커넥터는 현재 실행 중인 Trino 클러스터에 대한 정보와 메트릭을 제공해요. 이를 일반 SQL 쿼리로 사용할 수 있게 해줘요.
출처: 문서
본문
설정 (Configuration)
System 커넥터는 설정할 필요가 없어요. system이라는 카탈로그로 자동 사용할 수 있어요.
System 커넥터 사용 (Using the System connector)
사용 가능한 system 스키마 나열:
SHOW SCHEMAS FROM system;
스키마 중 하나의 테이블 나열:
SHOW TABLES FROM system.runtime;
테이블 중 하나 조회:
SELECT * FROM system.runtime.nodes;
실행 중인 쿼리 종료:
CALL system.runtime.kill_query(query_id => '20151207_215727_00146_tx3nr', message => 'Using too many resources');
System 커넥터 테이블 (System connector tables)
metadata.catalogs
catalogs 테이블은 사용 가능한 카탈로그 목록을 담아요.
metadata.schema_properties
schema properties 테이블은 새 스키마를 만들 때 설정할 수 있는 속성 목록을 담아요.
metadata.table_properties
table properties 테이블은 새 테이블을 만들 때 설정할 수 있는 속성 목록을 담아요.
metadata.materialized_views
materialized views 테이블은 모든 구체화된 뷰에 대해 다음 정보를 담아요.
| 컬럼 | 설명 |
|---|---|
catalog_name |
구체화된 뷰를 담은 카탈로그 이름. |
schema_name |
catalog_name 안에서 구체화된 뷰를 담은 스키마 이름. |
name |
구체화된 뷰 이름. |
storage_catalog |
구체화된 뷰를 뒷받침하는 스토리지 테이블에 사용되는 카탈로그 이름. |
storage_schema |
storage_catalog 안에서 구체화된 뷰를 뒷받침하는 스토리지 테이블에 사용되는 스키마 이름. |
storage_table |
구체화된 뷰를 뒷받침하는 스토리지 테이블 이름. |
freshness |
스토리지 테이블에 있는 데이터의 신선도. 구체화된 뷰에 대한 쿼리는 STALE(오래됨)이 아니라면 스토리지 테이블에 접근하고, 그렇지 않으면 definition을 사용해 소스 테이블의 기반 데이터에 접근해요. |
last_fresh_time |
구체화된 뷰의 마지막 리프레시 날짜와 시간. |
comment |
구체화된 뷰에 대한 사용자 제공 설명문. |
definition |
구체화된 뷰가 제공하는 데이터를 정의하는 SQL 쿼리. |
metadata.materialized_view_properties
materialized view properties 테이블은 새 구체화된 뷰를 만들 때 설정할 수 있는 속성 목록을 담아요.
metadata.table_comments
table comments 테이블은 테이블 코멘트 목록을 담아요.
runtime.nodes
nodes 테이블은 Trino 클러스터에서 보이는 노드 목록과 그 상태를 담아요.
runtime.optimizer_rule_stats
optimizer_rule_stats 테이블은 쿼리 계획 단계에서 옵티마이저 규칙 호출에 대한 통계를 담아요. 이 통계는 서버 시작 이후 모든 쿼리에 대해 집계돼요. 이 테이블은 옵티마이저 규칙의 호출 빈도, 실패율, 성능에 대한 정보를 담아요. 예를 들어 invocations와 average_time 컬럼을 곱하면 어떤 규칙이 쿼리 계획 시간에 가장 큰 영향을 주는지 감을 잡을 수 있어요.
runtime.queries
queries 테이블은 Trino 클러스터에서 현재 그리고 최근 실행 중인 쿼리에 대한 정보를 담아요. 이 테이블에서 원래 쿼리 SQL 텍스트, 쿼리를 실행한 사용자 정체성, 쿼리가 큐에서 대기하고 분석된 시간을 포함한 쿼리 성능 정보를 알 수 있어요.
runtime.tasks
tasks 테이블은 Trino 쿼리에 포함된 작업에 대한 정보를 담아요. 어디서 실행됐는지, 각 작업이 처리한 행 수와 바이트 수가 포함돼요.
runtime.transactions
transactions 테이블은 현재 열려 있는 트랜잭션 목록과 관련 메타데이터를 담아요. 생성 시간, 유휴 시간, 초기화 파라미터, 접근한 카탈로그 같은 정보가 포함돼요.
System 커넥터 프로시저 (System connector procedures)
runtime.kill_query(query_id, message)
query_id로 식별되는 쿼리를 종료해요. 쿼리 실패 메시지는 지정한 message를 포함해요. message는 선택 사항이에요.
타입 매핑 (Type mapping)
Trino는 System 스키마 안에서 쓰이는 모든 데이터 타입을 지원해요. 그래서 특별한 매핑이 필요 없어요.
SQL 지원 (SQL support)
이 커넥터는 Trino 시스템 데이터와 메타데이터에 접근하는 전역적으로 사용 가능한 문장과 읽기 연산 문장을 제공해요.
더 알아보기 (Learn more)
System 커넥터의 runtime 스키마는 운영 모니터링에 특히 유용해요. Trino 클러스터 운영 전반은 운영 문서를 참고해 보세요.