Class IcebergTable

  • Direct Known Subclasses:
    ImmutableIcebergTable

    @Immutable
    public abstract class IcebergTable
    extends Contents
    Represents the state of an Iceberg table in Nessie. An Iceberg table is globally identified via its unique ID.

    The Iceberg-table-state consists of the location to the table-metadata and the state of the ID generators using the serialized version of Iceberg's TableIdGenerators object.

    The table-metadata-location is managed on each Nessie reference, which means that all versions of the same table have distinct table-metadata across all named-references (branches and tags).

    The information needed to generate IDs for an Iceberg table that need to be globally unique, for example the last-column-ID, is managed globally within Nessie.

    When adding a new table (aka contents-object identified by a contents-id), use a Operation.Put without an expected-value. In all other cases (updating an existing table). always pass the last known version of IcebergTable as the expected-value within the put-operation.

    • Constructor Detail

      • IcebergTable

        public IcebergTable()
    • Method Detail

      • getMetadataLocation

        @NotNull
        @NotBlank
        public abstract @NotNull @NotBlank String getMetadataLocation()
        Location where Iceberg stored its TableMetadata file. The location depends on the (implementation of) Iceberg's FileIO configured for the particular Iceberg table.
      • getIdGenerators

        public abstract String getIdGenerators()
        Opaque representation of Iceberg's TableIdGenerators.