외부 테이블과 Iceberg 테이블

Snowflake 데이터 파이프라인 자동화

Emily Melhuish

Technical Curriculum Developer, Snowflake

외부 테이블이란?

사용 사례:

  • Harbr은 매일 수십 개의 파트너로부터 파일을 수신
  • Snowflake에 로드하는 것은 적합하지 않음

외부 테이블.png

외부 테이블

  • 데이터는 S3, GCS, Azure Blob에 유지 — Snowflake로 이동하지 않음
  • Snowflake는 메타데이터(파일 경로, 스키마)만 저장
  • 쿼리 시점에 파일을 읽음
Snowflake 데이터 파이프라인 자동화

외부 테이블 생성

CREATE EXTERNAL TABLE logistics.supplier_inventory
  WITH LOCATION = @harbr_stage/inventory/
  FILE_FORMAT = (TYPE = 'PARQUET')
  AUTO_REFRESH = TRUE;
Snowflake 데이터 파이프라인 자동화

외부 테이블 사용 시기

  • 파트너 소유 데이터 — 데이터 관리 없이 쿼리 가능
  • 대용량 파일, 비정기적 조회 — 월 1회 접근 데이터의 로드 불필요
  • 규정 준수로 이동 불가 — 파일을 원래 위치에 유지해야 함
  • 로드 전 탐색 — 원시 파일을 먼저 읽고 로드 여부 결정
-- Query partner inventory 
SELECT supplier_id,
       COUNT(*)       AS file_count,
       SUM(quantity)  AS total_units
FROM logistics.supplier_inventory
WHERE delivery_date >= '2024-01-01'
GROUP BY supplier_id;
Snowflake 데이터 파이프라인 자동화

외부 테이블 vs 데이터 로드

외부 테이블

  • Snowflake 스토리지 비용 없음
  • 클라우드 스토리지의 현재 상태를 항상 반영
  • 비정기적으로 조회하는 아카이브 데이터에 적합
-- Query directly, no load needed
SELECT * FROM 
logistics.supplier_inventory
WHERE supplier_id = 'SUP-042';

COPY INTO로 로드

  • Snowflake의 완전한 쿼리 성능 제공
  • 자주 조회하는 실시간 데이터에 적합
-- Load once, query fast
COPY INTO logistics.delivery_events
FROM @harbr_stage/events/;
Snowflake 데이터 파이프라인 자동화

Apache Iceberg 테이블

  • S3, Azure Blob, GCS에서 데이터를 올바르게 읽으려면?

    • Apache
  • Apache Iceberg = 오픈 테이블 형식: 특정 엔진에 종속되지 않음

    • Parquet 파일 + 메타데이터 레이어 (타임 트래블, 스키마 이력, 파티션)
    • 데이터베이스 수준의 안정성

Screenshot 2026-05-11 at 12.14.31 pm.png

1 * Snowflake 학습 자료
Snowflake 데이터 파이프라인 자동화

Snowflake 관리형 vs 외부 관리형

Snowflake 관리형

  • Snowflake가 Iceberg 메타데이터를 소유 및 작성
  • SQL을 통한 전체 읽기·쓰기 접근
CREATE ICEBERG TABLE 
logistics.shipments
  CATALOG = 'SNOWFLAKE'
  EXTERNAL_VOLUME = 'harbr_s3_vol'
  BASE_LOCATION = 'iceberg/shipments/';

외부 관리형

  • 외부 카탈로그가 메타데이터 소유 — AWS Glue, Apache Polaris
CREATE ICEBERG TABLE 
logistics.partner_data
  CATALOG = 'glue_catalog'
  EXTERNAL_VOLUME = 'harbr_s3_vol'
  CATALOG_TABLE_NAME = 
  'partner.deliveries';
Snowflake 데이터 파이프라인 자동화

연습해 봅시다!

Snowflake 데이터 파이프라인 자동화

Preparing Video For Download...