{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://inquir.org/use-cases/csv-processing#webpage","url":"https://inquir.org/use-cases/csv-processing","name":"Serverless CSV processing: parse, transform, and load large files","headline":"Serverless CSV processing: parse, transform, and load large files","description":"Serverless CSV processing: accept uploads via HTTP, parse and transform large CSV files in background pipelines with no HTTP timeout, stream to database in batches, and notify when done.","inLanguage":"en-US","isPartOf":{"@id":"https://inquir.org/#website"},"author":{"@type":"Organization","name":"Inquir"},"datePublished":"2025-01-01T00:00:00.000Z","dateModified":"2026-04-20T00:00:00.000Z","citation":"https://inquir.org/docs"},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://inquir.org"},{"@type":"ListItem","position":2,"name":"Use cases","item":"https://inquir.org/use-cases"},{"@type":"ListItem","position":3,"name":"CSV processing","item":"https://inquir.org/use-cases/csv-processing"}]},{"@type":"HowTo","@id":"https://inquir.org/use-cases/csv-processing#howto","name":"Serverless CSV processing: parse, transform, and load large files","description":"Serverless CSV processing: accept uploads via HTTP, parse and transform large CSV files in background pipelines with no HTTP timeout, stream to database in batches, and notify when done.","inLanguage":"en-US","author":{"@type":"Organization","name":"Inquir"},"step":[{"@type":"HowToStep","position":1,"name":"HTTP handler accepts file reference, returns 202","text":"Validate the file URL or storage key. Store job record with status=pending. Trigger pipeline with file reference and job ID."},{"@type":"HowToStep","position":2,"name":"Pipeline step reads and processes CSV","text":"Download and parse the CSV in the pipeline step. Upsert rows in batches of 500–1000 with idempotency keys. Update progress on job record."},{"@type":"HowToStep","position":3,"name":"Final step notifies","text":"After last batch, mark job complete and notify the user via email, webhook, or status update."}],"isPartOf":{"@id":"https://inquir.org/use-cases/csv-processing#webpage"}},{"@type":"FAQPage","@id":"https://inquir.org/use-cases/csv-processing#faq","url":"https://inquir.org/use-cases/csv-processing","isPartOf":{"@id":"https://inquir.org/use-cases/csv-processing#webpage"},"mainEntity":[{"@type":"Question","name":"How do I handle CSV validation errors?","acceptedAnswer":{"@type":"Answer","text":"Collect validation errors per row and store them on the import job record. Return a summary (valid rows, invalid rows, error list) when the job completes. Let the client decide whether to proceed with partial import or fix errors first."}},{"@type":"Question","name":"How do I resume a failed import?","acceptedAnswer":{"@type":"Answer","text":"Track the last successfully processed row offset on the job record. Re-trigger the pipeline with offset; the step skips already-processed rows. Use upsert-on-external-id for safety."}}]}]}