Interface CatalogCommitter
- All Superinterfaces:
Committer
Committer sub-interface for catalog-managed tables. Provides catalog-specific operations
not applicable to filesystem-managed tables.-
Method Summary
Modifier and TypeMethodDescriptionReturns required catalog table properties that must be set in the Delta metadata.voidpublish(Engine engine, PublishMetadata publishMetadata) Publishes catalog commits to the Delta log.
-
Method Details
-
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
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- theEngineinstance used for publishing commitspublishMetadata- thePublishMetadatacontaining 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
-