Interface CatalogCommitter

All Superinterfaces:
Committer

@Experimental public interface CatalogCommitter extends Committer
Committer sub-interface for catalog-managed tables. Provides catalog-specific operations not applicable to filesystem-managed tables.
  • Method Summary

    Modifier and Type
    Method
    Description
    default Map<String,String>
    Returns required catalog table properties that must be set in the Delta metadata.
    void
    publish(Engine engine, PublishMetadata publishMetadata)
    Publishes catalog commits to the Delta log.

    Methods inherited from interface io.delta.kernel.commit.Committer

    commit
  • Method Details

    • getRequiredTableProperties

      default Map<String,String> getRequiredTableProperties()
      Returns required catalog table properties that must be set in the Delta metadata.

      These properties are automatically injected during CREATE and REPLACE operations and cannot be changed or removed by users. Any attempt to set these properties to different values or remove them will result in a validation error.

      Returns:
      a map of required catalog properties
    • publish

      void publish(Engine engine, PublishMetadata publishMetadata) throws PublishFailedException
      Publishes catalog commits to the Delta log. Applicable only to catalog-managed tables.

      Publishing is the act of copying ratified catalog commits to the Delta log as published Delta files (e.g., _delta_log/00000000000000000001.json).

      The benefits of publishing include:

      • Reduces the number of commits the catalog needs to store internally and serve to readers
      • Enables table maintenance operations that must operate on published versions only, such as checkpointing and log compaction

      Requirements:

      • This method must ensure that all catalog commits are published to the Delta log up to and including the snapshot version specified in publishMetadata
      • Commits must be published in order: version V-1 must be published before version V

      Catalog-specific semantics: Each catalog implementation may specify its own rules and semantics for publishing, including whether it expects to be notified immediately upon publishing success, whether published deltas must appear with PUT-if-absent semantics in the Delta log, and whether publishing happens in the client-side or server-side catalog-component.

      Parameters:
      engine - the Engine instance used for publishing commits
      publishMetadata - the PublishMetadata containing the snapshot version up to which all catalog commits must be published, the log path, and list of catalog commits
      Throws:
      PublishFailedException - if the publish operation fails