case class UpdateCatalog(table: CatalogTable) extends UpdateCatalogBase with Product with Serializable
A post-commit hook that allows us to cache the most recent schema and table properties of a Delta table in an External Catalog. In addition to the schema and table properties, we also store the last commit timestamp and version for which we updated the catalog. This prevents us from updating the MetaStore with potentially stale information.
- Alphabetic
- By Inheritance
- UpdateCatalog
- Serializable
- Product
- Equals
- UpdateCatalogBase
- DeltaLogging
- DatabricksLogging
- DeltaProgressReporter
- LoggingShims
- Logging
- PostCommitHook
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new UpdateCatalog(table: CatalogTable)
Type Members
- implicit class LogStringContext extends AnyRef
- Definition Classes
- LoggingShims
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def clusteringColumnsChanged(snapshot: Snapshot): Boolean
Check if the clustering columns from snapshot doesn't match what's in the table properties.
Check if the clustering columns from snapshot doesn't match what's in the table properties.
- Attributes
- protected
- Definition Classes
- UpdateCatalogBase
- def deltaAssert(check: => Boolean, name: String, msg: String, deltaLog: DeltaLog = null, data: AnyRef = null, path: Option[Path] = None): Unit
Helper method to check invariants in Delta code.
Helper method to check invariants in Delta code. Fails when running in tests, records a delta assertion event and logs a warning otherwise.
- Attributes
- protected
- Definition Classes
- DeltaLogging
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def execute(spark: SparkSession, snapshot: Snapshot): Unit
Update the entry in the Catalog to reflect the latest schema and table properties.
Update the entry in the Catalog to reflect the latest schema and table properties.
- Attributes
- protected
- Definition Classes
- UpdateCatalogBase
- def executeOnWrite(spark: SparkSession, snapshot: Snapshot): Unit
Used to manually execute an UpdateCatalog hook during a write.
Used to manually execute an UpdateCatalog hook during a write.
- Definition Classes
- UpdateCatalog → UpdateCatalogBase
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getCommonTags(deltaLog: DeltaLog, tahoeId: String): Map[TagDefinition, String]
- Definition Classes
- DeltaLogging
- def getErrorData(e: Throwable): Map[String, Any]
- Definition Classes
- DeltaLogging
- def handleError(spark: SparkSession, error: Throwable, version: Long): Unit
Handle any error caused while running the hook.
Handle any error caused while running the hook. By default, all errors are ignored as default policy should be to not let post-commit hooks to cause failures in the operation.
- Definition Classes
- PostCommitHook
- def initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean
- Attributes
- protected
- Definition Classes
- Logging
- def initializeLogIfNecessary(isInterpreter: Boolean): Unit
- Attributes
- protected
- Definition Classes
- Logging
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isTraceEnabled(): Boolean
- Attributes
- protected
- Definition Classes
- Logging
- def log: Logger
- Attributes
- protected
- Definition Classes
- Logging
- def logConsole(line: String): Unit
- Definition Classes
- DatabricksLogging
- def logDebug(entry: LogEntry, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- LoggingShims
- def logDebug(entry: LogEntry): Unit
- Attributes
- protected
- Definition Classes
- LoggingShims
- def logDebug(msg: => String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logDebug(msg: => String): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logError(entry: LogEntry, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- LoggingShims
- def logError(entry: LogEntry): Unit
- Attributes
- protected
- Definition Classes
- LoggingShims
- def logError(msg: => String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logError(msg: => String): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logInfo(entry: LogEntry, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- LoggingShims
- def logInfo(entry: LogEntry): Unit
- Attributes
- protected
- Definition Classes
- LoggingShims
- def logInfo(msg: => String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logInfo(msg: => String): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logName: String
- Attributes
- protected
- Definition Classes
- Logging
- def logTrace(entry: LogEntry, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- LoggingShims
- def logTrace(entry: LogEntry): Unit
- Attributes
- protected
- Definition Classes
- LoggingShims
- def logTrace(msg: => String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logTrace(msg: => String): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logWarning(entry: LogEntry, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- LoggingShims
- def logWarning(entry: LogEntry): Unit
- Attributes
- protected
- Definition Classes
- LoggingShims
- def logWarning(msg: => String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logWarning(msg: => String): Unit
- Attributes
- protected
- Definition Classes
- Logging
- val name: String
A user friendly name for the hook for error reporting purposes.
A user friendly name for the hook for error reporting purposes.
- Definition Classes
- UpdateCatalog → PostCommitHook
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- def propertiesHaveChanged(properties: Map[String, String], metadata: Metadata, spark: SparkSession): Boolean
Checks if the table properties have changed in the Snapshot with respect to what's stored in the catalog.
Checks if the table properties have changed in the Snapshot with respect to what's stored in the catalog. We check to see if our table properties are a subset of what is in the MetaStore to avoid flip-flopping the information between older and newer versions of Delta. The assumption here is that newer Delta releases will only add newer table properties and not remove them.
- Attributes
- protected[sql]
- Definition Classes
- UpdateCatalog → UpdateCatalogBase
- def recordDeltaEvent(deltaLog: DeltaLog, opType: String, tags: Map[TagDefinition, String] = Map.empty, data: AnyRef = null, path: Option[Path] = None): Unit
Used to record the occurrence of a single event or report detailed, operation specific statistics.
Used to record the occurrence of a single event or report detailed, operation specific statistics.
- path
Used to log the path of the delta table when
deltaLogis null.
- Attributes
- protected
- Definition Classes
- DeltaLogging
- def recordDeltaOperation[A](deltaLog: DeltaLog, opType: String, tags: Map[TagDefinition, String] = Map.empty)(thunk: => A): A
Used to report the duration as well as the success or failure of an operation on a
deltaLog.Used to report the duration as well as the success or failure of an operation on a
deltaLog.- Attributes
- protected
- Definition Classes
- DeltaLogging
- def recordDeltaOperationForTablePath[A](tablePath: String, opType: String, tags: Map[TagDefinition, String] = Map.empty)(thunk: => A): A
Used to report the duration as well as the success or failure of an operation on a
tahoePath.Used to report the duration as well as the success or failure of an operation on a
tahoePath.- Attributes
- protected
- Definition Classes
- DeltaLogging
- def recordEvent(metric: MetricDefinition, additionalTags: Map[TagDefinition, String] = Map.empty, blob: String = null, trimBlob: Boolean = true): Unit
- Definition Classes
- DatabricksLogging
- def recordFrameProfile[T](group: String, name: String)(thunk: => T): T
- Attributes
- protected
- Definition Classes
- DeltaLogging
- def recordOperation[S](opType: OpType, opTarget: String = null, extraTags: Map[TagDefinition, String], isSynchronous: Boolean = true, alwaysRecordStats: Boolean = false, allowAuthTags: Boolean = false, killJvmIfStuck: Boolean = false, outputMetric: MetricDefinition = METRIC_OPERATION_DURATION, silent: Boolean = true)(thunk: => S): S
- Definition Classes
- DatabricksLogging
- def recordProductEvent(metric: MetricDefinition with CentralizableMetric, additionalTags: Map[TagDefinition, String] = Map.empty, blob: String = null, trimBlob: Boolean = true): Unit
- Definition Classes
- DatabricksLogging
- def recordProductUsage(metric: MetricDefinition with CentralizableMetric, quantity: Double, additionalTags: Map[TagDefinition, String] = Map.empty, blob: String = null, forceSample: Boolean = false, trimBlob: Boolean = true, silent: Boolean = false): Unit
- Definition Classes
- DatabricksLogging
- def recordUsage(metric: MetricDefinition, quantity: Double, additionalTags: Map[TagDefinition, String] = Map.empty, blob: String = null, forceSample: Boolean = false, trimBlob: Boolean = true, silent: Boolean = false): Unit
- Definition Classes
- DatabricksLogging
- def run(spark: SparkSession, txn: OptimisticTransactionImpl, committedVersion: Long, postCommitSnapshot: Snapshot, actions: Seq[Action]): Unit
Executes the hook.
Executes the hook.
- txn
The txn that made the commit, after which this PostCommitHook was run
- committedVersion
The version that was committed by the txn
- postCommitSnapshot
the snapshot of the table after the txn successfully committed. NOTE: This may not match the committedVersion, if racing commits were written while the snapshot was computed.
- Definition Classes
- UpdateCatalogBase → PostCommitHook
- def schemaHasChanged(snapshot: Snapshot, spark: SparkSession): Boolean
Checks if the table schema has changed in the Snapshot with respect to what's stored in the catalog.
Checks if the table schema has changed in the Snapshot with respect to what's stored in the catalog.
- Attributes
- protected
- Definition Classes
- UpdateCatalog → UpdateCatalogBase
- def shouldRun(spark: SparkSession, snapshot: Snapshot): Boolean
- Attributes
- protected
- Definition Classes
- UpdateCatalogBase
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- val table: CatalogTable
- Definition Classes
- UpdateCatalog → UpdateCatalogBase
- def updateProperties(spark: SparkSession, snapshot: Snapshot): Unit
Update the properties in the catalog based on the provided snapshot.
Update the properties in the catalog based on the provided snapshot.
- Attributes
- protected
- Definition Classes
- UpdateCatalog → UpdateCatalogBase
- def updateSchema(spark: SparkSession, snapshot: Snapshot): Unit
Update the schema in the catalog based on the provided snapshot.
Update the schema in the catalog based on the provided snapshot.
- Definition Classes
- UpdateCatalog → UpdateCatalogBase
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def withStatusCode[T](statusCode: String, defaultMessage: String, data: Map[String, Any] = Map.empty)(body: => T): T
Report a log to indicate some command is running.
Report a log to indicate some command is running.
- Definition Classes
- DeltaProgressReporter