外部テーブルと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 = オープンテーブル形式:データは特定エンジンに依存しない

    • 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...