pub struct ExportConfig {Show 36 fields
pub name: String,
pub query: Option<String>,
pub query_file: Option<String>,
pub table: Option<String>,
pub mode: ExportMode,
pub cursor_column: Option<String>,
pub cursor_fallback_column: Option<String>,
pub incremental_cursor_mode: IncrementalCursorMode,
pub chunk_column: Option<String>,
pub chunk_dense: bool,
pub chunk_size: usize,
pub chunk_size_memory_mb: Option<u64>,
pub chunk_count: Option<usize>,
pub chunk_by_days: Option<u32>,
pub parallel: usize,
pub time_column: Option<String>,
pub time_column_type: TimeColumnType,
pub days_window: Option<u32>,
pub format: FormatType,
pub compression: CompressionType,
pub compression_level: Option<u32>,
pub compression_profile: Option<CompressionProfile>,
pub skip_empty: bool,
pub destination: DestinationConfig,
pub meta_columns: MetaColumns,
pub quality: Option<QualityConfig>,
pub max_file_size: Option<String>,
pub chunk_checkpoint: bool,
pub chunk_max_attempts: Option<u32>,
pub tuning: Option<TuningConfig>,
pub source_group: Option<String>,
pub reconcile_required: bool,
pub columns: HashMap<String, String>,
pub on_schema_drift: SchemaDriftPolicy,
pub shape_drift_warn_factor: Option<f64>,
pub parquet: Option<ParquetConfig>,
}Fields§
§name: String§query: Option<String>§query_file: Option<String>§table: Option<String>Shortcut for query: "SELECT * FROM <schema>.<table>".
Accepts table or schema.table with ASCII-only identifiers
([A-Za-z_][A-Za-z0-9_]*). Generates an unquoted single-table
query so the Postgres NUMERIC catalog-hint resolver recognises it
and auto-types numeric(p,s) columns without manual overrides.
Mutually exclusive with query and query_file.
mode: ExportMode§cursor_column: Option<String>§cursor_fallback_column: Option<String>Secondary column for IncrementalCursorMode::Coalesce only (see ADR-0007).
incremental_cursor_mode: IncrementalCursorModeHow primary (and optional fallback) columns drive incremental progression.
chunk_column: Option<String>§chunk_dense: bool§chunk_size: usize§chunk_size_memory_mb: Option<u64>Target memory budget per chunk in MB. When set, chunk_size is derived
from this budget at plan-build time using a pg_class row-size estimate
(pg_relation_size / reltuples), clamped to [10_000, 5_000_000] rows.
Mutually exclusive with an explicit non-default chunk_size:. Only
applies to mode: chunked on a Postgres source using the table:
shortcut (the row-size probe needs a known relation).
exports:
- name: page_views
table: public.page_views
mode: chunked
chunk_size_memory_mb: 256chunk_count: Option<usize>Divide the column range into exactly this many equal chunks.
Mutually exclusive with chunk_dense and chunk_by_days.
When set, chunk_size is computed dynamically from min/max.
chunk_by_days: Option<u32>§parallel: usize§time_column: Option<String>§time_column_type: TimeColumnType§days_window: Option<u32>§format: FormatType§compression: CompressionType§compression_level: Option<u32>§compression_profile: Option<CompressionProfile>§skip_empty: bool§destination: DestinationConfig§meta_columns: MetaColumns§quality: Option<QualityConfig>§max_file_size: Option<String>§chunk_checkpoint: bool§chunk_max_attempts: Option<u32>§tuning: Option<TuningConfig>§source_group: Option<String>Optional logical group for shared source capacity (replica, host). Advisory prioritization only.
reconcile_required: boolHint (Epic C / ADR-0006) that this export should always be treated as reconcile-heavy
by planning, independent of the --reconcile CLI flag. Advisory only.
columns: HashMap<String, String>Per-column type overrides (roadmap §8). Keys are column names; values
are short type strings such as decimal(18,2), timestamp_tz, json.
exports:
- name: payments
columns:
amount: decimal(18,2)
fee: decimal(18,6)
created_at: timestamp_tzOverrides take priority over autodetection and are validated at plan time — an invalid type string fails before the export runs.
on_schema_drift: SchemaDriftPolicyPolicy applied when structural schema drift is detected (column added, removed, or retyped).
Defaults to warn: log a warning and continue.
shape_drift_warn_factor: Option<f64>Growth-factor threshold for data shape drift warnings (Epic 8).
When a string/binary column’s max observed byte length in the current run
exceeds stored_max * shape_drift_warn_factor, Rivet logs a warning.
None uses the default of 2.0. Set to 0.0 to disable shape tracking.
parquet: Option<ParquetConfig>Parquet row group tuning. Only meaningful when format: parquet.
When absent, the parquet library default (1,048,576 rows/group) is used.
Implementations§
Source§impl ExportConfig
impl ExportConfig
Sourcepub fn effective_compression(&self) -> (CompressionType, Option<u32>)
pub fn effective_compression(&self) -> (CompressionType, Option<u32>)
Resolve the effective (CompressionType, level) for this export.
compression_profile takes precedence over compression + compression_level.
pub fn max_file_size_bytes(&self) -> Option<u64>
pub fn resolve_query( &self, config_dir: &Path, params: Option<&HashMap<String, String>>, ) -> Result<String>
Trait Implementations§
Source§impl Clone for ExportConfig
impl Clone for ExportConfig
Source§fn clone(&self) -> ExportConfig
fn clone(&self) -> ExportConfig
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 ExportConfig
impl Debug for ExportConfig
Source§impl<'de> Deserialize<'de> for ExportConfig
impl<'de> Deserialize<'de> for ExportConfig
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 JsonSchema for ExportConfig
impl JsonSchema for ExportConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more