Late-arriving data is data that arrives after the expected processing time, often causing delays or inconsistencies in reports.
Click to reveal answer
beginner
Why is handling late-arriving data important in dbt projects?
Because late data can cause incorrect analytics, handling it ensures data accuracy and reliable business decisions.
Click to reveal answer
intermediate
Name one common strategy to handle late-arriving data in dbt.
One common strategy is to use incremental models with a window of time to reprocess recent data and include late arrivals.
Click to reveal answer
intermediate
How does the 'is_incremental()' function help with late-arriving data?
It allows dbt to run logic only on new or updated data, so you can reprocess recent partitions to capture late data without a full refresh.
Click to reveal answer
beginner
What is a common real-life example of late-arriving data?
Sales transactions recorded late due to network delays or manual entry after the daily report is generated.
Click to reveal answer
What does late-arriving data usually cause in analytics?
AMore storage space
BFaster query performance
CInaccurate or incomplete reports
DBetter data visualization
✗ Incorrect
Late-arriving data can cause reports to miss recent updates, leading to inaccurate or incomplete results.
Which dbt feature helps to update only recent data partitions to handle late-arriving data?
Ais_incremental()
Bfull_refresh
Csnapshot()
Drun_operation
✗ Incorrect
The is_incremental() function allows incremental models to update only new or changed data, useful for late-arriving data.
What is a simple way to handle late-arriving data in incremental models?
AReprocess recent days' data with a time window
BIgnore late data completely
CDelete old data
DUse only full refreshes
✗ Incorrect
Reprocessing recent data within a time window captures late-arriving records without full table refresh.
Late-arriving data is often caused by:
AReal-time streaming
BFaster data pipelines
CData compression
DNetwork delays or manual data entry
✗ Incorrect
Network delays or manual entry can cause data to arrive after expected processing times.
Which of these is NOT a good practice for handling late-arriving data?
AUsing incremental models with reprocessing windows
BIgnoring late data permanently
CScheduling frequent incremental runs
DMonitoring data freshness
✗ Incorrect
Ignoring late data can cause inaccurate analytics; it's better to handle it properly.
Explain what late-arriving data is and why it matters in data projects.
Think about data that comes after expected processing times and how it affects reports.
You got /3 concepts.
Describe how you would use dbt incremental models to manage late-arriving data.
Focus on updating only recent partitions to capture late data.
You got /3 concepts.
Practice
(1/5)
1. What does late-arriving data mean in data processing?
easy
A. Data that is generated by a different system
B. Data that arrives after the expected time window
C. Data that is duplicated in the dataset
D. Data that is corrupted or incomplete
Solution
Step 1: Understand the timing of data arrival
Late-arriving data refers to data that comes in after the time it was expected to be available for processing.
Step 2: Differentiate from other data issues
It is not about corruption, duplication, or source system differences, but purely about timing.
Final Answer:
Data that arrives after the expected time window -> Option B
Quick Check:
Late-arriving data = late arrival [OK]
Hint: Late-arriving means data comes late, not corrupted or duplicated [OK]
Common Mistakes:
Confusing late data with corrupted data
Thinking late data means duplicate records
Assuming late data is from a different system
2. Which of the following is the correct way to filter late-arriving data in a dbt SQL model?
easy
A. WHERE event_date < current_date - interval '1 day'
B. WHERE event_date > current_date + interval '1 day'
C. WHERE event_date = current_date
D. WHERE event_date IS NULL
Solution
Step 1: Understand filtering late data by date
Late-arriving data is usually older than the current date minus a buffer (like 1 day), so we filter for dates less than that.
Step 2: Check each option's logic
WHERE event_date < current_date - interval '1 day' filters for event_date before yesterday, which captures late data. WHERE event_date > current_date + interval '1 day' filters future dates, which is incorrect. WHERE event_date = current_date filters only today's data, ignoring late data. WHERE event_date IS NULL filters nulls, unrelated to late data.
Final Answer:
WHERE event_date < current_date - interval '1 day' -> Option A
Quick Check:
Filter dates before yesterday = WHERE event_date < current_date - interval '1 day' [OK]
Hint: Late data usually has older dates than today minus buffer [OK]
Common Mistakes:
Filtering future dates instead of past dates
Filtering only current date data
Filtering null dates instead of late data
3. Given this dbt incremental model SQL snippet:
SELECT
id,
event_date,
data_value
FROM source_table
WHERE event_date >= (SELECT MAX(event_date) FROM {{ this }})
What is the main purpose of this WHERE clause?
medium
A. To select only new or updated data since last run
B. To select all data including duplicates
C. To exclude all late-arriving data
D. To select data with null event_date
Solution
Step 1: Analyze the WHERE clause logic
The clause filters rows where event_date is greater or equal to the max event_date already in the target table, meaning it picks new or updated data since last run.
Step 2: Understand incremental model behavior
This is a common pattern in dbt incremental models to avoid reprocessing old data and only add new or changed rows.
Final Answer:
To select only new or updated data since last run -> Option A
Quick Check:
Incremental filter = new or updated data [OK]
Hint: Incremental models filter data newer than max existing date [OK]
Common Mistakes:
Thinking it excludes late-arriving data
Assuming it selects duplicates
Confusing null filtering with this clause
4. You wrote this dbt incremental model filter:
WHERE event_date > (SELECT MAX(event_date) FROM {{ this }})
But your model misses some late-arriving data. What is the likely problem?
medium
A. The subquery syntax is invalid in dbt
B. You should filter with event_date < instead
C. Using > instead of >= excludes data with event_date equal to max date
D. Late-arriving data always has null event_date
Solution
Step 1: Understand the difference between > and >=
Using > excludes rows where event_date equals the max date already processed, which can miss late-arriving data with that date.
Step 2: Correct the filter to include equal dates
Changing to >= includes those rows, capturing late-arriving data that arrived late but has the same event_date.
Final Answer:
Using > instead of >= excludes data with event_date equal to max date -> Option C
Quick Check:
Use >= to include late data on max date [OK]
Hint: Use >= not > to include late data on max date [OK]
Common Mistakes:
Using > excludes late data with max date
Thinking subquery is invalid in dbt
Filtering with < instead of >
Assuming late data has null dates
5. You want to handle late-arriving data in a dbt incremental model. Which approach best ensures late data is included without duplicating existing rows?
hard
A. Filter only event_date = current_date to avoid duplicates
B. Delete all data and reload full dataset every run
C. Ignore late-arriving data to keep model simple
D. Use a merge strategy with unique keys and filter event_date >= max date
Solution
Step 1: Understand the goal of including late-arriving data
Late data can have event_dates already processed, so we must update or insert without duplicates.
Step 2: Use merge strategy with unique keys and proper filtering
Using a merge (upsert) with unique keys and filtering event_date >= max date ensures late data is added or updated correctly.
Step 3: Evaluate other options
Deleting all data every run is costly. Ignoring late data loses accuracy. Filtering only current_date misses late data.
Final Answer:
Use a merge strategy with unique keys and filter event_date >= max date -> Option D
Quick Check:
Merge + unique keys + >= max date = best late data handling [OK]
Hint: Merge with unique keys and >= max date handles late data well [OK]
Common Mistakes:
Reloading full data every run is inefficient
Ignoring late data causes incomplete analysis
Filtering only current date misses late data
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.