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.

UniForm supports both Iceberg and Hudi. When delta.universalFormat.enabledFormats contains "iceberg", we say that Universal Format (Iceberg) is enabled. When it contains "hudi", we say that Universal Format (Hudi) 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. LoggingShims
  6. Logging
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. implicit class LogStringContext extends AnyRef
    Definition Classes
    LoggingShims

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( ... ) @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, operation: Option[Operation], 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, operation: Option[Operation], 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: Any): 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[_]
    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. def isCreatingOrReorgTable(op: Option[Operation]): Boolean

    Check if the operation is CREATE/REPLACE TABLE or REORG UPGRADE UNIFORM commands.

    Check if the operation is CREATE/REPLACE TABLE or REORG UPGRADE UNIFORM commands.

    op

    the delta operation to be checked.

    returns

    whether the operation is create or reorg.

  30. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  31. def isReorgUpgradeUniform(op: Option[Operation]): Boolean

    Check if the operation is REORG UPGRADE UNIFORM command.

    Check if the operation is REORG UPGRADE UNIFORM command.

    op

    the delta operation to be checked.

    returns

    whether the operation is REORG UPGRADE UNIFORM.

  32. def isTraceEnabled(): Boolean
    Attributes
    protected
    Definition Classes
    Logging
  33. def log: Logger
    Attributes
    protected
    Definition Classes
    Logging
  34. def logConsole(line: String): Unit
    Definition Classes
    DatabricksLogging
  35. def logDebug(entry: LogEntry, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    LoggingShims
  36. def logDebug(entry: LogEntry): Unit
    Attributes
    protected
    Definition Classes
    LoggingShims
  37. def logDebug(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  38. def logDebug(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  39. def logError(entry: LogEntry, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    LoggingShims
  40. def logError(entry: LogEntry): Unit
    Attributes
    protected
    Definition Classes
    LoggingShims
  41. def logError(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  42. def logError(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  43. def logInfo(entry: LogEntry, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    LoggingShims
  44. def logInfo(entry: LogEntry): Unit
    Attributes
    protected
    Definition Classes
    LoggingShims
  45. def logInfo(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  46. def logInfo(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  47. def logName: String
    Attributes
    protected
    Definition Classes
    Logging
  48. def logTrace(entry: LogEntry, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    LoggingShims
  49. def logTrace(entry: LogEntry): Unit
    Attributes
    protected
    Definition Classes
    LoggingShims
  50. def logTrace(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  51. def logTrace(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  52. def logWarning(entry: LogEntry, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    LoggingShims
  53. def logWarning(entry: LogEntry): Unit
    Attributes
    protected
    Definition Classes
    LoggingShims
  54. def logWarning(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  55. def logWarning(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  56. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  57. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  58. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  59. 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
  60. 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
  61. 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
  62. def recordEvent(metric: MetricDefinition, additionalTags: Map[TagDefinition, String] = Map.empty, blob: String = null, trimBlob: Boolean = true): Unit
    Definition Classes
    DatabricksLogging
  63. def recordFrameProfile[T](group: String, name: String)(thunk: ⇒ T): T
    Attributes
    protected
    Definition Classes
    DeltaLogging
  64. 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
  65. def recordProductEvent(metric: MetricDefinition with CentralizableMetric, additionalTags: Map[TagDefinition, String] = Map.empty, blob: String = null, trimBlob: Boolean = true): Unit
    Definition Classes
    DatabricksLogging
  66. 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
  67. 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
  68. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  69. def toString(): String
    Definition Classes
    AnyRef → Any
  70. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  71. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  72. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  73. 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 LoggingShims

Inherited from Logging

Inherited from AnyRef

Inherited from Any

Ungrouped