Skip to main content

DeltaTableTransactionMode

Enum DeltaTableTransactionMode 

Source
pub enum DeltaTableTransactionMode {
    None,
    Snapshot,
    Always,
    Catchup,
}
Expand description

Delta table transaction mode.

Determines how the connector breaks up its input into transactions.

  • none - the connector does not break up its input into transactions.
  • snapshot - ingest the initial snapshot of the table in one or several transactions. If the connector is configured in the snapshot_and_follow mode, it will ingest the transaction log of the table without transactions.
  • catchup - batch the initial snapshot and transaction-log catch-up into Feldera transactions (see below).
  • always - all updates generated by the connector are broken up into transactions, both during the initial snapshot and when following the transaction log.

§How table snapshot is ingested using transactions

If the connector is configured in the snapshot or snapshot_and_follow mode, and its transaction_mode is set to snapshot, catchup, or always, it will ingest the snapshot of the table in one or several transactions. The exact behavior depends on the value of the timestamp_column option. If timestamp_column is not set, catchup and always ingest the snapshot in one Feldera transaction; snapshot mode uses the same one-transaction behavior when timestamp_column is not set.

If timestamp_column is set, the connector will ingest the snapshot of the table in a series of batches, one for each timestamp range of width equal to the LATENESS attribute of the timestamp_column. Each range will be ingested in a separate transaction.

See timestamp_column documentation for more details.

§How transaction log is ingested using transactions

If the connector is configured in the follow, snapshot_and_follow, or cdc mode, and its transaction_mode is set to catchup, it ingests the transaction log in batches. When it starts a Feldera transaction, it reads the latest available version of the Delta table (capped by end_version if set) and ingests all log entries up to and including that version in a single Feldera transaction before committing. It then repeats for subsequent versions as they appear in the log.

The catchup mode offers the most efficient way for the connector to process the entire contents of the table during backfill and keep up with table changes in steady state.

If transaction_mode is set to always, the connector ingests the transaction log in a series of transactions, generating exactly one Feldera transaction for each entry in the table’s transaction log. Feldera transaction boundaries then match the transaction boundaries of the Delta Lake table: as long as the table keeps changing, each log entry initiates a new Feldera transaction. Use always when that one-to-one alignment is required.

JSON schema
{
 "description": "Delta table transaction mode.\n\nDetermines how the connector breaks up its input into transactions.\n\n* `none` - the connector does not break up its input into transactions.\n* `snapshot` - ingest the initial snapshot of the table in one or several transactions. If the connector is\nconfigured in the `snapshot_and_follow` mode, it will ingest the transaction log of the table without transactions.\n* `catchup` - batch the initial snapshot and transaction-log catch-up into Feldera transactions (see below).\n* `always` - all updates generated by the connector are broken up into transactions, both during the initial snapshot\nand when following the transaction log.\n\n# How table snapshot is ingested using transactions\n\nIf the connector is configured in the `snapshot` or `snapshot_and_follow` mode, and its\n`transaction_mode` is set to `snapshot`, `catchup`, or `always`, it will ingest the snapshot of the\ntable in one or several transactions. The exact behavior depends on the value of the `timestamp_column` option.\nIf `timestamp_column` is not set, `catchup` and `always` ingest the snapshot in one Feldera transaction; `snapshot`\nmode uses the same one-transaction behavior when `timestamp_column` is not set.\n\nIf `timestamp_column` is set, the connector will ingest the snapshot of the table in a series of batches, one for\neach timestamp range of width equal to the `LATENESS` attribute of the `timestamp_column`. Each range will be\ningested in a separate transaction.\n\nSee `timestamp_column` documentation for more details.\n\n# How transaction log is ingested using transactions\n\nIf the connector is configured in the `follow`, `snapshot_and_follow`, or `cdc` mode, and its\n`transaction_mode` is set to `catchup`, it ingests the transaction log in batches. When it starts a\nFeldera transaction, it reads the latest available version of the Delta table (capped by `end_version` if set) and\ningests all log entries up to and including that version in a single Feldera transaction before committing. It then\nrepeats for subsequent versions as they appear in the log.\n\nThe `catchup` mode offers the most efficient way for the connector to process the entire contents\nof the table during backfill and keep up with table changes in steady state.\n\nIf `transaction_mode` is set to `always`, the connector ingests the transaction log in a series of transactions,\ngenerating exactly one Feldera transaction for each entry in the table's transaction log. Feldera transaction\nboundaries then match the transaction boundaries of the Delta Lake table: as long as the table keeps changing, each log\nentry initiates a new Feldera transaction. Use `always` when that one-to-one alignment is required.",
 "type": "string",
 "enum": [
   "none",
   "snapshot",
   "always",
   "catchup"
 ]
}

Variants§

§

None

§

Snapshot

§

Always

§

Catchup

Trait Implementations§

Source§

impl Clone for DeltaTableTransactionMode

Source§

fn clone(&self) -> DeltaTableTransactionMode

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DeltaTableTransactionMode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for DeltaTableTransactionMode

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<&DeltaTableTransactionMode> for DeltaTableTransactionMode

Source§

fn from(value: &DeltaTableTransactionMode) -> Self

Converts to this type from the input type.
Source§

impl FromStr for DeltaTableTransactionMode

Source§

type Err = ConversionError

The associated error which can be returned from parsing.
Source§

fn from_str(value: &str) -> Result<Self, ConversionError>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for DeltaTableTransactionMode

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for DeltaTableTransactionMode

Source§

fn cmp(&self, other: &DeltaTableTransactionMode) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for DeltaTableTransactionMode

Source§

fn eq(&self, other: &DeltaTableTransactionMode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for DeltaTableTransactionMode

Source§

fn partial_cmp(&self, other: &DeltaTableTransactionMode) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Serialize for DeltaTableTransactionMode

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl ToString for DeltaTableTransactionMode

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl TryFrom<&String> for DeltaTableTransactionMode

Source§

type Error = ConversionError

The type returned in the event of a conversion error.
Source§

fn try_from(value: &String) -> Result<Self, ConversionError>

Performs the conversion.
Source§

impl TryFrom<&str> for DeltaTableTransactionMode

Source§

type Error = ConversionError

The type returned in the event of a conversion error.
Source§

fn try_from(value: &str) -> Result<Self, ConversionError>

Performs the conversion.
Source§

impl TryFrom<String> for DeltaTableTransactionMode

Source§

type Error = ConversionError

The type returned in the event of a conversion error.
Source§

fn try_from(value: String) -> Result<Self, ConversionError>

Performs the conversion.
Source§

impl Copy for DeltaTableTransactionMode

Source§

impl Eq for DeltaTableTransactionMode

Source§

impl StructuralPartialEq for DeltaTableTransactionMode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Serialize for T
where T: Serialize + ?Sized,

Source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<Ok, Error>

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,