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 thesnapshot_and_followmode, 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§
Trait Implementations§
Source§impl Clone for DeltaTableTransactionMode
impl Clone for DeltaTableTransactionMode
Source§fn clone(&self) -> DeltaTableTransactionMode
fn clone(&self) -> DeltaTableTransactionMode
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DeltaTableTransactionMode
impl Debug for DeltaTableTransactionMode
Source§impl<'de> Deserialize<'de> for DeltaTableTransactionMode
impl<'de> Deserialize<'de> for DeltaTableTransactionMode
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<&DeltaTableTransactionMode> for DeltaTableTransactionMode
impl From<&DeltaTableTransactionMode> for DeltaTableTransactionMode
Source§fn from(value: &DeltaTableTransactionMode) -> Self
fn from(value: &DeltaTableTransactionMode) -> Self
Source§impl FromStr for DeltaTableTransactionMode
impl FromStr for DeltaTableTransactionMode
Source§impl Hash for DeltaTableTransactionMode
impl Hash for DeltaTableTransactionMode
Source§impl Ord for DeltaTableTransactionMode
impl Ord for DeltaTableTransactionMode
Source§fn cmp(&self, other: &DeltaTableTransactionMode) -> Ordering
fn cmp(&self, other: &DeltaTableTransactionMode) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for DeltaTableTransactionMode
impl PartialEq for DeltaTableTransactionMode
Source§fn eq(&self, other: &DeltaTableTransactionMode) -> bool
fn eq(&self, other: &DeltaTableTransactionMode) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialOrd for DeltaTableTransactionMode
impl PartialOrd for DeltaTableTransactionMode
Source§impl ToString for DeltaTableTransactionMode
impl ToString for DeltaTableTransactionMode
Source§impl TryFrom<&String> for DeltaTableTransactionMode
impl TryFrom<&String> for DeltaTableTransactionMode
Source§type Error = ConversionError
type Error = ConversionError
Source§impl TryFrom<&str> for DeltaTableTransactionMode
impl TryFrom<&str> for DeltaTableTransactionMode
Source§type Error = ConversionError
type Error = ConversionError
Source§impl TryFrom<String> for DeltaTableTransactionMode
impl TryFrom<String> for DeltaTableTransactionMode
Source§type Error = ConversionError
type Error = ConversionError
impl Copy for DeltaTableTransactionMode
impl Eq for DeltaTableTransactionMode
impl StructuralPartialEq for DeltaTableTransactionMode
Auto Trait Implementations§
impl Freeze for DeltaTableTransactionMode
impl RefUnwindSafe for DeltaTableTransactionMode
impl Send for DeltaTableTransactionMode
impl Sync for DeltaTableTransactionMode
impl Unpin for DeltaTableTransactionMode
impl UnsafeUnpin for DeltaTableTransactionMode
impl UnwindSafe for DeltaTableTransactionMode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.