liveBook · Manning

Chapter 6: Architecting the ingestion layer

What you will learn in chapter 6 of Architecting an Apache Iceberg Lakehouse

Introduces the ingestion layer as the point where data enters an Iceberg lakehouse and frames its design around differing delivery and reliability needs.

After this chapter you will be able to

What it builds on

Section by section

Introduction

Introduces the ingestion layer as the point where data enters an Iceberg lakehouse and frames its design around differing delivery and reliability needs.

Key terms: ingestion layer, storage layer, raw data, latency tolerance, throughput capacity, schema evolution, fault recovery, performance, consistency

6.1 Ingestion requirements

The section explains why ingestion requirements should be defined from audit findings before choosing pipeline designs or tools.

Key terms: ingestion requirements, throughput and latency, reliability and fault tolerance, schema management, operational complexity

6.1.1 Ingestion throughput and latency

This section explains how to set ingestion throughput and latency requirements that fit business use cases and Iceberg’s analytical design.

Key terms: throughput, latency, data freshness, OLAP, OLTP, analytical sink, commit intervals, streaming, batch, throughput constraints

6.1.2 Reliability and fault tolerance

This section explains how delivery guarantees, coordinated commits, recovery state, and observability make Iceberg ingestion reliable despite failures.

Key terms: at-least-once delivery, exactly-once semantics, replayable sources, checkpointing, two-phase commit protocols, atomic, snapshot-based commits, transactional commit model, resumability, offsets, timestamps

6.1.3 Schema management and evolution

Explains how an Iceberg ingestion layer can accommodate changing schemas while protecting data quality and keeping pipelines running.

Key terms: schema evolution, stable field IDs, variant data types, variant columns, semistructured, schema alignment, schema compatibility, schema registries, metadata catalogs, fail-fast checks

6.1.4 Operational complexity and maintainability

This section explains how operational demands affect the long-term value of an ingestion layer and how to balance capability with maintainability.

Key terms: operational complexity, maintainability, operational footprint, pipeline orchestration, batch jobs, streaming jobs, observability, automated retries, backoff policies, dead-letter queues

6.2 Ingestion models and architectures

This section compares batch, micro-batch, and streaming ingestion so architects can choose a model based on latency, freshness, reliability, and operational overhead.

Key terms: batch ingestion, idempotent, snapshot boundaries, historical backfills, micro-batch ingestion, input offsets, state, commit boundaries, streaming ingestion, real-time availability

6.2.1 Batch ingestion

This section explains how batch ingestion loads scheduled chunks of data into Iceberg tables, why it suits bulk processing, and what its recovery and freshness tradeoffs are.

Key terms: batch ingestion, discrete units, Parquet files, scheduled jobs, append mode, overwrites, upserts, Iceberg snapshot, atomic commits, fixed snapshot

6.2.2 Micro-batch and incremental ingestion

Micro-batch ingestion uses frequent, state-tracked runs to add new data to Iceberg tables, balancing freshness and operational simplicity against write overhead.

Key terms: micro-batch ingestion, offsets, checkpoints, pipeline state, mini-batch, Iceberg tables, snapshots, snapshot isolation, SaaS platforms, APIs

6.2.3 Streaming ingestion

Explains how streaming ingestion delivers low-latency data to Iceberg through bounded commits, and the reliability, maintenance, and operational tradeoffs this creates.

Key terms: streaming ingestion, unbounded streams, bounded units, commit intervals, commit frequency, metadata, small files, compaction, processing state, checkpointing

6.3 How Iceberg manages writes

This section introduces Iceberg’s snapshot-based writes as the foundation for reliable ingestion across batch, micro-batch, and streaming pipelines.

Key terms: transactional table format, table snapshot, metadata, atomic commits, time travel, concurrent write isolation

6.3.1 Write semantics in Iceberg

Explains Iceberg’s write operations, their snapshot and file-level effects, and how engine capabilities shape ingestion choices.

Key terms: snapshot, atomicity, isolation, time travel, append, overwrite, filter, partition specification, merge-on-read, copy-on-write

6.3.2 Commit protocols and conflict handling

Explains how Iceberg publishes consistent table snapshots, handles concurrent commit conflicts, and balances commit intervals against metadata growth and data freshness.

Key terms: atomic commit, table snapshot, snapshot metadata file, compare-and-swap, metadata pointer, optimistic concurrency control, commit conflicts, retries, backoff strategies, disjoint datasets

6.4 Tools and frameworks for ingestion

Introduces ingestion-tool selection as a choice guided by requirements and architectural fit, then previews the tools covered in the section.

Key terms: ingestion requirements, architectural model, latency needs, source systems, team expertise, scale and frequency

6.4.1 Apache Spark

This section explains why Spark is useful for Iceberg ingestion and what its batch, overwrite, merge, and streaming writes support.

Key terms: Apache Spark, Iceberg Spark runtime module, Spark SQL, DataFrame APIs, append, partitioned overwrite, merge, upsert, write amplification, Structured Streaming

6.4.2 Apache Flink

This section explains when Flink is a strong choice for Iceberg ingestion and what its streaming, processing, and consistency features provide.

Key terms: Apache Flink, Iceberg Flink sink, streaming and batch writes, checkpointing, atomic snapshot system, exactly-once delivery, event-time semantics, DataStream API, SQL, deduplication

6.4.3 Apache NiFi

This section explains NiFi’s role in Iceberg ingestion, including visual dataflows, staged and direct-write paths, and the limits of its Iceberg support.

Key terms: processors, data ingestion pipelines, flow control, drag-and-drop interface, GetFile, ConvertRecord, RouteOnAttribute, PutS3Object, Iceberg-compatible engine, PutIceberg

6.4.4 Fivetran

This section explains how Fivetran’s managed service ingests source data into Iceberg tables and why its automation can simplify adoption.

Key terms: Managed Data Lake Service, Parquet, Fivetran Iceberg REST Catalog, Iceberg tables, fully managed ELT, schema mapping, metadata coordination, table lifecycle management, near-real-time syncs

6.4.5 Qlik

This subsection describes Qlik’s approach to streaming ingestion into Iceberg tables, emphasizing automated optimization, scale, and deployment flexibility.

Key terms: declarative data flows, Iceberg tables, schema evolution, partitioning strategies, compaction, small file management, partition optimization, operational overhead, connectors, multiple query engines

6.4.6 Airbyte

This section explains how Airbyte’s S3 Data Lake connector ingests data into Iceberg tables, what its write and schema limits are, and when it is a suitable choice.

Key terms: Airbyte, S3 Data Lake connector, Parquet, Iceberg catalog, append, overwrite, merge-on-read, equality deletes, primary keys, cursor ordering

6.4.7 Confluent

This section explains how Confluent Tableflow turns Kafka streams into Iceberg tables, what it automates, and when its limitations matter.

Key terms: Tableflow, Kafka topics, materialized tables, Iceberg format, catalog services, Confluent Schema Registry, CDC stream materialization, file compaction, Confluent Cloud for Apache Flink, shift-left processing

6.4.8 Redpanda

This section explains how Redpanda makes Kafka-compatible topic data available as Iceberg tables and outlines its ingestion options and operational tradeoffs.

Key terms: Redpanda topics, Iceberg tables, Parquet files, cloud object storage, iceberg_enabled, redpanda.iceberg.mode, key_value, value_schema_id_prefix, value_schema_latest, Schema Registry

6.4.9 Cloud-native ingestion services

This section compares cloud-native routes for getting data into Iceberg lakehouses and the integration trade-offs to assess.

Key terms: AWS Glue, Azure Data Factory (ADF), Google Cloud Dataflow, Iceberg as a sink format, Parquet, Amazon Data Firehose, Azure Event Hubs, Google Pub/Sub, Spark Structured Streaming, Flink

6.4.10 Tool selection considerations

This section gives practical criteria for choosing a complementary set of Iceberg ingestion tools rather than seeking one tool for every workload.

Key terms: ingestion model, catalog integration, schema evolution support, data transformation needs, operational maturity, cloud environment, operational burden, customization

6.5 Applying ingestion requirements in context

The section frames ingestion architecture as a context-dependent choice that balances competing requirements and existing constraints rather than optimizing for one need alone.

Key terms: ingestion models, latency, data quality, operational burden, schema variability

6.5.1 Prioritizing low latency

Shows how to design Iceberg ingestion for seconds-level freshness while balancing fast commits against metadata growth and operational demands.

Key terms: low latency, streaming ingestion, Apache Flink, micro-batch commits, commit frequency, Iceberg snapshots, metadata bloat, monitoring and alerting, optimized file sizes

6.5.2 Managing high throughput

This section shows how to design high-volume Iceberg ingestion while controlling the file, metadata, and operational overhead that grows with scale.

Key terms: high throughput, Apache Flink, checkpointing, deduplication, Qlik, Redpanda, file generation, commit frequency, snapshot growth, read amplification

6.5.3 Supporting complex transformations

This section explains when to transform data before writing it to Iceberg, why Spark or Flink fit that work, and what operational costs the approach brings.

Key terms: data transformation, enrichment, filtering, data quality, governance policies, Apache Flink, Apache Spark, SQL, DataStream API, time-based joins

6.5.4 Handling schema evolution

This section explains how to select and configure ingestion tools so changing source schemas can be reflected in Iceberg tables without disrupting downstream workflows.

Key terms: schema evolution, schema drift, schema registries, structured typing, schema registry, append, merge-on-read, schema mismatches, static schemas, metadata churn

6.5.5 Balancing operational overhead

This section shows how a small team can use managed ingestion to reduce operational work while weighing its flexibility and cost tradeoffs.

Key terms: operational overhead, managed operations, ingestion pipelines, cloud object storage, Parquet, Iceberg-compatible tables, schema mapping, incremental sync modes, advanced transformations, custom data logic

6.5.6 Considering existing cloud environments

Explains how an existing cloud environment shapes ingestion-tool choices and why those choices must balance integration benefits against flexibility and other requirements.

Key terms: cloud-native services, cloud alignment, IAM, Glue Catalog, ingestion requirements, functional requirements, organizational constraints

6.6 Summary

Where this is used later

Concepts explained in this chapter

← Chapter 5: Selecting the storage layer Chapter 7: Implementing the catalog layer →

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.