본문 바로가기
WIKI 기술 지식 베이스

lakeFS와 AWS Glue & Amazon Athena 함께 사용하기

원문 보기 위키 갱신

lakeFS Team과 lakeFS Enterprise에서 사용할 수 있어요. 무료 평가판을 시작하거나 문의하세요.

팁

이 연동에는 lakeFS Iceberg REST 카탈로그가 활성화되어 있어야 해요. 시작하려면 문의하세요!

출처: 문서

본문

개요

Amazon Athena는 AWS Glue Catalog Federation을 통해 lakeFS가 관리하는 Apache Iceberg 테이블을 직접 쿼리할 수 있어요 — 데이터 복사나 메타데이터 동기화가 필요 없어요.

Athena는 lakeFS를 통해 테이블 메타데이터를 실시간으로 탐색하고, 하부 데이터 파일은 S3에서 직접 읽어요.

설정

Athena에서 쿼리하기 전에, lakeFS Iceberg REST 카탈로그에 연결되는 페더레이티드 Glue 카탈로그를 만들어야 해요. Glue Data Catalog 연동 가이드에서 다음 단계별 안내를 따르세요:

  • lakefs-glue CLI 도구 설치.

  • lakeFS 저장소와 브랜치를 가리키는 페더레이티드 카탈로그 생성.

  • 적절한 IAM 주체에 접근 권한 부여.

Athena에서 쿼리하기

페더레이티드 카탈로그가 만들어지면, 카탈로그 이름을 접두사로 써서 Athena에서 lakeFS 테이블을 직접 쿼리할 수 있어요:

SELECT * FROM "lakefs-catalog"."default"."my_table" LIMIT 10;

lakeFS가 관리하는 테이블에 걸쳐 집계와 조인을 실행해요:

SELECT
    category,
    COUNT(*) AS total,
    SUM(amount) AS total_amount
FROM "lakefs-catalog"."default"."transactions"
GROUP BY category
ORDER BY total_amount DESC;

브랜치에 걸쳐 데이터 비교하기

서로 다른 ref마다 별도 카탈로그를 만들면, Athena에서 직접 브랜치, 태그, 커밋 사이의 데이터를 비교할 수 있어요:

-- Compare row counts between production and dev
SELECT 'main' AS branch, COUNT(*) AS row_count
FROM "my-repo-main"."default"."my_table"
UNION ALL
SELECT 'dev' AS branch, COUNT(*) AS row_count
FROM "my-repo-dev"."default"."my_table";

제한

  • 읽기 전용: AWS Glue Catalog Federation은 읽기 쿼리만 지원해요. INSERT, CREATE TABLE 등 다른 쓰기 작업은 Athena를 통해 지원되지 않아요.

  • 카탈로그당 단일 ref: 각 페더레이티드 카탈로그는 하나의 lakeFS ref를 가리켜요. 여러 브랜치나 태그를 쿼리하려면 카탈로그를 여러 개 만드세요.

  • 플랫 네임스페이스만 지원: AWS Glue Catalog Federation은 플랫한 catalog.namespace.table 구조만 지원해요 — 중첩 네임스페이스는 지원되지 않아요.

더 알아보기 (Learn more)

공식 문서: lakeFS AWS Glue & Athena 연동