package redirect
- Alphabetic
- Public
- All
Type Members
-
case class
NoRedirectRule(appName: Option[String], allowedOperations: Set[String]) extends Product with Serializable
This class defines the rule of allowing transaction to access redirect source table.
This class defines the rule of allowing transaction to access redirect source table.
- appName
The application name that is allowed to commit transaction defined inside the
allowedOperationsset. If a rules' appName is empty, then all application should fulfill itsallowedOperations.- allowedOperations
The set of operation names that are allowed to commit on the redirect source table. The example of usage of NoRedirectRule. { "type": "PathBasedRedirect", "state": "REDIRECT-READY", "spec": { "tablePath": "s3://<bucket-1>/tables/<table-name>" }, "noRedirectRules": [ {"allowedOperations": ["Write", "Delete", "Refresh"] }, {"appName": "maintenance-job", "allowedOperations": ["Refresh"] } ] }
-
class
PathBasedRedirectSpec extends RedirectSpec
The default redirect spec that is used for OSS delta.
The default redirect spec that is used for OSS delta. This is the specification about how to access the redirect destination table. One example of its JSON presentation is: { ...... "spec": { "tablePath": "s3://<bucket-1>/tables/<table-name>" } }
-
abstract
class
RedirectSpec extends AnyRef
This is the abstract class of the redirect specification, which stores the information of accessing the redirect destination table.
-
class
RedirectSpecDeserializer[T <: RedirectSpec] extends AnyRef
The customized JSON deserializer that parses the redirect specification's content into RedirectSpec object.
The customized JSON deserializer that parses the redirect specification's content into RedirectSpec object. This class is passed to the JSON execution time object mapper.
-
sealed
trait
RedirectState extends AnyRef
The table redirection feature includes specific states that manage the behavior of Delta clients during various stages of redirection.
The table redirection feature includes specific states that manage the behavior of Delta clients during various stages of redirection. These states ensure query result consistency and prevent data loss. There are four states: 0. NO-REDIRECT: Indicates that table redirection is not enabled.
- ENABLE-REDIRECT-IN-PROGRESS: Table redirection is being enabled. Only read-only queries are allowed on the source table, while all write and metadata transactions are aborted. 2. REDIRECT-READY: The redirection setup is complete, and all queries on the source table are routed to the destination table. 3. DROP-REDIRECT-IN-PROGRESS: Table redirection is being disabled. Only read-only queries are allowed on the destination table, with all write and metadata transactions aborted. The valid procedures of state transition are: 0. NO-REDIRECT -> ENABLE-REDIRECT-IN-PROGRESS: Begins the table redirection process by transitioning the table to 'ENABLE-REDIRECT-IN-PROGRESS.' During this setup phase, all concurrent DML and DDL operations are temporarily blocked..
- ENABLE-REDIRECT-IN-PROGRESS -> REDIRECT-READY: Completes the setup for the table redirection feature. The table starts redirecting all queries to the destination location. 2. REDIRECT-READY -> DROP-REDIRECT-IN-PROGRESS: Initiates the process of removing table redirection by setting the table to 'DROP-REDIRECT-IN-PROGRESS.' This ensures that concurrent DML/DDL operations do not interfere with the cancellation process. 3. DROP-REDIRECT-IN-PROGRESS -> NO-REDIRECT: Completes the removal of table redirection. As a result, all DML, DDL, and read-only queries are no longer redirected to the previous destination. 4. ENABLE-REDIRECT-IN-PROGRESS -> NO-REDIRECT: This transition involves canceling table redirection while it is still in the process of being enabled.
-
class
TableRedirect extends AnyRef
This is the main class of the table redirect that interacts with other components.
-
case class
TableRedirectConfiguration(type: String, state: String, specValue: String, noRedirectRules: Set[NoRedirectRule] = Set.empty) extends Product with Serializable
This class stores all values defined inside table redirection property.
Value Members
-
object
DropRedirectInProgress extends RedirectState with Product with Serializable
The table redirection is under withdrawal and the redirection property is going to be removed from the delta table.
The table redirection is under withdrawal and the redirection property is going to be removed from the delta table. In this state, the delta client stops redirecting new queries to redirect destination tables, and only accepts read-only queries to access the redirect source table. The on-going redirected write or metadata transactions, which are visiting redirect destinations, can not commit.
-
object
EnableRedirectInProgress extends RedirectState with Product with Serializable
This state indicates that the redirect process is still going on.
-
object
NoRedirect extends RedirectState with Product with Serializable
This state indicates that redirect is not enabled on the table.
- object PathBasedRedirectSpec
- object RedirectFeature
- object RedirectReaderWriter extends TableRedirect
-
object
RedirectReady extends RedirectState with Product with Serializable
This state indicates that the redirect process is completed.
This state indicates that the redirect process is completed. All types of queries would be redirected to the table specified inside RedirectSpec object.
- object RedirectSpec
- object RedirectWriterOnly extends TableRedirect