Export to Iceberg
Hand your data to Spark, Trino, Athena or Snowflake as Apache Iceberg tables, without touching your database.
Only when something downstream requires Iceberg. For your own queries, Query in DuckDB reads the same files with no copy.

Run it
Backups → Keep it current with Iceberg gives the line for that server, with its connection and backup location filled in. Replace the stars with the index password, pick a folder, run it from cron, CI or a timer. It never runs inside the capture daemon.

bintrail export iceberg --index-dsn "..." --baseline-dir /data/baselines \
--warehouse /data/iceberg --tables shop.orders,shop.customersEvery run after the first is small

Each run reads only the changes since its last run and commits one Iceberg snapshot per table. Where it left off is stored in that commit, inside the table; nothing is written back to DBTrail.
What a run tells you

- Nothing new: says so, writes nothing.
- A table it cannot advance keeps its copy, retries next run, and does not stop the others. Exit is non-zero, so your scheduler sees it.
- A run that dies halfway leaves the last complete commit readable.
Limits
- A second run on the same folder is refused while one holds its lock.
--warehouseis a local directory; no direct S3 output yet.- MySQL and MariaDB sources; the PostgreSQL capture binary does not have it.
- Tables need a primary key; unsupported column types are named in the run.
Options, type mapping, reading from each engine, every refusal: repository reference.