Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Batch vs Streaming Reconciliation

HardSQL · PostgreSQL00:00
Practice interviewer
In session
5 left
00:00

Your question is Batch vs Streaming Reconciliation. Start with the requirements and the two tables on the right.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.

Problem

Write a SQL query to compare batch-loaded and streaming-loaded records and identify mismatches.

Compare the latest version of each record_id from both tables. Include records present in only one source, and identify differences in entity, event type, event value, event timestamp, or payload hash.

Output

  1. One row per distinct record_id.
  2. Include the comparison status, mismatch fields, and batch and streaming values.
  3. Include matching, mismatched, batch-only, and streaming-only records.
  4. Order by record_id ascending.

Schema

batch_records
ColumnTypeDescription
ingestion_idPKINTUnique batch ingestion row identifier
record_idINTBusiness identifier of the loaded record
entity_idINTIdentifier of the related entity
event_typeVARCHAR(30)Type of business event
event_valueDECIMAL(12,2)Numeric value associated with the event
event_tsTIMESTAMPTimestamp at which the event occurred
payload_hashVARCHAR(64)Hash of the source payload
loaded_atTIMESTAMPTimestamp when the batch row was loaded
streaming_records
ColumnTypeDescription
ingestion_idPKINTUnique streaming ingestion row identifier
record_idINTBusiness identifier of the streamed record
entity_idINTIdentifier of the related entity
event_typeVARCHAR(30)Type of business event
event_valueDECIMAL(12,2)Numeric value associated with the event
event_tsTIMESTAMPTimestamp at which the event occurred
payload_hashVARCHAR(64)Hash of the source payload
loaded_atTIMESTAMPTimestamp when the streaming row was loaded
Tablesbatch_recordsstreaming_records
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results