# Trino on ice IV: Deep dive into Iceberg internals

DevFeed: [Trino on ice IV: Deep dive into Iceberg internals](<https://devfeed.tech/articles/trino-on-ice-iv-deep-dive-into-iceberg-internals-8667.md>)

Original publisher: [Read original article](<https://trino.io/blog/2021/08/12/deep-dive-into-iceberg-internals.html>)

Author: Brian Olsen

Published: 2021-08-12T00:00:00Z

Content type: article

Language: en

Sources: [Trino Blog](<https://devfeed.tech/sources/trino-blog.md>)

Topics: [Apache Iceberg](<https://devfeed.tech/topics/apache-iceberg.md>), [Instrumentation](<https://devfeed.tech/topics/instrumentation.md>), [AWS Glue](<https://devfeed.tech/topics/aws-glue.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [aws-glue](<https://devfeed.tech/tags/aws-glue.md>), [blog](<https://devfeed.tech/tags/blog.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [data](<https://devfeed.tech/tags/data.md>), [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [minio](<https://devfeed.tech/tags/minio.md>)

## AI overview

This deep-dive article explains Iceberg internals in the context of the Trino query engine. It examines metadata and files produced by Trino operations, using tools such as Avro tools, the MinIO client, and Iceberg's core library, with emphasis on understanding, troubleshooting, and querying Iceberg tables.

## Source excerpt

Welcome to the Trino on ice series, covering the details around how the Iceberg table format works with the Trino query engine. The examples build on each previous post, so it's recommended to read the posts sequentially and reference them as needed later. Here are links to the posts in this series: Trino on ice I: A gentle introduction to Iceberg Trino on ice II: In-place table evolution and cloud compatibility with Iceberg Trino on ice III: Iceberg concurrency model, snapshots, and the Iceberg spec Trino on ice IV: Deep dive into Iceberg internals So far, this series has covered some very interesting user level concepts of the Iceberg model, and how you can take advantage of them using the Trino query engine. This blog post dives into some implementation details of Iceberg by dissecting some files that result from various operations carried out using Trino. To dissect you must use some surgical instrumentation, namely Trino, Avro tools, the MinIO client tool and Iceberg's core library. It's useful to dissect how these files work, not only to help understand how Iceberg works, but also to aid in troubleshooting issues, should you have any issues during ingestion or querying of your Iceberg table. I like to think of this type of debugging much like a fun game of operation, and you're looking to see what causes the red errors to fly by on your screen.