Skip to content

Show Iceberg table and partition statistics files in the graph #114

Description

@YanivZalach

Background

IceGraph currently visualizes table metadata JSON files, snapshot manifest lists, manifests, data files, and delete files. It does not collect or render Iceberg statistics artifacts.

Observed on the running Spark Connect table default.orders:

This is an Iceberg metadata relationship, not a manifest relationship:

metadata JSON
  ├─ current-snapshot-id -> snapshot manifest list
  ├─ statistics[]
  │    └─ statistics-path -> Puffin table-statistics file
  └─ partition-statistics[]
       └─ statistics-path -> Parquet partition-statistics file

statistics files contain snapshot-id as an association, but the snapshot does not point to them.

Official Iceberg references:

Desired behavior

Expose registered Iceberg table-statistics and partition-statistics files as first-class graph nodes. Keep the existing metadata-to-snapshot and branch connections unchanged. Add a second direct connection type from each metadata JSON node to every file registered in its statistics[] and partition-statistics[] fields.

The graph therefore has two independent outgoing relationship types from a metadata node:

metadata JSON -> snapshot manifest list      (existing lineage)
metadata JSON -> table statistics file       (new direct metadata reference)
metadata JSON -> partition statistics file   (new direct metadata reference)

A statistics record may display its snapshot-id in the details panel, but that ID is an association only. Do not draw a snapshot-to-statistics edge.

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions