Skip to main content
Adrià García
← Back to the simulators

Experience Platform · batch ingestion

The load that half failed

Every night the ecommerce orders batch comes in: 10,000 purchases and €500,000 in total. Tonight, some rows carry the amount as text. Choose how it is ingested and how it is reprocessed once the source is fixed. See how many purchases and how much money Profile and the data lake see.

Scenario

The amount arrives as text, for example "12,90 €".

First load: partial ingestion

Above the threshold, the whole batch fails.

The next day, what gets reloaded

The source has already been fixed.

The _id of each purchase

Illustrative scenario ↑ Back to the controls
Example assumptions

Example batch, orders, amounts and percentages. Each order is worth €50 on average.

Two nights

What gets in on each load

Tonight's orders load and tomorrow's reprocessing, row by row.

Profile and data lake

What each place counts

The same orders can add up differently in Profile, in the data lake and in the sales report.

The recommendation

Partial ingestion with a threshold, a stable _id and reprocessing only what failed

A failed load is not serious. What is serious is fixing it by reloading everything with new identifiers.

  1. 01

    Partial ingestion with a threshold

    That way a few bad rows do not take down the good ones. The threshold depends on what the business tolerates. Above it, the whole batch should fail so someone looks at it.

  2. 02

    A business _id

    The order number, not a random identifier that changes on every load. With the same _id, Profile discards the repeated event.

  3. 03

    Reprocess only the failed rows

    Download the error diagnostics, fix those rows and load only those. Reloading the whole file creates duplicates in the data lake even with a stable _id.

  4. 04

    Deduplicate where you analyse

    In Query Service and in reports, one record per _id. And an alert on failed batches, so you do not find out from Monday's report.

Architecture note · 07 Handover is architecture An architecture is not complete until someone else can operate it. Read the note →

Explore this decision