Skip to content

Data Architect interview questions

100 real questions with model answers and explanations for Data Architect candidates.

See a Data Architect resume example

Practice with flashcards

Spaced repetition · Hunter Pass

Questions

warehouse

I would use the bus matrix to map each business process to reusable conformed dimensions before building marts.

  • Rows represent processes such as orders, shipments, and invoices, while columns represent dimensions such as customer, product, and date.
  • A marked intersection commits a process to the same dimension meaning, keys, and attribute rules used by other marts.
  • I would deliver one process at a time, but review every new dimension against the matrix so incremental work still forms an integrated warehouse.

Why interviewers ask this: The interviewer is evaluating whether the candidate can turn Kimball's integration principle into a practical delivery sequence.

I would define one governed customer identity and publish mappings from each regional source to it.

  • The conformed dimension needs common surrogate keys, attribute semantics, history policy, and unknown-member handling across both marts.
  • Region-specific attributes can remain optional extensions, but shared fields such as customer status must use one definition and code set.
  • I would version the contract and reconcile old reports before replacing local dimensions, because identical column names do not prove conformance.

Why interviewers ask this: The interviewer is checking whether the candidate understands semantic conformance rather than merely copying a table between marts.

modelingfact-tablesfact-grain

I would declare the grain in one sentence before choosing measures, usually one row per order line per shipment split.

  • That grain preserves partial shipments and supports shipment-level timing without mixing line and order facts.
  • Order-level values such as order discount must be allocated by an agreed rule or stored in a separate order-grain fact table.
  • Every dimension key and measure must describe exactly one row at that grain, and uniqueness tests should enforce it.

Why interviewers ask this: The interviewer is assessing whether the candidate prevents double counting by making grain an explicit design decision.

transactionsaggregationcss

I would encode each measure's valid aggregation behavior in the model and semantic layer.

  • Transaction amount is additive across account and time, so ordinary sums are valid.
  • Account balance is additive across accounts but not across dates, so reports should use the closing snapshot for the selected period.
  • Ratios such as margin percentage are non-additive, so I would store numerator and denominator and calculate the ratio after aggregation.

Why interviewers ask this: The interviewer is testing whether the candidate can prevent mathematically invalid aggregations rather than only naming additivity types.

I would create a new dimension version for every tracked segment change and preserve the old version.

  • Each row gets a surrogate key plus effective_from, effective_to, and current indicators, while the business customer key repeats across versions.
  • The load expires the current row and inserts the new row in one atomic operation only when tracked attributes change.
  • Facts resolve the surrogate key valid at the event timestamp, so historical sales retain the segment known at that time.

Why interviewers ask this: The interviewer is evaluating correct temporal joins and version management for a Type 2 dimension.

I would use Type 3 only when the business needs a bounded comparison between current and previous values, not full history.

  • A sales territory dimension can keep current_region and previous_region when reports compare only the latest reorganization.
  • It keeps one row per entity and makes that comparison simple, but a second change overwrites the older prior value.
  • If auditors need every effective period, Type 2 is the correct model despite its extra rows and temporal joins.

Why interviewers ask this: The interviewer is checking whether the candidate recognizes the deliberately limited history provided by Type 3.

algorithms

Type 6 combines Type 2 version history, Type 1 propagation of the current value, and Type 3-style current-versus-previous comparison.

  • Each customer version keeps effective dates, segment_at_time, current_segment, and previous_segment.
  • When Gold changes to Platinum, the load inserts a Type 2 version, propagates current_segment = Platinum to all versions, and retains Gold in previous_segment.
  • Analysts can group past sales by the segment at sale time, today's segment, or the latest current-versus-previous pair without maintaining separate dimensions.
  • Loads cost more because one change inserts a version and updates current attributes on prior rows, so I use Type 6 only for an explicit reporting need.

Why interviewers ask this: The interviewer is assessing whether the candidate can explain the Type 2, Type 1, and Type 3 components of Type 6 consistently.

I would create an inferred customer member immediately and enrich it when the full dimension record arrives.

  • The inferred row uses the real business key, a stable surrogate key, and placeholders for unknown attributes.
  • The fact references that surrogate key instead of the generic unknown member, preserving the relationship from the first load.
  • Later processing updates the inferred row in place or applies the SCD policy, with an inferred flag ensuring the repair is traceable and idempotent.

Why interviewers ask this: The interviewer is checking whether the candidate preserves referential integrity without losing the eventual dimension relationship.

design

I would use a weighted bridge between the encounter fact and diagnosis dimension.

  • The bridge contains the encounter key, diagnosis key, allocation weight, and optionally the rule version that produced the weight.
  • Weights for one encounter must sum to 1, enforced by a data quality test, so allocated cost is not double counted.
  • I would expose both allocated and unallocated measures because counts of encounters should use distinct encounter keys rather than summing bridge rows.

Why interviewers ask this: The interviewer is evaluating whether the candidate can model many-to-many allocation without corrupting aggregate measures.

I would choose the hierarchy representation from the dominant query pattern and keep its history separate from product identity.

  • A parent-child table handles uneven depth and reparenting cleanly, while a flattened path or bridge speeds common ancestor queries.
  • Type 2 versions on hierarchy relationships preserve where a product belonged during each effective period.
  • I would materialize level labels only for stable reporting levels, because forcing every branch into fixed columns creates false members.

Why interviewers ask this: The interviewer is testing whether the candidate can balance flexible hierarchy maintenance with usable analytical queries.

secretsdata-vault

I would model stable business identities as hubs, relationships as links, and descriptive history as satellites.

  • Customer and order become hubs keyed by their business keys, while a customer-order link records their association.
  • Name, status, and source attributes belong in satellites with load timestamp and record source, allowing independent history and arrival rates.
  • I would avoid putting descriptive attributes in hubs or links because that couples identity and relationship structures to volatile source fields.

Why interviewers ask this: The interviewer is evaluating whether the candidate assigns Data Vault entities by purpose rather than by source-table shape.

business-keyssecretsdata-vault

A hub business key must identify the same business concept consistently across its intended scope.

  • I prefer a source-issued durable identifier such as customer_number, not a name, email, or warehouse surrogate key.
  • If several sources use different identifiers, a governed crosswalk or composite key must define whether they represent one identity or separate hubs.
  • I retain the original key value and record source so collisions, normalization rules, and future remapping remain auditable.

Why interviewers ask this: The interviewer is checking whether the candidate distinguishes durable business identity from technical source keys.

secretsdata-vault

Hash keys enable deterministic parallel loading, but they require one canonical input rule across every producer.

  • The same normalized business key can generate the same hub key without a central sequence, so hubs, links, and satellites load independently.
  • I specify field order, delimiter, null token, trimming, case handling, encoding, and hash algorithm in a shared contract.
  • I retain raw business keys and test for collisions; changing canonicalization later requires controlled dual computation rather than silently rewriting history.

Why interviewers ask this: The interviewer is assessing whether the candidate understands both the loading benefit and the governance burden of hash keys.

Hashdiff lets a satellite compare one canonical digest instead of every descriptive column.

  • A new satellite row is inserted only when the incoming hashdiff differs from the latest row for the parent key.
  • The digest must cover the intended payload columns in a fixed order with explicit null and type normalization.
  • Adding a column changes the digest domain, so I version the satellite or backfill deliberately rather than treating every existing row as changed.

Why interviewers ask this: The interviewer is checking whether the candidate can use hashdiff for change detection without introducing false changes.

bridge-tablessecretsdata-vault

I would add PIT and bridge structures when repeated temporal assembly of raw vault data becomes a measured query bottleneck.

  • A PIT table stores the relevant satellite row pointers for a hub at selected as-of dates, reducing repeated effective-date joins.
  • A bridge precomputes paths across links for common relationship traversals such as customer to account to transaction.
  • Both duplicate derivable state and need refresh rules, so I treat them as performance structures with lineage, not as new sources of truth.

Why interviewers ask this: The interviewer is evaluating whether the candidate understands Data Vault query acceleration and its maintenance cost.

secrets

I would place reusable governed derivations in the Business Vault and expose dimensional marts for consumption-friendly analytics.

  • Business rules such as survivorship, calculated links, and standardized status mappings belong in traceable derived satellites or links.
  • Keeping those rules out of the Raw Vault preserves source fidelity and allows them to evolve without reloading raw history.
  • Star schemas still serve BI better because they offer declared grain and simpler joins, so the Business Vault should not become a direct reporting layer by default.

Why interviewers ask this: The interviewer is checking whether the candidate separates source-faithful storage, reusable business logic, and presentation models.

architecture

I would define each medallion layer by guarantees and allowed transformations, not by folder names.

  • Bronze preserves replayable source records with ingestion metadata and minimal normalization.
  • Silver deduplicates, validates, standardizes keys and types, and applies reusable domain rules while retaining rejected records separately.
  • Gold publishes stable business-grain products such as dimensional marts and aggregates with contracts suited to dashboards or applications.

Why interviewers ask this: The interviewer is assessing whether the candidate can make medallion layers enforceable rather than merely naming three zones.

warehouselakehouse

I would choose a warehouse for managed SQL analytics and a lakehouse when open files or multi-engine access are core requirements.

  • Snowflake or BigQuery reduces operations and gives strong workload management for BI teams that mainly consume structured data.
  • A lakehouse on object storage with Delta Lake or Iceberg supports Spark, streaming, and machine learning over the same governed tables.
  • The lakehouse adds file compaction, catalog, and engine-compatibility work, so lower storage cost alone is not enough to justify it.

Why interviewers ask this: The interviewer is evaluating whether the candidate chooses architecture from workload and operating constraints rather than labels.

streamingbatchconcurrency

I would rely on the transaction log to provide atomic commits, snapshot isolation, and one table state for batch and streaming readers.

  • Optimistic concurrency checks reject conflicting metadata or file changes instead of exposing partial output.
  • Table versions support time travel and rollback for reproducible reads, while checkpoints keep log replay manageable.
  • Schema enforcement blocks accidental incompatible writes, and controlled evolution admits intended new columns without replacing the table.

Why interviewers ask this: The interviewer is checking whether the candidate can connect Delta Lake features to concrete consistency requirements.

schemapartitioning

Iceberg decouples logical table metadata from physical file layout, so evolution does not require rewriting every consumer.

  • Field IDs let columns be safely renamed, reordered, or added without relying only on names or positions.
  • Hidden partitioning lets queries use logical columns while partition specs evolve from day to hour or from identity to bucket transforms.
  • Metadata snapshots provide atomic commits, time travel, and rollback, while old and new files remain readable under their respective specs.

Why interviewers ask this: The interviewer is evaluating whether the candidate understands Iceberg's metadata model rather than treating it as a file format.

Locked questions

  • 21

    How would you choose between Delta Lake and Iceberg for a multi-engine lakehouse?

    lakehouse
  • 22

    What changes architecturally when compute and storage are separated in a cloud warehouse?

    warehousearchitecture
  • 23

    How would you isolate unpredictable dashboard traffic from nightly transformations in Snowflake, BigQuery, or Redshift?

    snowflakebigqueryredshift
  • 24

    Why would you choose log-based CDC with Debezium over timestamp polling?

  • 25

    How would you choose a Kafka message key for customer events?

    kafka
  • 26

    What delivery semantics would you promise for a Kafka pipeline writing to a warehouse?

    warehousekafkapromises
  • 27

    Why distinguish event time from processing time in a streaming design?

    designstreamingconcurrency
  • 28

    How would you choose tumbling, sliding, or session windows for clickstream metrics?

    sessionsmonitoring
  • 29

    How would you set a watermark for events that are usually 2 minutes late but occasionally arrive a day later?

  • 30

    When would you choose batch, Lambda, or Kappa architecture for the same business metric?

    batchmonitoringlambda
  • 31

    How would you size and organize Parquet files for a table receiving many small writes?

    parquet
  • 32

    How would you partition a 20 TB events table queried by date, tenant, and event type?

    partitioning
  • 33

    What causes a Spark shuffle, and how would you reduce one in a large join?

    joins
  • 34

    How would you design a Spark join when one customer owns 30 percent of all records?

    joinsdesign
  • 35

    How would you choose among append, merge, and insert-overwrite strategies for a dbt incremental model?

    dbt
  • 36

    When would you use a dbt snapshot instead of an incremental model?

    dbtsnapshot
  • 37

    How would you use dbt macros and model contracts without hiding the model's meaning?

    dbt
  • 38

    What roles do dbt exposures and a semantic layer play in an analytics architecture?

    semantic-layerdbt
  • 39

    What should Airflow orchestrate, and what logic should remain outside the DAG?

    airfloworchestration
  • 40

    When would you use Airflow datasets instead of a time-based dependency?

    dependenciesairflow
  • 41

    How would you configure Airflow catchup, backfills, and pools for a two-year recomputation?

    configairflowbackfill
  • 42

    How would you choose among relational, document, and key-value stores for a product catalog and shopping cart?

  • 43

    When would you use a columnar analytical store, a search index, or a time-series database?

    databaseindexesschema
  • 44

    When is a graph database justified instead of relational adjacency tables?

    database
  • 45

    How would you enforce a data contract for Kafka events through a schema registry?

    kafkadata-contractsschema
  • 46

    How would you combine a data catalog, OpenLineage, and column-level lineage?

    data-catalogschemalineage
  • 47

    What governance operating model would you use for domain-owned data products in a data mesh?

    data-governancedata-mesh
  • 48

    How would you create a customer golden record when CRM, billing, and support disagree?

    conflict
  • 49

    How would you protect sensitive customer data while preserving analytical usefulness?

  • 50

    Which cost and performance levers would you apply before buying more warehouse capacity?

    warehouseperformancecapacity
  • 51

    A sales dashboard is 12% above the general ledger after a promotion can belong to several campaigns. How would you fix the dimensional model?

  • 52

    An SCD Type 2 customer dimension returns two current rows for 0.4% of customer keys after concurrent loads. What would you change?

    concurrency
  • 53

    A point-in-time customer report has gaps because some SCD2 versions start one day after the previous version ends. How would you repair and prevent this?

  • 54

    Orders arrive before their customer dimension records, so 3% of yesterday's facts point to an unknown member. How would you correct them without changing fact grain?

    fact-grain
  • 55

    A Data Vault customer hub contains duplicate records for business keys that differ only by case and surrounding spaces. How would you correct the design?

    designdata-vaultsecrets
  • 56

    A Data Vault satellite grows by 40 million rows per day even though the source changes only 2% of records. What would you investigate?

    secretsdata-vault
  • 57

    A shipment link arrives two days after both order and carrier hubs, and daily relationship reports omit it from the historical date. How would you load it?

  • 58

    A Data Vault PIT table makes customer queries fast, but late satellite data is absent from last week's snapshots. How would you fix the refresh?

    queriessnapshotsecrets
  • 59

    A CDC connector snapshot overlaps with streaming changes and creates 1.8% duplicate invoices. How would you make the handoff safe?

    streamingsnapshot
  • 60

    Deleted subscriptions remain active in analytics after switching from full extracts to CDC. What would you inspect and change?

  • 61

    A source team changes order_total from integer cents to a decimal amount, and the CDC pipeline starts rejecting events. How would you handle the schema change?

    schemaci-cd
  • 62

    A Debezium PostgreSQL connector processes 8 million changes per day, but WAL retained for its replication slot grows by 35 GB overnight. How would you diagnose it?

    postgresreplicationconcurrency
  • 63

    A Kafka topic with 24 partitions receives 45% of events on one partition because a single retailer dominates traffic. How would you remove the hotspot?

    partitioningkafka
  • 64

    Payment events for the same order sometimes arrive out of order, causing a paid order to revert to pending. How would you design the consumer?

    design
  • 65

    A streaming revenue job uses a 20-minute watermark, but 6% of mobile events arrive 30 to 90 minutes late and disappear from reports. What would you change?

    streaming
  • 66

    A Spark join processes 2 TB daily, but three executors run out of memory while the rest are mostly idle. How would you address the skew?

    joinsrestmemory
  • 67

    A Spark transformation writes 900 GB of shuffle for a 120 GB input after a new deduplication step. How would you reduce it?

    queries
  • 68

    An hourly Parquet pipeline creates 180,000 files averaging 600 KB, and query planning now takes 40 seconds. How would you compact them?

    ci-cdparquetqueries
  • 69

    An Iceberg table needs a new nested customer.address.region field while old readers must keep working. How would you evolve the schema?

    schema
  • 70

    A Delta table partitioned by event_date now receives most queries by customer_region, and scans average 4 TB. How would you evolve the layout?

    queriespartitioning
  • 71

    A dbt incremental model filters on created_at, so corrections to old orders never appear. How would you fix it?

    dbt
  • 72

    A dbt merge model produces duplicate subscriptions because subscription_id is reused across tenants. What would you change?

    dbt
  • 73

    A dbt snapshot has grown to 1.2 billion rows because volatile last_seen_at changes every hour. How would you control growth?

    dbtsnapshot
  • 74

    A dbt model fails after a source changes customer_id from non-null integer to nullable string. How would you use contracts and tests to manage it?

    dbtfundamentalstesting
  • 75

    An Airflow backfill of 90 days launches 1,800 tasks and saturates the warehouse, delaying daily reporting by two hours. How would you contain it?

    airflowwarehousebackfill
  • 76

    An Airflow task retries after a timeout and sends the same customer export to a partner twice. How would you prevent the side effect?

    airflowresilience
  • 77

    Snowflake credits rise from 180 to 620 per day after a dashboard release, although data volume is unchanged. How would you investigate?

    snowflake
  • 78

    A Snowflake ETL warehouse queues for 12 minutes during a two-hour nightly peak but is idle the rest of the day. Would you scale up or out?

    warehousesnowflakeetl
  • 79

    A BigQuery report for one week scans all 140 TB of an events table despite a partitioned event_date column. What would you review?

    partitioningschemabigquery
  • 80

    A Redshift sales join runs for 28 minutes, and one node stores four times more rows than the median. How would you fix the distribution?

    joinsredshiftdistributions
  • 81

    The finance source completed three hours late, but the warehouse showed green because all pipeline tasks succeeded. How would you add source freshness controls?

    warehouseci-cd
  • 82

    The warehouse has every source invoice, but monthly net revenue is 0.7% lower than accounting. How would you reconcile the discrepancy?

    warehouse
  • 83

    A producer wants to rename status to order_status in a shared event used by six consumers. How would you review the data contract change?

    data-contracts
  • 84

    Column lineage stops at a stored procedure that builds table names with dynamic SQL. How would you restore useful lineage?

    sqlschemastored-procedures
  • 85

    A catalog lists 4,000 assets, but 38% have no owner and quality incidents bounce between teams. How would you establish ownership?

    incidentsownership
  • 86

    A nonproduction analytics database contains full customer names and addresses copied from production. How would you remediate it?

    database
  • 87

    A failed ingestion job writes complete customer payloads, including email and phone, into centralized logs. What would you change?

  • 88

    A regional manager can see another region's customers after a BI model adds a new bridge table. How would you fix the row-policy leak?

    bridge-tables
  • 89

    A customer deletion request clears the warehouse row, but the same person remains in derived features, search indexes, and backups. How would you design propagation?

    indexeswarehousedesign
  • 90

    An MDM rule merges customers on surname and postal code, and review shows a 4% false-match rate for households. How would you tune it?

  • 91

    An MDM release replaces 12,000 verified legal names with newer CRM display names because the rule always picks the latest value. How would you correct it?

  • 92

    You are designing analytics for a SaaS product with 600 tenants, and enterprise contracts prohibit cross-tenant exposure. What isolation would you choose?

    designcloud
  • 93

    In a data mesh pilot, the orders domain says its job ends at event publication, while finance expects corrected data within four hours. How would you resolve the SLA dispute?

    data-mesh
  • 94

    A fraud team needs to query 25 billion card events by card and time range with under two-second p95 latency and one-year retention. Which store would you choose?

    retentionquerieslatency
  • 95

    A product needs current device state for 4 million sensors plus ad hoc analysis of two years of telemetry. Would you use one store?

  • 96

    You must migrate the marketing mart, 18 TB and 35 dashboards, from Redshift to BigQuery in eight weeks without moving other domains. How would you bound the migration?

    migrationsbigqueryredshift
  • 97

    Sales defines active customer as any purchase in 90 days, while finance requires settled revenue in the current quarter. How would you resolve the metric conflict?

    monitoring
  • 98

    In design review, an engineer proposes one wide customer table with 280 columns for CRM, billing, support, and product events. What feedback would you give?

    feedbackdesignschema
  • 99

    A pull request adds a daily full refresh of a 9 TB fact table to fix a 0.2% correction rate. How would you review it?

    modelingfact-tablescode-review
  • 100

    A junior engineer keeps fixing failing dbt relationship tests by excluding unmatched records from marts. How would you mentor them on a specific current failure?

    dbtmentoringtesting