0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Auto Loader と COPY INTO使い分け

Posted at

Databricks の Auto LoaderCOPY INTO はどちらも外部ストレージから Delta Lake やテーブルにデータを取り込むための機能ですが、
アーキテクチャや用途が大きく違います。


1. Auto Loader

  • 概要

    • ストリーミングベースの継続的取り込み
    • 新規ファイルのみを自動検出して取り込む(状態を保存)
    • スキーマ進化(addNewColumns, rescue など)に対応
  • 特徴

    • Incremental ingest(増分取り込み)

    • 検出モード:

      • File Notification モード(高速&コスト効率)
      • Directory Listing モード(簡単設定)
    • 取り込みの状態管理は自動(checkpoint使用)

  • 用途

    • 継続的データ収集(IoTログ、イベントストリーム、毎日追加されるCSVなど)
    • データ到着タイミングがバラバラな場合
  • (spark.readStream
         .format("cloudFiles")
         .option("cloudFiles.format", "json")
         .load("/mnt/raw/data"))
    

2. COPY INTO

  • 概要

    • バッチベースの一括ロード
    • 指定パスからテーブルにファイルをロード(既存ファイルはスキップ可能)
    • SQL コマンド形式
  • 特徴

    • 単発または定期スケジュールで利用
    • 自動スキーマ進化なし(事前定義が必要)
    • 同じファイルの再ロード防止機能あり(メタデータ管理)
  • 用途

    • 定期的にまとめて取り込み(1日1回のデータ配信など)
    • 大量の履歴ファイルを初回ロード
  • COPY INTO my_table
    FROM 's3://my-bucket/data/'
    FILEFORMAT = PARQUET
    PATTERN = '*.parquet';
    

使い分けの目安

条件 Auto Loader COPY INTO
データ到着が継続的
定期的なバッチ処理
スキーマ進化対応が必要
初回の大量データロード
状態管理を自動化したい
単発・手動実行

まとめ

  • Auto Loader → 継続的な増分取り込み & スキーマ進化に強い。ストリーミングジョブ向き。
  • COPY INTO → 単発またはスケジュール実行の一括取り込み。初期データロードや低頻度バッチ向き。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?