Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started
Dataford
Popular roles
Software EngineerData AnalystData ScientistData EngineerBusiness AnalystAI EngineerMachine Learning EngineerProduct Manager
Browse
Browse All RolesEvery role hub, from analyst to MLBrowse All CompaniesCompany-specific interview loopsAll Interview GuidesThe full guide library
Top questions by role
Software EngineerData AnalystData ScientistData EngineerBusiness AnalystAI EngineerMachine Learning EngineerProduct Manager
Top questions by skill
SQLPythonStatisticsMachine LearningA/B TestingSystem DesignGenerative AIProduct SenseMetricsBehavioral
Browse all questions →Try a mock interview
Experiences
Practice
Mock InterviewsTimed interview simulations with feedbackSuccess PathYour 6-week structured planModulesCurated lessons by topicWebinarsTalks from ex-Big Tech data leadsPlaygroundA free-form scratch editor
Learn
BlogInterview strategy and career adviceTech Job Market ReportHiring trends across data and AI rolesFor UniversitiesDataford for career centersAbout DatafordWho we are and how we build
Pricing
Build my plan
Batch vs Streaming Reconciliation
00:00
5 left

Batch vs Streaming Reconciliation

HardSQL · PostgreSQL

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
Interviewer

Your question is Batch vs Streaming Reconciliation. Start with the requirements and the two tables in the Question tab.

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.
CodePostgreSQL
Sign up free to run your codeLog inLn 1
Run your query to see results here.