Appending Data
The most common write operation is appending new data files to a table.Basic Append
Fast Append
For streaming workloads with frequent small appends, use fast append to reduce commit overhead:Append Multiple Files
Append Manifest Files
Directly append pre-built manifest files:Appending manifests is efficient for bulk imports and can significantly reduce commit time for large datasets.
Overwriting Data
Overwrite operations replace data matching specific criteria.Dynamic Overwrite by Filter
Overwrite all data matching a row filter:Explicit File Overwrite
Delete specific files and add new ones:Validated Overwrite
Ensure idempotent overwrites with validation:Conflict Detection
Detect and handle concurrent modifications:Conflict detection is essential for non-idempotent operations like UPDATE and DELETE to maintain data consistency.
Deleting Data
Delete Files by Path
Delete by DataFile
Delete by Row Filter
Delete all files where all rows match a filter:Validate Files Exist
Row-Level Changes
Row delta operations enable fine-grained updates and deletes using delete files.Simple Row Delta
Update Operation (Copy-on-Write)
Update with Equality Deletes (Merge-on-Read)
Position Deletes
Validated Row Delta
Ensure concurrent operations don’t conflict:Transactions
Group multiple operations into an atomic transaction.Basic Transaction
Multi-Operation Transaction
Transactions ensure all operations succeed or fail together, maintaining table consistency.
Replace Partitions
Dynamically overwrite partitions (legacy operation):Complete Examples
Write Properties
Configure write behavior with table properties:Best Practices
- Use transactions: Group related operations for atomic commits
- Batch appends: Append multiple files in a single commit to reduce metadata overhead
- Fast append for streaming: Use
newFastAppend()for high-frequency writes - Validate overwrites: Use conflict detection for non-idempotent operations
- Target file size: Configure appropriate file sizes (256-512 MB) for optimal performance
- Partition pruning: Structure writes to align with common query patterns
- Use row deltas for updates: Leverage delete files for efficient row-level modifications
- Monitor snapshot growth: Regularly expire snapshots to prevent metadata bloat