Why Apache Iceberg is the Key to Modern Data Management

Jayant Nehra
Towards Data Engineering
6 min readMay 24, 2024

Manging the Big data is extremly difficult task. Since early internet many tools have emerged over the years to facilitate the data management. In this blog, we’ll explore the evolution of big data, the emergence of Apache Iceberg, its features, and why it’s a game-changer for modern data management.

Understanding Big Data and Its Challenges

Big data refers to the vast volumes of data generated by sources such as the internet, mobile devices, and IoT devices. This data is crucial for training AI models, driving insights, and making informed decisions. However, managing such large volumes of data presents significant challenges. Organizations need efficient storage solutions, powerful processing capabilities, and robust metadata management to handle big data effectively.

Background on Data Within Data Lake Storage

Data lakes are large repositories that store all structured and unstructured data at any scale. They simplify data management by centralizing data and enabling all applications within an organization to interact on a shared data repository. Traditionally, data lakes were associated with the Apache Hadoop Distributed File System (HDFS). Today, however, organizations increasingly use object storage systems such as Amazon S3 and Microsoft Azure Data Lake Storage (ADLS). These cloud data lakes provide additional opportunities to simplify data management by being accessible everywhere to all applications as needed.

Individual datasets within data lakes are often organized as collections of files within directory structures. This approach makes data highly accessible and flexible. However, it lacks the capabilities of traditional databases and data warehouses, such as defining the schema of a dataset and coordinating changes to the dataset. This is where metadata catalogs come into play.

The Evolution of Big Data Management

Early 2000s: The Dawn of Big Data

The early 2000s marked the rise of the internet, leading to an explosion of data generation. Traditional data management systems couldn’t handle this scale of data. In 2005, Apache Hadoop was open-sourced, providing a multi-machine architecture with the Hadoop Distributed File System (HDFS) and a parallel processing model called MapReduce. This allowed organizations to add machines to their clusters as data volumes grew. However, MapReduce posed challenges because it required writing complex Java programs, unlike the simple SQL queries familiar to data analysts.

Mid to Late 2000s: Simplifying Data Queries with Apache Hive

To address the complexities of MapReduce, Apache Hive was introduced in 2008. Hive allowed users to write SQL-like queries that were translated into MapReduce jobs. It also introduced the Hive Metastore, a meta-database that stored pointers to file groups in the underlying file system, optimizing query performance. Despite these advancements, new challenges emerged in the 2010s as data volumes continued to grow, driven by the proliferation of mobile devices and IoT.

How Metadata Catalogs Help Organize Data Lakes

To better organize data within data lakes, organizations use metadata catalogs, which define the tables within data lake storage. By using catalogs, all applications across an organization share a common definition and view of data within the data lake, ensuring consistent results.

Popular Metadata Catalogs

Hive Metastore (HMS) and AWS Glue Data Catalog are the most popular data lake catalogs and are widely used throughout the industry. Both Hive and AWS Glue contain the schema, table structure, and data location for datasets within data lake storage.

Limitations of Metadata Catalogs

Although catalogs provide a shared definition of the dataset structure, they do not coordinate data changes or schema evolution between applications in a transactionally consistent manner. This can lead to partial or inconsistent views of the dataset when multiple applications attempt to read and write data concurrently.

The Emergence of Apache Iceberg

In 2017, Apache Iceberg was open-sourced, promising to solve many of the existing problems in big data management while introducing new features. Unlike previous solutions, Iceberg doesn’t provide its own storage and compute layers. Instead, it acts as a layer of metadata between them, offering a fine-grained picture of the underlying storage. This allows for more efficient data processing and greater flexibility.

Features and Benefits

Transactional Consistency and Full Read Isolation: Iceberg provides transactional consistency between multiple applications, ensuring that files can be added, removed, or modified atomically, with full read isolation and multiple concurrent writes.

Full Schema Evolution: Iceberg tracks changes to a table’s schema over time, allowing for seamless schema evolution.

Time Travel: Iceberg supports time travel, enabling users to query historical data and verify changes between updates.

Partition Layout and Evolution: Iceberg allows updates to partition schemes as queries and data volumes change, without relying on hidden partitions or physical directories.

Rollback Capabilities: Iceberg enables rollback to prior versions, allowing quick correction of issues and returning tables to a known good state.

Advanced Planning and Filtering: Iceberg provides advanced planning and filtering capabilities for high performance on large data volumes.

Efficient Metadata Management: Iceberg tracks metadata files (aka manifests) through point-in-time snapshots, maintaining all deltas as a table is updated over time. Each snapshot provides a complete description of the table’s schema, partition, and file information, offering full isolation and consistency.

Real-World Applications and Future Trends

Comparison with Previous Solutions

While Hadoop and Hive revolutionized big data management in their time, they had limitations. Hadoop’s MapReduce required complex Java programming, and Hive couldn’t efficiently handle the growing volumes of data and the need for real-time processing. Iceberg addresses these issues with its advanced metadata management and decoupled architecture, providing a more efficient and flexible solution.

Real-world Applications

Many organizations are adopting Apache Iceberg for their big data management needs. For example, companies like Netflix and Apple have integrated Iceberg into their data infrastructure to handle large-scale data processing. Iceberg’s flexibility allows them to use various compute engines and storage solutions without being locked into a single vendor.

At Dremio, Apache Iceberg is utilized to provide efficient and scalable data management solutions. Dremio leverages Iceberg’s capabilities to simplify ETL workloads, enable real-time data processing, and reduce data storage costs.

Alternatives to Iceberg

Similar to how there are multiple file formats such as Parquet, ORC, Avro, and JSON, there are alternatives to Iceberg that offer somewhat similar capabilities and benefits. The most popular are the Delta Lake project developed by Databricks and Hive ACID tables.

Comparision with available alternatives (Image Source: Drumio Website)

Although Delta Lake and Hive ACID tables have been around longer than Iceberg, Iceberg is quickly gaining adoption and additional features as more companies contribute to the format.

Advantages of Iceberg Over Other Formats

Open and Independent: Iceberg is entirely independent from a governance standpoint and is not locked or tied to any specific engine or tool. As a result, Iceberg can be developed and contributed to by many different organizations across multiple industries, increasing adoption and growth.

Performance Optimizations: Iceberg provides performance optimizations based on best practices, enabling fast and cost-efficient access to data.

Storage-System Agnostic: Iceberg is fully storage-system agnostic with no file system dependencies, offering flexibility when choosing and migrating storage systems as required.

Successful Production Deployments: Iceberg has multiple successful production deployments with tens of petabytes and millions of partitions.

Over the past two decades, big data management has evolved significantly. From the early days of Hadoop and Hive to the sophisticated solutions offered by Apache Iceberg, the field has seen tremendous advancements. Iceberg stands out for its efficiency, flexibility, and advanced features, making it an excellent choice for today’s data-driven organizations.

--

--

Jayant Nehra
Towards Data Engineering

I am a Data Engineer. My expertise spans a broad spectrum of data engineering, data science, and business analytics.