개요
Trino가 데이터를 다룰 때 사용하는 개념에 대해 정리한다.
Connector
데이터베이스 드라이버와 유사하게 Trino를 Hive나 관계형 데이터베이스에 맞게 조정한다. 즉, 데이터 소스에 접근할 수 있는 인터페이스이다.
Trino의 SPI(Service Provider Interface)를 구현한 것으로 표준 API를 사용해 리소스와 상호작용할 수 있도록 한다. Trinn은 여러 내장 커넥터를 포함하고 있어 다양한 데이터 소스의 데이터에 접근할 수 있다.
Catalog
Connector를 사용하여 Catalog 속성 파일로 구성된 데이터 소스
테이블 모음을 제공하는 하나 이상의 스키마가 포함되어 있다. Trino에서 SQL을 실행하는 것은 하나 이상의 카탈로그에 대해 SQL을 실행하는 것이다.
모든 카탈로그는 특정 커넥터와 연결된다. 카탈로그 설정에는 connector.name 속성이 반드시 포함되어 있어 있어야 하며, connector.name은 카탈로그 매니저가 커넥터를 생성하는 데 사용된다. 두 개 이상의 카탈로그는 하나의 커넥터를 이용해 같은 유형의 다른 데이터베이스에 접근할 수 있다.
$TRINO_HOME/etc/catalog 경로에 정의되며, 카탈로그, 스키마 및 테이블 정보는 Trino에 저장되지 않는다.
Schema
테이블, 뷰 및 다양한 다른 객체를 포함하며 테이블을 구성하는 방법이다. 카탈로그와 스키마는 쿼리할 수 있는 테이블 집합을 정의한다.
일반적으로 카탈로그를 생성할 때 이미 스키마가 구성되어 있으며, 스키마를 직접 생성(CREATE)하거나 수정할 수도 있다.
-- 스키마 생성
CREATE SCHEMA [ IF NOT EXISTS ] schema_name
[ WITH ( property_name = expression [, ...] ) ]
-- 스키마 이름 변경
ALTER SCHEMA name RENAME TO new_name
-- 스키마 삭제
DROP SCHEMA [ IF EXISTS ] schema_name
Table
관계형 데이터베이스와 동일한 개념. 정렬되지 않은 행 집합으로, 테이터 유형이 있는 명명된 열로 구성된다.
소스 데이터에서 테이블로의 매핑은 커넥터에 의해 정의된다.
SQL에서 테이블은 catalog-name.schema-name.table-name과 같은 규칙을 이용해 접근할 수 있다.
스키마와 마찬가지로 테이블 또한 Trino를 이용해 생성할 수 있다.
참고 문서
https://trino.io/docs/current/overview/concepts.html#data-sources
Trino: The Definitive Guide CHAPTER 8 Using SQL in Trino