Back to all articles

Apache Spark articles

Apache Spark performance tuning, ETL patterns, and integration with Iceberg, Delta Lake, and cloud-native storage.

7 articles

Apache Iceberg MERGE INTO performance: messy incoming upserts flowing into an Iceberg table and landing as clean, applied rows
Apache IcebergApache SparkCompaction

Apache Iceberg MERGE INTO Performance: Fixing Slow Upserts

Why Apache Iceberg MERGE INTO gets slow and how to fix it: how a merge scans, joins, rewrites, and commits, the levers that cut the files each upsert touches, and the table maintenance that keeps upserts fast as tables age.

David W
David W
26 min read
Apache Iceberg 1.12 release overview with icons for new features, table metadata, and branching across an iceberg
Apache IcebergData LakehouseCompaction

Apache Iceberg 1.12.0 — What's New?

Apache Iceberg 1.12.0 adds Hilbert-curve clustering, a Flink task that converts equality deletes into deletion vectors, V4 manifest readers with relative paths, and vectorized variant reads — while removing Spark 3.4, Flink 2.0, and position deletes carrying row data. Here is what changed and what it means for your tables.

Rob M
Rob M
21 min read
Apache IcebergLakeOpsCompaction

Replace Spark for Iceberg Compaction: Faster, Cheaper Alternatives

Spark compaction is expensive, slow, and architecturally wrong for file rewrites. Here's how to replace it with purpose-built engines that cost 90% less and finish 95% faster — plus the DIY path if you want to optimize what you already have.

David W
David W
19 min read
Apache Iceberg Multi-Engine Architecture — Spark, Trino, Snowflake, and Athena on the same Iceberg tables
Data PlatformsData LakehouseApache Iceberg

Apache Iceberg Multi-Engine Architecture: Spark, Trino, Snowflake, Athena on the Same Tables

How production Iceberg lakehouses run Spark, Trino, Snowflake, Athena, Flink, and DuckDB on the same tables — covering engine decoupling, write isolation, conflict resolution, catalog coordination, read path optimization, query routing, cross-engine governance, and the control plane that ties it together.

Jonathan Saring
Jonathan Saring
27 min read
Kafka to Iceberg Ingestion Guide — Kafka logo with streaming data records flowing into a geometric iceberg lakehouse.
Apache IcebergApache KafkaApache Flink

Kafka to Iceberg: Ingestion Guide

A practical guide to streaming data from Apache Kafka into Apache Iceberg tables — covering Kafka Connect, Apache Flink, Spark Structured Streaming, and CDC with Debezium. Includes configuration examples, schema management, partitioning strategies, production pitfalls, and how to keep streaming tables healthy at scale.

Rob M
Rob M
27 min read
Fixing Small Files in Apache Iceberg — scattered small data cubes compacted into larger organized file blocks flowing toward a geometric iceberg
CompactionApache IcebergLakeOps

Fixing Small Files in Apache Iceberg: A Practical Guide

Small files silently degrade every Apache Iceberg lakehouse — inflating S3 costs, slowing query planning, and bloating metadata. This guide covers root causes, measurement, manual and automated fixes, and how to eliminate the problem at scale.

Rob M
Rob M
20 min read
Incremental Processing with Apache Iceberg & Spark: A Comprehensive Guide
Apache IcebergApache SparkData Platforms

Incremental Processing with Apache Iceberg & Spark: A Comprehensive Guide

Learn how to implement efficient incremental processing with Apache Iceberg and Spark, including best practices for data lake optimization and performance tuning.

LakeOps Team
LakeOps Team
9 min read