liveBook · Manning

Small file

As explained in Architecting an Apache Iceberg Lakehouse

A small file is a data file whose size is sufficiently low that file-management, metadata, and scheduling overhead become significant relative to its data content.

A small file is a data file whose low size makes file-opening, read coordination, scheduling, and metadata costs significant relative to its contents. Streaming and micro-batch pipelines commonly create many small Parquet files through frequent commits. section 10.1.1

Small files create several operational effects:

  • Increase file enumeration, object-store API calls, and read scheduling, potentially making fixed costs dominate query execution before bandwidth becomes a bottleneck. section 10.1.1
  • Expand manifests and metadata structures because Iceberg records statistics, partition information, and references for every data file. section 10.1.1
  • Depend on the storage system: HDFS block size matters, while cloud object storage avoids that constraint but still incurs high file-count overhead. section 10.1.1
  • Reveal their impact through Iceberg metadata tables, including file counts and size distributions. section 10.1.1
Figure 10.1 More file I/O operations are needed when the same data is spread across a larger number of files, resulting in slower performance. The fewer I/O operations, the more quickly the query can complete.

Shows why spreading the same data across more files requires more I/O operations and can slow query completion. section 10.1

How Architecting an Apache Iceberg Lakehouse covers it

How deep it goes
Explains ingestion causes, I/O coordination, storage-dependent thresholds, and persistent metadata growth.
Examples
Uses streaming and micro-batch commits, Parquet file collections, metadata-table queries, and a file-I/O comparison figure.
What it assumes
Assumes familiarity with Iceberg data files, manifests, metadata tables, and differences between HDFS and cloud object storage.
What you can do after
Diagnose small-file conditions by inspecting Iceberg metadata tables for file counts and size distributions.
How it connects
Connects small files to Apache Iceberg, streaming ingestion, micro-batch ingestion, Parquet, manifests, and metadata tables.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Architecting an Apache Iceberg Lakehouse. The section links point to the parts of the book it draws on.