Packages

o

org.apache.spark.sql.delta

UniversalFormat

object UniversalFormat extends DeltaLogging

Utils to validate the Universal Format (UniForm) Delta feature (NOT a table feature).

The UniForm Delta feature governs and implements the actual conversion of Delta metadata into other formats.

Currently, UniForm only supports Iceberg. When delta.universalFormat.enabledFormats contains "iceberg", we say that Universal Format (Iceberg) is enabled.

enforceInvariantsAndDependencies ensures that all of UniForm's requirements for the specified format are met (e.g. for 'iceberg' that IcebergCompatV1 or V2 is enabled). It doesn't verify that its nested requirements are met (e.g. IcebergCompat's requirements, like Column Mapping). That is the responsibility of format-specific validations such as IcebergCompatV1.enforceInvariantsAndDependencies and IcebergCompatV2.enforceInvariantsAndDependencies.

Note that UniForm (Iceberg) depends on IcebergCompat, but IcebergCompat does not depend on or require UniForm (Iceberg). It is perfectly valid for a Delta table to have IcebergCompatV1 or V2 enabled but UniForm (Iceberg) not enabled.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. UniversalFormat
  2. DeltaLogging
  3. DatabricksLogging
  4. DeltaProgressReporter
  5. Logging
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val HUDI_FORMAT: String
  5. val ICEBERG_FORMAT: String
  6. val ICEBERG_TABLE_TYPE_KEY: String
  7. val SUPPORTED_FORMATS: Set[String]
  8. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  10. 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
  11. def enforceDependenciesInConfiguration(configuration: Map[String, String], snapshot: Snapshot): Map[String, String]

    This method is used to build UniForm metadata dependencies closure.

    This method is used to build UniForm metadata dependencies closure. It checks configuration conflicts and adds missing properties. It will call enforceIcebergInvariantsAndDependencies to perform the actual check.

    configuration

    the original metadata configuration.

    returns

    updated configuration if any changes are required, otherwise the original configuration.

  12. def enforceHudiDependencies(newestMetadata: Metadata, snapshot: Snapshot): Any

    If you are enabling Hudi, this method ensures that Deletion Vectors are not enabled.

    If you are enabling Hudi, this method ensures that Deletion Vectors are not enabled. New conditions may be added here in the future to make sure the source is compatible with Hudi.

    newestMetadata

    the newest metadata

    snapshot

    current snapshot

    returns

    N/A, throws exception if condition is not met

  13. def enforceIcebergInvariantsAndDependencies(snapshot: Snapshot, newestProtocol: Protocol, newestMetadata: Metadata, isCreatingOrReorg: Boolean, actions: Seq[Action]): (Option[Protocol], Option[Metadata])

    If you are enabling Universal Format (Iceberg), this method ensures that at least one of IcebergCompat is enabled.

    If you are enabling Universal Format (Iceberg), this method ensures that at least one of IcebergCompat is enabled. If you are disabling Universal Format (Iceberg), this method will leave the current IcebergCompat version untouched.

    returns

    tuple of options of (updatedProtocol, updatedMetadata). For either action, if no updates need to be applied, will return None.

  14. def enforceInvariantsAndDependencies(snapshot: Snapshot, newestProtocol: Protocol, newestMetadata: Metadata, isCreatingOrReorgTable: Boolean, actions: Seq[Action]): (Option[Protocol], Option[Metadata])

    Expected to be called after the newest metadata and protocol have been ~ finalized.

    Expected to be called after the newest metadata and protocol have been ~ finalized.

    returns

    tuple of options of (updatedProtocol, updatedMetadata). For either action, if no updates need to be applied, will return None.

  15. def enforceSupportInCatalog(table: CatalogTable, metadata: Metadata): Option[CatalogTable]

    Update CatalogTable to mark it readable by other table readers (iceberg for now).

    Update CatalogTable to mark it readable by other table readers (iceberg for now). This method ensures 'table_type' = 'ICEBERG' when uniform is enabled, and ensure table_type is not 'ICEBERG' when uniform is not enabled If the key has other values than 'ICEBERG', this method will not touch it for compatibility

    table

    catalogTable before change

    metadata

    snapshot metadata

    returns

    the converted catalog, or None if no change is made

  16. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  18. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  19. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  20. def getCommonTags(deltaLog: DeltaLog, tahoeId: String): Map[TagDefinition, String]
    Definition Classes
    DeltaLogging
  21. def getErrorData(e: Throwable): Map[String, Any]
    Definition Classes
    DeltaLogging
  22. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  23. def hudiEnabled(properties: Map[String, String]): Boolean
  24. def hudiEnabled(metadata: Metadata): Boolean
  25. def icebergEnabled(properties: Map[String, String]): Boolean
  26. def icebergEnabled(metadata: Metadata): Boolean
  27. def initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean
    Attributes
    protected
    Definition Classes
    Logging
  28. def initializeLogIfNecessary(isInterpreter: Boolean): Unit
    Attributes
    protected
    Definition Classes
    Logging
  29. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  30. def isTraceEnabled(): Boolean
    Attributes
    protected
    Definition Classes
    Logging
  31. def log: Logger
    Attributes
    protected
    Definition Classes
    Logging
  32. def logConsole(line: String): Unit
    Definition Classes
    DatabricksLogging
  33. def logDebug(msg: => String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  34. def logDebug(msg: => String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  35. def logError(msg: => String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  36. def logError(msg: => String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  37. def logInfo(msg: => String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  38. def logInfo(msg: => String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  39. def logName: String
    Attributes
    protected
    Definition Classes
    Logging
  40. def logTrace(msg: => String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  41. def logTrace(msg: => String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  42. def logWarning(msg: => String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  43. def logWarning(msg: => String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  44. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  45. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  46. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  47. 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 deltaLog is null.

    Attributes
    protected
    Definition Classes
    DeltaLogging
  48. 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
  49. 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
  50. def recordEvent(metric: MetricDefinition, additionalTags: Map[TagDefinition, String] = Map.empty, blob: String = null, trimBlob: Boolean = true): Unit
    Definition Classes
    DatabricksLogging
  51. def recordFrameProfile[T](group: String, name: String)(thunk: => T): T
    Attributes
    protected
    Definition Classes
    DeltaLogging
  52. 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
  53. def recordProductEvent(metric: MetricDefinition with CentralizableMetric, additionalTags: Map[TagDefinition, String] = Map.empty, blob: String = null, trimBlob: Boolean = true): Unit
    Definition Classes
    DatabricksLogging
  54. 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
  55. 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
  56. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  57. def toString(): String
    Definition Classes
    AnyRef → Any
  58. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  59. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  60. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  61. 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

Inherited from DeltaLogging

Inherited from DatabricksLogging

Inherited from DeltaProgressReporter

Inherited from Logging

Inherited from AnyRef

Inherited from Any

Ungrouped