Skip to content

Unencoded Variable Length Column Size Statistics #10703

Closed as not planned
Closed as not planned

Description

@Samrose-Ahmed

Proposed Change

it is not currently possible to determine the uncompressed unencoded size of variable length columns. It is possible to do so for fixed length data types using the null count and row count statistics but not possible for variable length column types like strings (or binary), since the data is encoded and compressed. Tracking data size is useful for many purposes, including engine planning/query optimization for e.g. planning for data exchange or join, as well as for readers to estimate memory for reading data.

We propose adding a new optional property similar to columnSizes inside the manifest files. This will be a map from field id to number of uncompressed unencoded size bytes. This should only be set for variable length type columns (String/Binary).

Add the following to the manifest_entry.data_file struct:

optional optional 142 variable_length_column_sizes map<143: int, 144: long> Map from column id to the uncompressed unencoded size of all regions that store the column. Only valid for variable length types like string/byte array.

See also Parquet format SizeStatistics and unencoded_byte_array_data_bytes.

Relevant Github Issues:

Proposal document

https://docs.google.com/document/d/189kIZxx_dUloBCDPUz2Fh0BBOZSm2fXHHXWpdpq3DrU

Specifications

  • Table
  • View
  • REST
  • Puffin
  • Encryption
  • Other

Activity

  1. added
    proposalIceberg Improvement Proposal (spec/major changes/etc)
    on Jul 15, 2024
  2. ajantha-bhat commented on Jul 15, 2024

    @ajantha-bhat
    Member

    Tagging @emkornfield, since he worked on the parquet proposal.

  3. emkornfield commented on Jul 17, 2024

    @emkornfield
    Contributor

    Thanks, left a few comments on the design doc. Overall, it seems pretty reasonable to include this IMO

  4. github-actions commented on Jan 14, 2025

    @github-actions

    This issue has been automatically marked as stale because it has been open for 180 days with no activity. It will be closed in next 14 days if no further activity occurs. To permanently prevent this issue from being considered stale, add the label 'not-stale', but commenting on the issue is preferred when possible.

  5. github-actions commented on Jan 28, 2025

    @github-actions

    This issue has been closed because it has not received any activity in the last 14 days since being marked as 'stale'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    proposalIceberg Improvement Proposal (spec/major changes/etc)stale

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions