Czytaj z repliki lub snapshotu (nigdy z primary), stronicuj przez keyset pagination zamiast OFFSET, throttluj tempo odczytu i strumieniuj wyniki wprost do object storage. Celem jest eksport 500 mln wierszy bez trzymania długich blokad, skoku CPU na primary czy wysadzenia pamięci.
Pipeline eksportu
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)
