The reality of most large scale data deployments includes storage decoupled from computation, pipelines operating directly on files and metadata services with no locking mechanisms or transaction tracking. For this reason attempts at achieving transactional behavior, snapshot isolation, safe schema evolution or performant support for CRUD operations has always been marred with tradeoffs.
This talk will focus on technical aspects, practical capabilities and the potential future of three table formats that have emerged in recent years as solutions to the issues mentioned above – ACID ORC (in Hive 3.x), Iceberg and Delta Lake. To provide a richer context, a comparison between traditional databases and big data tools as well as an overview of the reasons for the current state of affairs will be included.
After the talk, the audience is expected to have a clear understanding of the current development trends in large scale table formats, on the conceptual and practical level. This should allow the attendees to make better informed assessments about which approaches to data warehousing, metadata management and data pipelining they should adapt in their organizations.
ACID ORC, Iceberg, and Delta Lake—An Overview of Table Formats for Large Scale Storage and Analytics
1. ACID ORC, Iceberg
and Delta Lake
Michal Gancarski
michal.gancarski@zalando.de
17-10-2019
an overview of table formats
for large scale storage and analytics
wssbck
2. 2
TABLE OF
CONTENTS
All Is Not Well In The Land Of Big Data
There Is Hope, However
This Is How We Do It
Moving Forward
12. 12
ACID ORC
./d_manufacturers/country=de/base_00000002/
-- bucket_00000
-- bucket_00001
./d_manufacturers/country=de/delta_0000003_0000003_0000/
-- bucket_00000
-- bucket_00001
./d_manufacturers/country=de/delta_0000004_0000004_0000/
-- bucket_00001
./d_manufacturers/country=de/delete_delta_0000004_0000004_0000/
-- bucket_00001
CREATE TABLE d_manufacturers (id int, name string)
PARTITIONED BY (country string)
STORED AS ORC
TBLPROPERTIES ('transactional'='true');
13. 13
ACID ORC
❖ Native compatibility with Hive
❖ Fast updates / upserts (no file rewrite)
❖ Hive 2.x ACID ORC tables can be converted to
Hive 3.x ACID ORC tables
❖ Commercial Support (Cloudera)
❖ Limited support for Spark (being worked on by
Qubole)
❖ Slow listing and metadata discovery
❖ Potentially slower read due to ad-hoc compaction
❖ ORC only
❖ Mandatory S3Guard or EMR with consistent view
enabled
+
-
16. 16
Apache Iceberg
❖ Parquet, Avro, ORC supported as file formats
❖ Robust schema and partitioning changes
❖ Fast query planning
❖ Presto connector
❖ Time travel with snapshot id listing
❖ No dependency on Spark
public List<Snapshot> snapshots() {
return snapshots;
}
❖ Spark support
❖ Sparse documentation
❖ No commercial support
❖ Not as mature as other formats
+
-
19. 19
Delta Lake
❖ Great integration with Spark, including Structured
Streaming
❖ Merge syntax in Spark SQL
❖ Time travel
❖ Comprehensive, well written documentation
❖ Fast development backed by a commercial entity
❖ VACUUM + OPTIMIZE
❖ Incoming Presto reader (Starburst)
❖ Parquet only
❖ Multicluster writes outside of Databricks only on HDFS
+
-