lakeFS와 Trino / Presto 함께 사용하기
Trino와 Presto는 하나 이상의 이기종 데이터 소스에 분산된 대규모 데이터를 쿼리하도록 설계된 분산 SQL 쿼리 엔진이에요. lakeFS는 Iceberg REST Catalog를 통해 Trino/Presto와 연동되며, 데이터 경로에서는 완전히 분리된 채 테이블 메타데이터의 버전 관리를 담당해요.
출처: 문서
본문
Trino와 Presto는 하나 이상의 이기종 데이터 소스에 분산되어 있는 큰 데이터 집합을 쿼리하도록 설계된 분산 SQL 쿼리 엔진이에요.
Iceberg REST Catalog
Trino/Presto에서 lakeFS를 사용하는 권장 방식은 lakeFS Iceberg REST Catalog를 통하는 거예요. lakeFS는 데이터 경로 바깥에 완전히 남아 있어서, 데이터는 Trino/Presto 실행기(executor)가 기반 오브젝트 스토어에 직접 읽고 쓰고, lakeFS는 테이블 메타데이터의 버전을 관리해요.
설정
Iceberg REST Catalog를 사용하려면 Trino/Presto가 Iceberg REST catalog 엔드포인트를 사용하도록 설정해야 해요:
# example: /etc/trino/catalog/lakefs.properties
connector.name=iceberg
# REST Catalog connection
iceberg.catalog.type=rest
iceberg.rest-catalog.uri=https://lakefs.example.com/iceberg/api
iceberg.rest-catalog.nested-namespace-enabled=true
# REST Catalog authentication
iceberg.rest-catalog.security=OAUTH2
iceberg.rest-catalog.oauth2.credential=${ENV:LAKEFS_CREDENTIALS}
iceberg.rest-catalog.oauth2.server-uri=https://lakefs.example.com/iceberg/api/v1/oauth/tokens
# Object storage access to underlying tables (modify this to match your storage provider)
fs.hadoop.enabled=false
fs.native-s3.enabled=true
s3.region=us-east-1
s3.aws-access-key=${ENV:AWS_ACCESS_KEY_ID}
s3.aws-secret-key=${ENV:AWS_SECRET_ACCESS_KEY}
사용 방법
설정이 끝나면 Iceberg REST Catalog를 사용해 Iceberg 테이블을 쿼리하고 업데이트할 수 있어요.
USE "repo.main.inventory";
SHOW TABLES;
SELECT * FROM books LIMIT 100;
USE "repo.new_branch.inventory";
SHOW TABLES;
SELECT * FROM books LIMIT 100;
더 알아보기 (Learn more)
공식 문서의 자세한 내용은 https://docs.lakefs.io/integrations/presto_trino/에서 확인하실 수 있어요.