replica나 snapshot에서 읽고(primary는 절대 안 됨), OFFSET 대신 keyset 페이지네이션으로 페이징하며, read 속도를 throttle하고, 결과를 object storage로 곧장 스트리밍하십시오. 목표는 긴 lock을 잡거나 primary CPU를 튀기거나 메모리를 터뜨리지 않고 5억 row를 export하는 것입니다.
Export 파이프라인
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)
