본문 바로가기
빅데이터(Big Data)

데이터 레이크의 표준 페더레이션 SQL 쿼리 엔진, Trino 분석

by forward error correction Circle 2026. 5. 12.
반응형

Ⅰ. Trino 란?

 Trino는 2012년 Facebook(현 Meta)에서 페타바이트(PB)급 데이터 웨어하우스 분석을 위해 시작된 PrestoDB를 모태로 하여, 2020년 12월 원조 창립자(Martin Traverso, Dain Sundstrom, David Phillips, Eric Hwang)가 분리·재명명한 분산형 ANSI SQL 쿼리 엔진(Distributed SQL Query Engine)입니다. 단일 SQL 한 줄로 HDFS·S3·MinIO·Hive·Iceberg·Delta Lake·Hudi·MySQL·PostgreSQL·Oracle·Kafka·MongoDB·Elasticsearch·Cassandra·Redis 등 50여 종의 이기종(Heterogeneous) 데이터 소스를 동시에 조인(JOIN)·집계(Aggregate)할 수 있는 페더레이션(Federation) 능력이 가장 큰 차별점입니다. 데이터를 별도로 ETL·복제하지 않고 "데이터가 있는 자리에서 직접 질의(Query Where the Data Lives)"한다는 철학으로 설계되어, 인메모리(In-Memory) MPP(Massive Parallel Processing) 아키텍처와 코디네이터(Coordinator) + 워커(Worker) 모델로 동작합니다. 2025~2026년 현재 Netflix·LinkedIn·Uber·Pinterest·Salesforce·Stripe·Shopify·삼성전자·SK텔레콤·LG U+·쿠팡·네이버·카카오 등 글로벌 빅테크부터 국내 대기업까지 데이터 레이크하우스(Lakehouse)의 인터랙티브 분석 표준으로 채택하고 있으며, AWS Athena·Starburst Galaxy·Ahana(Cloud)도 모두 Trino를 엔진으로 사용합니다.

■ Trino vs Presto vs Spark SQL vs Hive 비교

비교 항목 Trino PrestoDB Spark SQL Apache Hive
처리 모델 인메모리 MPP, 파이프라인 인메모리 MPP RDD/DataFrame, 배치+SQL MapReduce/Tez 기반 배치
주 용도 인터랙티브 SQL 분석·BI·페더레이션 인터랙티브 SQL 분석 대규모 ETL·ML·스트리밍 장기 보관 데이터 SQL ETL
응답 속도 초~수십 초 (Sub-Second 가능) 초~수십 초 분 단위 (배치 최적) 분~시간 단위
데이터 소스 50+ 커넥터 (RDB·NoSQL·Lake·메시지) 30+ 커넥터 파일+JDBC 위주 HDFS+Hive Metastore 중심
장애 처리 FTE(Fault-Tolerant Execution) 지원 기본 미지원 RDD 자동 재계산 Tez/Stage 재시도
표준 호환성 ANSI SQL 광범위 지원 ANSI SQL 일부 HiveQL·SQL 혼용 HiveQL (SQL 부분 호환)
Lakehouse 지원 Iceberg/Delta/Hudi 모두 1급 시민 Iceberg/Delta 일부 Delta Lake 강점 Iceberg 보조 지원
대표 사용처 Netflix, Uber, LinkedIn, Pinterest Meta, Twitter Databricks, 대규모 ML 파이프라인 레거시 EDW, 배치 리포트
관리 주체 Trino Software Foundation Linux Foundation Apache Spark Apache Hive

Ⅱ. Trino 주요 특징

 ⅰ. 페더레이션 SQL (Federated Query)

   : 단일 SQL 안에서 S3 Iceberg 테이블·MySQL 운영 DB·Kafka 토픽·Elasticsearch 인덱스를 JOIN 할 수 있어, ETL 파이프라인을 만들지 않고도 이기종 시스템 간 즉시 분석이 가능합니다.

 ⅱ. 인메모리 MPP 파이프라인

   : 모든 단계(Stage)가 디스크에 중간 결과를 쓰지 않고 메모리·네트워크 셔플(Shuffle)로 스트리밍 처리되어, Hive/MapReduce 대비 10~100배 빠른 인터랙티브 응답을 제공합니다.

 ⅲ. 동적 필터링(Dynamic Filtering)

   : JOIN 시 작은 빌드 측(Build Side)에서 추출한 키 집합을 큰 프로브 측(Probe Side) Parquet/ORC 스캔에 푸시다운(Pushdown)하여 I/O를 90% 이상 절감합니다.

 ⅳ. 비용 기반 옵티마이저(CBO)

   : Iceberg·Hive Metastore 통계, 컬럼 카디널리티(Cardinality), 데이터 크기를 기반으로 JOIN 순서·재분배(Redistribution)·집계 위치를 자동 최적화합니다.

 ⅴ. 풍부한 ANSI SQL 지원

   : Window Function·Lateral Join·CTE·Recursive Query·Geospatial(ST_*)·JSON Path·정규식·UNNEST·MERGE INTO·UPDATE/DELETE(Iceberg) 등 데이터 분석 표준 함수를 폭넓게 지원합니다.

 ⅵ. Iceberg/Delta/Hudi 1급 지원

   : 모던 Lakehouse 3대 테이블 포맷에 대해 INSERT·UPDATE·DELETE·MERGE·Time Travel·Schema Evolution·Branch/Tag 까지 SQL로 직접 수행 가능합니다.

 ⅶ. FTE (Fault-Tolerant Execution)

   : 워커가 죽으면 해당 태스크의 중간 결과를 외부 저장소(S3/HDFS)에 체크포인트하고 자동 재실행하여, 장시간 ETL 쿼리도 안정적으로 완주합니다.

 ⅷ. 보안·거버넌스

   : Apache Ranger·OPA(Open Policy Agent)·OAuth 2.0/OIDC·Kerberos·LDAP·Row/Column-level Security·Data Masking·감사 로깅을 지원하여 엔터프라이즈 데이터 거버넌스 요건을 충족합니다.

 ⅸ. 풍부한 클라이언트 생태계

   : trino-cli·JDBC·ODBC·Python(trino-python-client)·Go·Node.js·dbt-trino·Tableau·Power BI·Superset·Metabase·Redash 등 BI·코드 양쪽 모두에서 표준처럼 사용됩니다.

Ⅲ. Trino 동작 방식

 Trino는 "코디네이터(Coordinator) + 워커(Worker) + 카탈로그(Catalog)" 3계층 분산 아키텍처로 동작합니다. 사용자의 SQL 한 줄이 입력되면 다음 7단계 파이프라인을 거쳐 결과로 변환됩니다.

ⅰ. SQL 제출(Submit) : 사용자가 trino-cli·JDBC·REST(/v1/statement)로 SQL을 코디네이터에 제출합니다.

ⅱ. 파싱·검증(Parse / Analyze) : ANTLR 기반 파서가 AST(Abstract Syntax Tree)를 생성하고, 카탈로그 메타데이터로 컬럼·타입·권한을 검증합니다.

ⅲ. 논리·물리 플랜 생성(Planner / Optimizer) : 비용 기반 옵티마이저(CBO)가 JOIN 순서·재분배·푸시다운 후보를 평가해 물리 실행 플랜(Stage DAG)을 만듭니다.

ⅳ. Stage 분할 및 스플릿 분배(Split Distribution) : 각 Stage가 다수의 Task로 쪼개지고, 커넥터가 데이터 위치 정보를 담은 Split을 생성해 워커에 분배합니다.

ⅴ. 분산 실행(Pipeline Execution) : 워커는 Operator 파이프라인(Scan→Filter→Join→Aggregate→Exchange)을 메모리상에서 스트리밍 실행합니다.

ⅵ. 셔플/Exchange : 단계 간 데이터는 HTTP/2 기반 Exchange Service 로 워커 간 직접 전송되어, 디스크 쓰기 없이 다음 Stage로 흘러갑니다.

ⅶ. 결과 반환(Result Streaming) : 최종 결과는 코디네이터를 통해 클라이언트에 청크 단위로 스트리밍되며, BI 툴은 첫 행을 즉시 받아 시각화할 수 있습니다.

단계 처리 주체 핵심 동작 / 산출물
SQL 제출 클라이언트 → 코디네이터 REST POST /v1/statement, queryId 발급
파싱·분석 코디네이터(Analyzer) AST 생성, 메타·권한 검증, 타입 결정
최적화 코디네이터(CBO) 통계 기반 JOIN 순서·푸시다운·재분배 결정
물리 플랜 코디네이터(Planner) Stage DAG, Task, Operator 파이프라인 구성
스플릿 분배 커넥터 + 코디네이터 데이터 위치(파일·블록·파티션) 단위 Split 생성·할당
분산 실행 워커(Drivers) Scan/Filter/Join/Agg Operator 메모리 파이프라인
Exchange 워커 ↔ 워커 (HTTP/2) 셔플·재분배, FTE 시 외부 스토리지 체크포인트
결과 반환 코디네이터 → 클라이언트 청크 단위 결과 스트리밍, 페이지네이션

Ⅳ. Trino 구성 및 흐름도

 Trino 클러스터는 1개의 Coordinator 와 N개의 Worker, 그리고 외부의 카탈로그(Catalog)·메타스토어(Metastore)·인증(IAM)·오브젝트 스토리지(S3 호환)로 구성됩니다.

구성 요소 역할 비고
Coordinator SQL 파싱·최적화·플래닝, 워커 관리, 결과 반환 단일 노드(HA 시 액티브-대기)
Worker 실제 Operator 파이프라인 실행, 메모리 셔플 수평 확장 가능 (수~수백 대)
Discovery Service 코디네이터 내장, 워커 등록·헬스체크 Coordinator 와 일체형
Connector 데이터 소스별 메타·스플릿·페이지 추상화 모듈 SPI(Service Provider Interface)
Catalog {name}.properties 파일로 정의된 데이터 소스 인스턴스 예) iceberg.properties, mysql_prod.properties
Metastore Hive Metastore / AWS Glue / Nessie / Polaris 메타 카탈로그 Iceberg·Hive·Delta 메타 저장
Object Storage Parquet/ORC/Avro 데이터 파일 보관 S3·MinIO·GCS·ABFS·HDFS
Exchange Storage FTE 모드의 단계 간 중간 결과 체크포인트 S3·MinIO·HDFS
Auth Provider OAuth2/OIDC·Kerberos·LDAP·Password File Keycloak·Okta·Azure AD
Metastore Hive Metastore / AWS Glue / Nessie / Polaris 메타 카탈로그 Iceberg·Hive·Delta 메타 저장
Object Storage Parquet/ORC/Avro 데이터 파일 보관 S3·MinIO·GCS·ABFS·HDFS
Exchange Storage FTE 모드의 단계 간 중간 결과 체크포인트 S3·MinIO·HDFS
Auth Provider OAuth2/OIDC·Kerberos·LDAP·Password File Keycloak·Okta·Azure AD
Security Plugin Apache Ranger·OPA·File-based ACL·Row/Column 마스킹 엔터프라이즈 거버넌스
Web UI 코디네이터 8080 포트, 쿼리·Stage·Task·노드 모니터링 React 기반 대시보드
Client trino-cli·JDBC·Python·Tableau·Superset·dbt-trino REST + Pagination 프로토콜

Ⅴ. Trino 설치 방법

 Trino는 단일 머신 테스트부터 Docker·Kubernetes·베어메탈 운영까지 다양한 방식으로 설치할 수 있습니다. 실무에서 가장 많이 사용되는 4가지 방식을 정리합니다.

ⅰ. Docker 단일 노드 설치 (가장 빠른 시작)

# 1) 공식 Trino 컨테이너 실행 (코디네이터 + 워커 일체형)
docker run --name trino -d -p 8080:8080 trinodb/trino:latest

# 2) 내장 trino-cli 접속
docker exec -it trino trino

# 3) 첫 SQL 실행 (TPC-H 샘플 카탈로그)
trino> SHOW CATALOGS;
trino> SELECT * FROM tpch.tiny.nation LIMIT 10;

# 4) Web UI 접속
# http://localhost:8080 (사용자명만 입력하면 로그인)

# 5) 컨테이너 종료·삭제
docker stop trino && docker rm trino

ⅱ. Tarball 직접 설치 (베어메탈/VM)

# 1) Java 23+ 설치 (Trino 470 기준)
sudo apt update && sudo apt install -y openjdk-23-jdk python3

# 2) Trino 서버 다운로드
cd /opt
wget https://repo1.maven.org/maven2/io/trino/trino-server/470/trino-server-470.tar.gz
sudo tar -xzf trino-server-470.tar.gz
sudo mv trino-server-470 trino && cd trino

# 3) etc/ 설정 디렉토리 구성
sudo mkdir -p etc/catalog data
sudo tee etc/node.properties <<EOF
node.environment=production
node.id=$(uuidgen)
node.data-dir=/opt/trino/data
EOF

sudo tee etc/jvm.config <<EOF
-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+ExplicitGCInvokesConcurrent
-XX:+ExitOnOutOfMemoryError
-Dfile.encoding=UTF-8
EOF

sudo tee etc/config.properties <<EOF
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
discovery.uri=http://127.0.0.1:8080
query.max-memory=8GB
EOF

# 4) 서버 기동
./bin/launcher start
tail -f data/var/log/server.log

ⅲ. Docker Compose 다중 워커 클러스터

# docker-compose.yml
services:
  coordinator:
    image: trinodb/trino:470
    container_name: trino-coordinator
    ports: ["8080:8080"]
    volumes:
      - ./etc/coordinator:/etc/trino
  worker1:
    image: trinodb/trino:470
    volumes: ["./etc/worker:/etc/trino"]
  worker2:
    image: trinodb/trino:470
    volumes: ["./etc/worker:/etc/trino"]
  minio:
    image: minio/minio:latest
    command: server /data --console-address ":9001"
    environment:
      MINIO_ROOT_USER: admin
      MINIO_ROOT_PASSWORD: admin12345
    ports: ["9000:9000", "9001:9001"]

# 실행
docker compose up -d
docker compose exec coordinator trino

ⅳ. Kubernetes(Helm) 운영 배포

# 1) Trino 공식 Helm 차트 등록
helm repo add trino https://trinodb.github.io/charts
helm repo update

# 2) 네임스페이스·values 준비
kubectl create ns trino
cat > values.yaml <<EOF
server:
  workers: 4
coordinator:
  jvm:
    maxHeapSize: "8G"
worker:
  jvm:
    maxHeapSize: "16G"
additionalCatalogs:
  iceberg: |-
    connector.name=iceberg
    iceberg.catalog.type=hive_metastore
    hive.metastore.uri=thrift://hms:9083
    fs.native-s3.enabled=true
EOF

# 3) 설치 / 업그레이드
helm upgrade --install trino trino/trino \
  -n trino -f values.yaml

# 4) 포트포워딩 후 접속
kubectl -n trino port-forward svc/trino 8080:8080
trino --server http://localhost:8080 --user admin

Ⅵ. Trino 사용 방법

 실무에서 가장 자주 사용되는 다섯 가지 패턴 "카탈로그 등록", "Iceberg 테이블 SQL 운영", "이기종 페더레이션 JOIN", "JDBC·Python 클라이언트 접속", "dbt-trino 데이터 모델링"을 살펴봅니다.

ⅰ. Catalog 등록 (Iceberg + MySQL)

# etc/catalog/iceberg.properties (S3 + Hive Metastore)
connector.name=iceberg
iceberg.catalog.type=hive_metastore
hive.metastore.uri=thrift://hms.local:9083
fs.native-s3.enabled=true
s3.endpoint=https://s3.ap-northeast-2.amazonaws.com
s3.region=ap-northeast-2
s3.path-style-access=false

# etc/catalog/mysql_prod.properties (운영 RDB 페더레이션)
connector.name=mysql
connection-url=jdbc:mysql://prod-db.local:3306
connection-user=trino_ro
connection-password=********

# 적용 후 재기동
./bin/launcher restart
trino> SHOW CATALOGS;

ⅱ. Iceberg 테이블 운영 (CTAS · MERGE · Time Travel)

-- 1) 스키마·테이블 생성 + ZSTD 압축 + 파티셔닝
CREATE SCHEMA iceberg.lake WITH (location = 's3://lake/warehouse/');

CREATE TABLE iceberg.lake.orders (
  order_id    BIGINT,
  user_id     BIGINT,
  amount      DECIMAL(18,2),
  country     VARCHAR(2),
  created_at  TIMESTAMP(6) WITH TIME ZONE
)
WITH (
  format = 'PARQUET',
  partitioning = ARRAY['day(created_at)', 'country'],
  format_version = 2
);

-- 2) MERGE 로 UPSERT
MERGE INTO iceberg.lake.orders t
USING staging.new_orders s ON (t.order_id = s.order_id)
WHEN MATCHED THEN UPDATE SET amount = s.amount
WHEN NOT MATCHED THEN INSERT VALUES (s.order_id, s.user_id, s.amount, s.country, s.created_at);

-- 3) Time Travel (스냅샷 기준)
SELECT count(*)
FROM iceberg.lake.orders FOR TIMESTAMP AS OF TIMESTAMP '2026-04-20 00:00:00 UTC';

ⅲ. 이기종 페더레이션 JOIN (Iceberg × MySQL × Kafka)

-- 데이터 레이크 주문 + 운영 DB 사용자 + Kafka 실시간 클릭 스트림
-- → 한 SQL 로 즉시 분석
WITH active_users AS (
  SELECT id, name, country
  FROM mysql_prod.app.users
  WHERE status = 'ACTIVE'
),
recent_clicks AS (
  SELECT user_id, count(*) AS click_cnt
  FROM kafka.events.click_stream
  WHERE _timestamp >= now() - INTERVAL '1' HOUR
  GROUP BY user_id
)
SELECT u.country,
       sum(o.amount)      AS gmv,
       sum(c.click_cnt)   AS recent_click
FROM iceberg.lake.orders o
JOIN active_users   u ON o.user_id = u.id
LEFT JOIN recent_clicks c ON c.user_id = u.id
WHERE o.created_at >= current_date - INTERVAL '7' DAY
GROUP BY u.country
ORDER BY gmv DESC;

ⅳ. JDBC · Python 클라이언트 접속

# [Python] trino-python-client
pip install trino[sqlalchemy]

from trino.dbapi import connect
conn = connect(
    host="trino.company.io",
    port=443,
    http_scheme="https",
    user="hyunsi",
    catalog="iceberg",
    schema="lake",
    auth=trino.auth.OAuth2Authentication(),
)
cur = conn.cursor()
cur.execute("SELECT country, count(*) FROM orders GROUP BY country")
for row in cur.fetchall():
    print(row)

# [Java/JDBC] application.yml
jdbc:trino://trino.company.io:443/iceberg/lake?SSL=true&user=hyunsi

ⅴ. dbt-trino 로 데이터 모델링

# 1) 어댑터 설치
pip install dbt-trino

# 2) profiles.yml
trino_lake:
  outputs:
    prod:
      type: trino
      method: oauth
      host: trino.company.io
      port: 443
      database: iceberg
      schema: mart
  target: prod

# 3) models/mart/dim_country.sql
{{ config(materialized='table',
    properties={'format':'PARQUET',
              'partitioning':"ARRAY['country']"})}}
SELECT country, count(*) AS cnt
FROM {{ source('lake','orders') }}
GROUP BY country;

# 4) 빌드·테스트
dbt build -s dim_country

Ⅶ. Trino 자주 쓰는 명령어

 실무에서 자주 사용되는 trino-cli, SQL DDL/DML, 시스템 함수, REST API 명령을 정리했습니다.

분류 명령 / SQL 설명
서버 기동 ./bin/launcher start | stop | restart | status Trino 데몬 기동·정지·상태 확인
CLI 접속 trino --server https://host:443 --user hyunsi --catalog iceberg --schema lake 기본 trino-cli 접속
카탈로그 조회 SHOW CATALOGS; / SHOW SCHEMAS FROM iceberg; 등록된 데이터 소스·스키마 목록
테이블 정보 SHOW TABLES; / DESCRIBE orders; / SHOW CREATE TABLE orders; 스키마·DDL 확인
통계 분석 ANALYZE iceberg.lake.orders; CBO 용 통계 갱신
실행 계획 EXPLAIN [ANALYZE] [VERBOSE] SELECT ...; 논리·물리 플랜·실측 비용 확인
DDL CREATE TABLE / DROP TABLE / ALTER TABLE 표준 ANSI DDL
DML INSERT / UPDATE / DELETE / MERGE INTO Iceberg/Delta/Hudi 에서 지원
Time Travel SELECT * FROM t FOR VERSION AS OF 1234567890 스냅샷 ID 또는 TIMESTAMP 기준
스냅샷 관리 ALTER TABLE t EXECUTE expire_snapshots(retention_threshold => '7d') Iceberg 스냅샷 만료
파일 정리 ALTER TABLE t EXECUTE optimize 소형 파일 컴팩션
시스템 메타 SELECT * FROM system.runtime.queries 현재 실행 중 쿼리 목록
노드 상태 SELECT * FROM system.runtime.nodes 코디네이터·워커 가용성·버전 확인
세션 설정 SET SESSION query_max_memory='4GB'; 현재 세션 한정 옵션 변경
FTE 활성화 SET SESSION retry_policy='TASK'; Fault-Tolerant Execution 모드 전환
REST API curl -X POST https://host/v1/statement -d "SELECT 1" 언어 무관 쿼리 제출 인터페이스
Web UI http://coordinator:8080/ui/ 쿼리·Stage·노드 모니터링 대시보드
성능 함수 approx_distinct(col) /
approx_percentile(col, 0.95)
HyperLogLog·t-digest 근사 집계
JSON 처리 json_extract_scalar(j, '$.user.id') JSON Path 기반 추출
UNNEST SELECT u FROM t CROSS JOIN UNNEST(arr) AS x(u) 배열·맵 행 단위 펼치기
지오 ST_Distance(ST_Point(x1,y1),
ST_Point(x2,y2))
PostGIS 호환 공간 함수
Windows SUM(x) OVER (PARTITION BY k ORDER BY t ROWS 6 PRECEDING) 윈도우·이동 평균 집계
메모리 종료 CALL system.runtime.kill_query(query_id => '...', message => 'OOM') 관리자가 쿼리 강제 종료

Ⅷ. Trino 활용 방안

 Trino는 "데이터를 옮기지 않고 SQL 한 줄로 모든 시스템을 분석한다"는 모토로 모던 데이터 플랫폼의 인터랙티브 분석 표준이 되었습니다. 2025~2026년 실무에서 가장 효과적인 8가지 활용 시나리오를 정리합니다.

활용 분야 시나리오 적용 효과 대표 사례
레이크하우스 분석 Iceberg/Delta/Hudi 인터랙티브 SQL S3 위 페타바이트 테이블에 BI 도구가 ANSI SQL 로 접속해 초~수십 초 응답을 받고, MERGE/UPDATE/DELETE 까지 SQL 만으로 운영하여 ETL 코드를 80% 이상 제거합니다. Netflix, LinkedIn, 쿠팡, 네이버
페더레이션 분석 DW + 운영 DB + Kafka 한 SQL 조인 데이터를 별도 ETL 로 옮기지 않고도 운영계 MySQL/PostgreSQL·실시간 Kafka·서비스 로그 Elasticsearch 까지 즉시 통합 분석해 데이터 복제 비용·지연을 획기적으로 줄입니다. Pinterest, Uber,
Salesforce
셀프 BI Tableau·Superset·PowerBI 백엔드 Tableau Live Connection·Superset SQL Lab·PowerBI DirectQuery 의 백엔드 엔진으로 사용해, 분석가가 데이터 마트 생성 없이 데이터 레이크를 직접 탐색하도록 지원합니다. Apache Superset, Tableau, Looker
데이터 모델링 dbt-trino 기반 ELT 변환 파이프라인 dbt 의 모듈식 SQL 모델을 Trino 클러스터에서 그대로 실행해, 별도 Spark/Flink 클러스터 없이도 모던 데이터 스택의 T(Transform) 단계를 완성합니다. dbt Labs,
Astronomer,
Airbyte
서버리스 분석 AWS Athena · Starburst Galaxy AWS Athena 와 Starburst Galaxy 가 모두 Trino 를 코어 엔진으로 사용하며, 사용자는 인프라 없이 S3 데이터를 SQL 로 즉시 쿼리하고 사용량(스캔 TB) 단위로만 비용을 지불합니다. AWS Athena,
Starburst Galaxy
데이터 메시 도메인별 카탈로그 + 글로벌 SQL 팀별로 격리된 도메인 데이터 스토어를 Trino 카탈로그로 등록하고 글로벌 SQL 한 줄로 조인해, Data Mesh 의 "발견·접근·자율" 원칙을 실현합니다. Zalando, Intuit,
ThoughtWorks
대규모 ETL/리포팅 FTE 모드의 야간 배치 Fault-Tolerant Execution 으로 수 시간짜리 ETL/리포팅 쿼리도 워커 장애에 무관하게 자동 재시도되어, Spark 없이도 안정적인 야간 배치 운영이 가능합니다. Stripe, Shopify,
카카오
머신러닝 피처 Feature Store 백엔드 SQL 엔진 Feast·Tecton 등 Feature Store 가 Trino 를 백엔드로 사용해 학습용·온라인 추론용 피처를 동일 SQL 정의로 산출, 학습/서빙 스큐(Train-Serving Skew) 를 제거합니다. Feast, Tecton,
Hopsworks

 

 

반응형