Gather the Required Data
Key Takeaways
Full extracts are the simplest to reconcile but the heaviest load on source production systems; incremental extracts are cheaper but silently miss records when the change marker is unreliable.
Prove that nothing was lost in transfer by comparing record counts and checksums on both sides and recording the result — 'it looks about right' is not evidence.
A model in production needs the same data on the same schedule indefinitely, so a hand-pulled extract emailed by an analyst is a hidden dependency that breaks after go-live.
When an extract arrives with fewer records than expected, reconcile against the source with the data SME before proceeding; never continue quietly with partial data.
Character encoding corruption damages records with accented or non-Latin names disproportionately, making it a fairness problem as well as a data quality one.
Why Schedules Slip Here
Task 5 of Domain III is where the plan meets the source systems. You have defined the data you need, named the data subject matter experts (SMEs), located the sources, and readied the workspace. Now the data has to physically move. This is the point at which AI project schedules slip, because every step depends on someone else's production system, someone else's change window, and someone else's approval.
Extraction Planning
Full versus incremental. A full extract copies everything. It is the simplest thing to reconcile and the heaviest load on the source. An incremental extract pulls only records changed since the last run — far cheaper, but it depends on a reliable change marker such as a modified-date column or change-data-capture log, and silently misses records when that marker is unreliable. The usual pattern is one full baseline extract followed by incrementals.
Impact on source production systems. The systems holding your data are running the business. A full extract of a claims database during business hours can degrade the application adjusters are using. Negotiate an extraction window with the system owner — off-peak, time-boxed, with an agreed abort condition — and put it on the schedule as a dependency. Assuming you can pull whenever you like is the fastest way to have your access revoked.
Point-in-time correctness. Data extracted while transactions are still posting is internally inconsistent: an order table read at 02:00 and a payments table read at 04:00 will not reconcile, and the mismatch looks exactly like a data quality problem. Ask for an as-of snapshot — a consistent read at a single logical point in time — and record that timestamp, both for validation now and for reproducibility later.
Transfer and Migration to the Development Environment
- Volume against bandwidth. Do the arithmetic before committing to a date. Multi-terabyte transfers over a constrained link take days, not hours, and may need staged transfers or a physical transfer appliance. That calculation is a schedule input, not a technical footnote.
- Secure transfer. Encrypted, approved channels only. Email attachments, personal cloud drives, and unencrypted removable media are the classic finding in a post-incident review.
- Proof that nothing was lost. Compare record counts and checksums on both sides, and record the comparison. "It looks about right" is not evidence, and truncated or partially transferred files rarely announce themselves.
- Sensitive fields in transit. Fields the model does not need — full identifiers, payment details, free-text notes containing personal data — should be masked, tokenized, or dropped at the source rather than moved and cleaned later. Every copy you create is a copy you must protect, log, and eventually delete.
Ongoing Feeds, Not One-Off Pulls
A one-off extract is enough to explore data. It is not enough to run a solution. A model in production needs the same data, in the same shape, on the same schedule, indefinitely. If the training data arrived because an analyst ran a query each Friday and emailed a spreadsheet, you do not have a data source — you have a hidden manual dependency that breaks shortly after go-live, when that analyst is on leave or changes role.
Treat the recurring feed as a deliverable of this phase: an automated, scheduled pipeline with a documented frequency, a named operational owner, and a support arrangement. Establishing it now costs a fraction of retrofitting it during Model Operationalization.
Validating Completeness and Accuracy During Collection
Validate as the data arrives, not after modeling starts. Five checks earn their place:
- Reconcile record counts and control totals against the source. Row counts plus summed key numeric fields — total claim value, total units shipped — captured at the source and compared after landing.
- Confirm the date range landed as expected. A request for 36 months that returns 27 usually means a filter, a retention purge, or a partition nobody mentioned.
- Look for silent truncation. Text cut at a column width, numeric overflow, decimals rounded away by a type mismatch. Nothing fails; the values are simply and quietly wrong.
- Check character encoding. A mismatch between source and target encoding corrupts names, addresses, and free text — and damages records for customers with accented or non-Latin names far more than others, making it a fairness problem as well as a quality one.
- Confirm referential integrity across joined sources. Orphaned keys and unexpected join fan-out, where one row becomes five, change your record counts and distort the model's view of reality.
Refresh and Update Procedures
Every feed needs a documented refresh procedure covering frequency and timing, the named owner, monitoring, and alerting on failure — including the silent failures: a file that arrives empty, arrives late, or arrives containing yesterday's contents. Define who is notified, how quickly, and what the fallback is. Feeds that fail loudly get fixed; feeds that fail silently poison a model for weeks before anyone notices.
Collection and Validation Reference
| Collection step | Validation check | Failure symptom | Corrective action |
|---|---|---|---|
| Extract from source system | Row count and control totals agreed with the system owner beforehand | Landed count materially below the agreed figure | Reconcile with the data SME and system owner before further work; re-run against the agreed filter |
| Extract with a date filter | Date range of landed records matches the request | Only 27 of 36 requested months present | Confirm retention or partition limits; re-scope the requirement if the history does not exist |
| Transfer to the AI environment | Checksum and file-size comparison on both sides | Checksums differ, or transfer aborted part-way | Re-transfer the affected files; never repair a partial file in place |
| Load into project storage | Field lengths and data types compared against the source schema | Text cut off, numbers rounded, identifiers mangled | Correct the target schema and reload; treat loaded data as suspect |
| Load multi-source data | Character encoding validated on a sample of names and free text | Corrupted characters in names and addresses | Fix the encoding declaration and reload; check whether affected records cluster in one group |
| Join across sources | Referential integrity and join cardinality | Orphaned keys, or record count multiplying after the join | Return to the data SMEs on both systems to agree the correct key relationship |
| Ongoing scheduled feed | Arrival time, file size, and record count monitored | File missing, empty, or a duplicate of yesterday | Alert the named owner immediately; do not let the pipeline consume the stale file |
Reconcile Before You Proceed
When an extract arrives with fewer records than expected, reconcile against the source with the data SME before proceeding. Do not re-plan the model around the smaller file, do not assume the gap is immaterial because the remaining volume "looks sufficient," and do not quietly continue with partial data. The gap has a cause — a filter, a retention policy, a permission boundary, an aborted transfer — and until you know which, you cannot say whether the data still represents the business problem. Proceeding quietly is the most heavily punished behavior in this task: the defect stays invisible until Model Evaluation, where it is expensive to unwind.
A fraud detection project requested 36 months of transaction history. The extract lands with 27 months and roughly 18% fewer records than the source team's own estimate for that period. The data science lead says the volume is still ample for training and wants to move into Data Preparation this week. What should the project manager do first?
Approve the move into Data Preparation, since 27 months still comfortably exceeds the minimum history the team estimated it needed.
Request a supplementary extract from a different source system to make up the missing nine months of history.
Reconcile the landed record counts and date range against the source with the data SME and the system owner before further work.
Log the shortfall as an open risk in the project risk register and continue into Data Preparation on schedule.
A chatbot deflection project is about to enter Model Development. All of the training data so far arrived because a support analyst ran a query each Friday and emailed a spreadsheet to the data scientist. The sponsor wants the solution live within a quarter. What should the project manager do?
Commission an automated, scheduled feed with a named operational owner.
Continue with the manual extract through development and raise the automated feed as a Model Operationalization work item.
Ask the analyst to document the query so that any team member can run it in the same way when she is unavailable.
Ask the analyst to run the extract daily rather than weekly so the model trains on fresher support conversations.
A clinical coding project joins patient demographics from one system with encounter records from another. After loading, the joined dataset holds 2.3 million rows, but the encounter source system reports 1.6 million encounters for the same period. A sample review also shows accented patient surnames rendering as corrupted characters. What should the project manager do next?
Deduplicate the joined dataset down to 1.6 million rows and continue, since the encounter system's count is authoritative.
Accept the row count and treat the corrupted surnames as cosmetic, because the model will not use patient names as a feature.
Proceed into Data Preparation and let feature engineering resolve both issues as part of routine cleansing.
Return to the data SMEs for both systems to agree the correct key relationship, then fix the character encoding and reload.
Sections you finish are checked off in the contents.