Create and append
One
append == one atomic commit, durable on return. Append in batches rather than
row-by-row for throughput.Open an existing table
A table persists, so you create it once and open it on later runs withopen_table.
Update and delete
In Python and Node.js,update and delete match rows by a SQL predicate
string. In Rust, they take a DataFusion Expr (col(...).eq(lit(...))), where col
and lit come from the datafusion-expr crate (see the Quickstart for the
companion crates Rust needs). update replaces matched rows 1:1 with the new rows you
supply.
Compact, list, and drop
optimize accepts options (omit for engine defaults):
| Option (Python / Node.js / Rust) | Description |
|---|---|
max_memory_mb / maxMemoryMb | build-time memory budget, in MB |
min_fill_percent / minFillPercent | only compact superfiles below this fill percent (0 to 100) |
target_superfile_size_mb / targetSuperfileSizeMb | target merged-superfile size, in MB |
Limitations
- One writer per table at a time. Appends/updates/deletes are serialized through a single atomic commit (concurrent writers from other processes retry).
updateis 1:1. The matched row count must equal the replacement-row count.update/deleteneed durable storage, notmemory://.- Schema is fixed at creation. Adding or changing columns means a new table.
