Lies von einer Replica oder einem Snapshot (nie vom Primary), blättere mit Keyset-Pagination statt OFFSET, drossle die Leserate und streame die Ergebnisse direkt in Object Storage. Das Ziel ist, 500M Rows zu exportieren, ohne lange Locks zu halten, die Primary-CPU zu spiken oder den Speicher zu sprengen.
Export-Pipeline
Primary DB ──async replication──▶ Read replica / snapshot
│ (isolated from live traffic)
▼
Export worker
keyset page: WHERE id > :last
│ throttle (sleep / rate limit)
▼
Stream (batches)
│
▼
S3 / GCS (NDJSON / Parquet)
