yoklainterview sim

Warehousing Data Engineer Interview Questions

450 verified Warehousing Data Engineer interview questions — solve with answers, learn from explanations, test yourself in a real simulation.

Try the real simulation →

Sample questions

Wh Bigquery Execution Slots CostDifficulty 1
In BigQuery, what is a 'slot'?
  • aA physical GPU core dedicated to a single query
  • bBigQuery's virtual unit of query compute capacity
  • cA storage partition holding one day of ingested data
  • dA named parameter passed to a stored procedure
Explanation:A slot is BigQuery's virtual unit of compute capacity, automatically allocated to execute SQL queries and other job types. It is not a physical core, a storage partition, or a stored-procedure parameter.
Wh Bigquery Execution Slots CostDifficulty 1
Under BigQuery's on-demand pricing model, what determines the charge for a query?
  • aThe number of bytes the query processes (scans)
  • bThe number of slots the query happens to use
  • cThe wall-clock duration the query takes to finish
  • dThe number of output rows the query returns
Explanation:On-demand pricing bills based on the volume of data (bytes) processed by the query, not on the number of slots consumed, how long it runs, or how many rows come back.
Wh Bigquery Execution Slots CostDifficulty 2
Under BigQuery's capacity-based (reservation) pricing model, what does a customer pay for?
  • aBytes scanned per query, exactly like on-demand pricing
  • bA flat monthly fee that is completely independent of any usage
  • cA pool of slots reserved for running their workloads
  • dOnly the storage consumed by the query's result set
Explanation:In capacity-based (reservation) pricing, the customer pays for a pool of slots allocated to a reservation, regardless of how many bytes any individual query scans -- the opposite billing basis from on-demand.
Wh Bigquery Execution Slots CostDifficulty 2
SELECT * FROM orders;
-- vs
SELECT order_id, total_amount FROM orders;

Both queries scan the full orders table with no WHERE clause. Why does the second query typically process fewer bytes than the first?
  • aThe second query applies an implicit LIMIT that the first one does not
  • bBigQuery's columnar storage reads only the referenced columns
  • cBigQuery caches SELECT * queries less aggressively than column-specific queries
  • dThe second query runs on fewer slots, which lowers the bytes billed
Explanation:BigQuery stores data column by column, so a query only reads the columns it references. SELECT * reads every column, while selecting two columns reads only those two, which is why it processes fewer bytes.
Wh Bigquery Execution Slots CostDifficulty 2
Table events is NOT clustered or partitioned. You run SELECT * FROM events LIMIT 10. Compared to running the same query without the LIMIT, how many bytes does BigQuery process?
  • aRoughly the bytes of 10 rows, since LIMIT stops the scan early
  • bZero bytes, because LIMIT is applied before any data is read
  • cBytes proportional to 10 divided by the total row count
  • dThe same amount of data scanned as without the LIMIT clause
Explanation:For a non-clustered table, LIMIT is applied after the data has already been read, so it does not reduce the bytes scanned. The query still reads all referenced columns for all rows before truncating the output to 10 rows.
Wh Bigquery Execution Slots CostDifficulty 2
Table logs has no partitioning or clustering defined. You run SELECT message FROM logs WHERE severity = 'ERROR'. Compared to a query without the WHERE clause but selecting the same column, what happens to the bytes scanned?
  • aThe bytes scanned stay essentially unchanged without partition or cluster pruning available
  • bThe bytes scanned drop dramatically, because WHERE always prunes at the storage level
  • cThe bytes scanned drop to zero, because the filter is evaluated before storage is read
  • dThe bytes scanned increase, because evaluating the WHERE condition adds an extra full table pass
Explanation:Without partitioning or clustering, BigQuery has no storage-level way to skip blocks based on the filter. It must read the referenced columns (message and severity, since severity is needed to evaluate WHERE) for every row and only then discard non-matching rows.

Test yourself against the 1950-question Data Engineer bank.

Start interview